Bug#328951: Clarification for difference between Build-Depends and Build-Depends-Indep (Section 7.6)

2010-06-12 Thread Russ Allbery
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)

2010-06-12 Thread Julien Cristau
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)

2010-06-12 Thread Russ Allbery
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)

2006-06-14 Thread Charles Fry
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)

2005-11-29 Thread Christoph Berg
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)

2005-09-19 Thread Bill Allombert
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)

2005-09-18 Thread Christoph Berg
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)

2005-09-18 Thread Ben Finney
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