Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
Charles Fry deb...@frogcircus.org writes: My biggest concern is that Section 7.6 makes it very difficult to distinguish between Build-Depends and Build-Depends-Indep. [...] Number 3 would work something like this: The dependencies and conflicts they define must be satisfied (as defined earlier for binary packages) in order to invoke the targets in debian/rules, as follows: clean, binary-arch, build-arch Only the Build-Depends and Build-Conflicts fields must be satisfied when any of the following targets is invoked: clean, binary-arch, build-arch. build, build-indep, binary, and binary-indep The Build-Depends, Build-Conflicts, Build-Depends-Indep, and Build-Conflicts-Indep fields must be satisfied when any of the following targets is invoked: build, build-indep, binary, and binary-indep. I don't care very much how this is explained, but I must admit that the current policy makes it unnecessarily difficult to discover the simple fact that packages required by the clean target must be depended on using Build-Depends and not Build-Depends-Indep. I'm applying the following patch for the next release of Policy. It implements the inversion of classification that you describe above, tightens the footnote to remove information duplicated in the main text and to make the wording flow a bit better, and adds a footnote to build-arch and build-indep explaining why they don't work as desired yet. There's also a bit of reformatting. Nothing here modifies the requirements of Policy, just the informative explanation, so I don't believe seconds are required, but if anyone objects, do speak up. diff --git a/policy.sgml b/policy.sgml index f0ba54e..720150d 100644 --- a/policy.sgml +++ b/policy.sgml @@ -1854,21 +1854,28 @@ A package may also provide both of the targets ttbuild-arch/tt and ttbuild-indep/tt. The ttbuild-arch/tt target, if provided, should - perform all the configuration and compilation required - for producing all architecture-dependant binary packages + perform all the configuration and compilation required for + producing all architecture-dependant binary packages (those packages for which the body of the - ttArchitecture/tt field in ttdebian/control/tt - is not ttall/tt). - Similarly, the ttbuild-indep/tt target, if - provided, should perform all the configuration and - compilation required for producing all - architecture-independent binary packages - (those packages for which the body of the - ttArchitecture/tt field in ttdebian/control/tt - is ttall/tt). + ttArchitecture/tt field in ttdebian/control/tt is + not ttall/tt). Similarly, the ttbuild-indep/tt + target, if provided, should perform all the configuration + and compilation required for producing all + architecture-independent binary packages (those packages + for which the body of the ttArchitecture/tt field + in ttdebian/control/tt is ttall/tt). The ttbuild/tt target should depend on those of the targets ttbuild-arch/tt and ttbuild-indep/tt that - are provided in the rules file. + are provided in the rules file.footnote + The intent of this split is so that binary-only builds + need not install the dependencies required for + the ttbuild-indep/tt target. However, this is not + yet used in practice since ttdpkg-buildpackage + -B/tt, and therefore the autobuilders, + invoke ttbuild/tt rather than ttbuild-arch/tt + due to the difficulties in determining whether the + optional ttbuild-arch/tt target exists. + /footnote /p p @@ -4848,57 +4855,43 @@ Replaces: mail-transport-agent (as defined earlier for binary packages) in order to invoke the targets in ttdebian/rules/tt, as follows:footnote p - If you make build-arch or binary-arch, you need - Build-Depends. If you make build-indep or - binary-indep, you need Build-Depends and - Build-Depends-Indep. If you make build or binary, - you need both. - /p - p There is no Build-Depends-Arch; this role is essentially - met with Build-Depends. Anyone building the - ttbuild-indep/tt and binary-indeptt/tt targets - is basically assumed to be building the whole package - anyway and so installs all build dependencies. The -
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
On Sat, Jun 12, 2010 at 12:24:07 -0700, Russ Allbery wrote: - tagttBuild-Depends-Indep/tt, - ttBuild-Conflicts-Indep/tt/tag + tagttbuild/tt, ttbuild-indep/tt, ttbinary/tt, + and ttbinary-indep/tt/tag item -The ttBuild-Depends-Indep/tt and - ttBuild-Conflicts-Indep/tt fields must be - satisfied when any of the following targets is - invoked: ttbuild/tt, ttbuild-indep/tt, - ttbinary/tt and ttbinary-indep/tt. + The ttBuild-Depends/tt, ttBuild-Conflicts/tt, + ttBuild-Depends-Indep/tt, and + ttBuild-Conflicts-Indep/tt fields must be satisfied when + these targets are invoked. /item /taglist /p - /sect - /chapt This keeps the inconsistency between policy and actual practice about what needs to be installed for the 'build' target, but I assume this is intended? Cheers, Julien signature.asc Description: Digital signature
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
Julien Cristau jcris...@debian.org writes: On Sat, Jun 12, 2010 at 12:24:07 -0700, Russ Allbery wrote: -tagttBuild-Depends-Indep/tt, - ttBuild-Conflicts-Indep/tt/tag +tagttbuild/tt, ttbuild-indep/tt, ttbinary/tt, + and ttbinary-indep/tt/tag item -The ttBuild-Depends-Indep/tt and -ttBuild-Conflicts-Indep/tt fields must be -satisfied when any of the following targets is -invoked: ttbuild/tt, ttbuild-indep/tt, -ttbinary/tt and ttbinary-indep/tt. + The ttBuild-Depends/tt, ttBuild-Conflicts/tt, + ttBuild-Depends-Indep/tt, and + ttBuild-Conflicts-Indep/tt fields must be satisfied when + these targets are invoked. /item /taglist /p - /sect - /chapt This keeps the inconsistency between policy and actual practice about what needs to be installed for the 'build' target, but I assume this is intended? In that the buildds don't install Build-Depends-Indep? Yeah, that's a different bug which is normative (#374029). -- Russ Allbery (r...@debian.org) http://www.eyrie.org/~eagle/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
reopen 328951 ! thanks While my specific concern is a bit different than Christoph's, it is closely enough related that I'm including it in the same bug report; feel free to separate it if you prefer. My biggest concern is that Section 7.6 makes it very difficult to distinguish between Build-Depends and Build-Depends-Indep. The first hurdle is that the list of targets for which each must be satisfied are not mutually disjoint, yet they are ordered differently. Build-Depends must be satisfied to invoke: build, clean, binary, binary-arch, build-arch, build-indep and binary-indep while Build-Depends-Indep must be satisfied to invoke: build, build-indep, binary and binary-indep Now, quick, tell me the difference between those two lists? If you don't already understand it, each target that requires Build-Depends-Indep must be manually searched for in Build-Depends. I can think of three ways to make this clearer: 1) Put the common elements in the two lists in the same order, placing them all at either the begining or end of the lists. 2) Explicitely mention which targets are different between the two (clean, binary-arch, build-arch), or even bold those that are different. 3) Invert the structure of the table to show which dependencies must be satisfied for which target rather than which target must be satisfied for which dependencies. Number 3 would work something like this: The dependencies and conflicts they define must be satisfied (as defined earlier for binary packages) in order to invoke the targets in debian/rules, as follows: clean, binary-arch, build-arch Only the Build-Depends and Build-Conflicts fields must be satisfied when any of the following targets is invoked: clean, binary-arch, build-arch. build, build-indep, binary, and binary-indep The Build-Depends, Build-Conflicts, Build-Depends-Indep, and Build-Conflicts-Indep fields must be satisfied when any of the following targets is invoked: build, build-indep, binary, and binary-indep. I don't care very much how this is explained, but I must admit that the current policy makes it unnecessarily difficult to discover the simple fact that packages required by the clean target must be depended on using Build-Depends and not Build-Depends-Indep. cheers, Charles -- One of the great discoveries Goodbye! shaving brush Old men look younger Young men look handsomer Very fine for the skin Burma-Shave http://burma-shave.org/jingles/1928/one_of_the signature.asc Description: Digital signature
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
Re: Bill Allombert in [EMAIL PROTECTED] - There is no Build-Depends-Arch; the autobuilders will - only need the Build-Depends if they know how to build - only build-arch and binary-arch. Anyone building the + Build-Depends is essentially Build-Depends-Arch; + the autobuilders will only need the Build-Depends since they + only use build-arch and binary-arch. Anyone building the build-indep/binary-indep targets is basically assumed to be building the whole package and so installs all build dependencies. That substitutes one confusion for another (since it no longer disclaims the existence of Build-Depends-Arch). I'd suggest this: There is no Build-Depends-Arch; this role is essentially met with Build-Depends, since the autobuilders only use build-arch and binary-arch. Anyone building the [...] But it is not the case either, autobuilders use dpkg-buildpackage -B, which call 'build' and 'binary-arch', and do not use 'build-arch' because it does not know if it is available. This is a bug I try to fix for several years, and I have a faint hope to achieve this in 2006. Sorry for the late follow-up. Here's my suggestion which should be the best of the above three paragraphs: There is no Build-Depends-Arch; this role is essentially met with Build-Depends. Anyone building the build-indep and binary-indep targets is basically assumed to be building the whole package anyway and so installs all build dependencies. The autobuilders use 'dpkg-buildpackage -B', which calls 'build' (not 'build-arch', since it does not yet know how to check for its existence) and 'binary-arch'. It would be nice if that could be added now even if dpkg-buildpackage is to be fixed at some point, because that paragraph causes confusion for every new maintainer. (And I'm sure even most DDs don't know that dpkg-buildpackage -B doesn't use build-arch.) Christoph -- [EMAIL PROTECTED] | http://www.df7cb.de/ signature.asc Description: Digital signature
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
On Mon, Sep 19, 2005 at 08:47:12AM +1000, Ben Finney wrote: On 18-Sep-2005, Christoph Berg wrote: p - There is no Build-Depends-Arch; the autobuilders will - only need the Build-Depends if they know how to build - only build-arch and binary-arch. Anyone building the + Build-Depends is essentially Build-Depends-Arch; + the autobuilders will only need the Build-Depends since they + only use build-arch and binary-arch. Anyone building the build-indep/binary-indep targets is basically assumed to be building the whole package and so installs all build dependencies. That substitutes one confusion for another (since it no longer disclaims the existence of Build-Depends-Arch). I'd suggest this: There is no Build-Depends-Arch; this role is essentially met with Build-Depends, since the autobuilders only use build-arch and binary-arch. Anyone building the [...] But it is not the case either, autobuilders use dpkg-buildpackage -B, which call 'build' and 'binary-arch', and do not use 'build-arch' because it does not know if it is available. This is a bug I try to fix for several years, and I have a faint hope to achieve this in 2006. Cheers, -- Bill. [EMAIL PROTECTED] Imagine a large red swirl here. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
Package: debian-policy Version: 3.6.2.1 Severity: normal Tags: patch Hi, the patch below clarifies the difference between Build-Depends and Build-Depends-Indep. The current policy section is hard to grasp; most new maintainers are confused by the information there. The information is of course correct, but the wording does not stress the important point Build-Depends-Indep is what the autobuilders _don't_ need. Please consider applying the patch below - thanks. diff -Nru /srv/tmp/0TuPtlIIPp/debian-policy-3.6.2.1/debian/changelog /srv/tmp/LNvGU4M0lC/debian-policy-3.6.2.1/debian/changelog --- /srv/tmp/0TuPtlIIPp/debian-policy-3.6.2.1/debian/changelog 2005-06-18 07:53:56.0 +0200 +++ /srv/tmp/LNvGU4M0lC/debian-policy-3.6.2.1/debian/changelog 2005-09-18 12:57:20.0 +0200 @@ -1,3 +1,10 @@ +debian-policy (3.6.2.1-0.1) unstable; urgency=low + + * Clarify the difference between Build-Depends and Build-Depends-Indep in +Section 7.6. + + -- Christoph Berg [EMAIL PROTECTED] Sun, 18 Sep 2005 12:56:02 +0200 + debian-policy (3.6.2.1) unstable; urgency=low * Bug fix: debian-policy: Typo in upgrading-checklist.txt.gz, thanks diff -Nru /srv/tmp/0TuPtlIIPp/debian-policy-3.6.2.1/policy.sgml /srv/tmp/LNvGU4M0lC/debian-policy-3.6.2.1/policy.sgml --- /srv/tmp/0TuPtlIIPp/debian-policy-3.6.2.1/policy.sgml 2005-06-17 05:18:37.0 +0200 +++ /srv/tmp/LNvGU4M0lC/debian-policy-3.6.2.1/policy.sgml 2005-09-18 12:55:55.0 +0200 @@ -4307,15 +4307,14 @@ the targets in ttdebian/rules/tt, as follows:footnote p If you make build-arch or binary-arch, you need - Build-Depends. If you make build-indep or - binary-indep, you need Build-Depends and - Build-Depends-Indep. If you make build or binary, - you need both. + Build-Depends. If you make build-indep, build, + binary-indep, or binary, you need Build-Depends and + Build-Depends-Indep. /p p - There is no Build-Depends-Arch; the autobuilders will - only need the Build-Depends if they know how to build - only build-arch and binary-arch. Anyone building the + Build-Depends is essentially Build-Depends-Arch; + the autobuilders will only need the Build-Depends since they + only use build-arch and binary-arch. Anyone building the build-indep/binary-indep targets is basically assumed to be building the whole package and so installs all build dependencies. Christoph -- [EMAIL PROTECTED] | http://www.df7cb.de/ signature.asc Description: Digital signature
Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)
On 18-Sep-2005, Christoph Berg wrote: p - There is no Build-Depends-Arch; the autobuilders will - only need the Build-Depends if they know how to build - only build-arch and binary-arch. Anyone building the + Build-Depends is essentially Build-Depends-Arch; + the autobuilders will only need the Build-Depends since they + only use build-arch and binary-arch. Anyone building the build-indep/binary-indep targets is basically assumed to be building the whole package and so installs all build dependencies. That substitutes one confusion for another (since it no longer disclaims the existence of Build-Depends-Arch). I'd suggest this: There is no Build-Depends-Arch; this role is essentially met with Build-Depends, since the autobuilders only use build-arch and binary-arch. Anyone building the [...] -- \ The basic fact about human existence is not that it is a | `\ tragedy, but that it is a bore. -- Henry L. Mencken | _o__) | Ben Finney [EMAIL PROTECTED] signature.asc Description: Digital signature