✏️ 正在编辑: build-driver.txt
路径:
/usr/share/doc/dpkg/spec/build-driver.txt
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
Support for build-drivers as alternatives to debian/rules ========================================================= Status: draft, experimental Summary ------- This is currently an exploratory and experimental way to replace the current debian/rules usage with alternative interfaces for building packages. It relies on a new Build-Driver field honored by dpkg-buildpackage, but that might eventually disappear or change semantics. Background ---------- Our current packaging methods are built around the concept of a Makefile (debian/rules), which must contain every bit of logic needed to produce debs. Historically, this involved duplicating various runes in every package and then spending decades updating the runes in every package as we got wiser. Over time there have been many attempts to centralize these runes in package helpers such as debstd (obsolete), dbs (obsolete), yada (obsolete), debhelper (still in use) and cdbs (still in use). Despite these improvements, our state of the art packaging flow suffers from this awkward "assume-nothing-do-everything" design. There are many cases where dpkg has the only "official" tools to implement a feature (e.g. dpkg-gencontrol and dpkg-deb), but we still expect that the helper tools manage all orchestration of calling these tools in the right order. Furthermore, the "Makefile as an entry point" also neuters any efficient communication between dpkg tools and the underlying helper, as it introduces an impedance layer which forces us to reparse the same files multiple times, does not make it possible to guarantee a sanitized build environment for the packaging, complicates our ability to enable certain features transparently or (in debhelper's case) via compat bumps, and also forces us into imperative packaging flows (making it difficult for lintian to spot issues). As "recent" examples we can mention "build-arch" targets, updating XXFLAGS to include basic hardening, and the Rules-Requires-Root field. All of these things complicate the lower packaging stack, inhibits our ability to deploy various performance optimizations and neuters our ability to make packaging simpler.
💾 保存文件
← 返回文件管理器