Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Mon, May 11, 2009 at 08:34:54PM +0200, Petr Pudlak wrote: On Mon, May 11, 2009 at 03:11:22PM +0200, Filippo Rusconi wrote: It is a pity to have a Debian Policy so well documented, to point package-making learners to that Policy and then have non-conformant builders. In fact, I'd ask what would be the solution to overcome the problem (apart from the desirable fixing the builders)? Hi, I'm glad I (finally) got some response to the problem! I've had precisely the same problem as Filippo: I prepared my first package, I spent many hours studying the Policy to follow it precisely, and to my disappointment, I got a FTBFS bug report immediately after uploading the package. I suspected I was not alone in this situation :) I don't think the problem is so much in the Policy, I think the problem is with the builders. The builders must provide dependencies according to debian/control and the target(s) they're calling. Of course, improving the Policy is OK, but once the guidelines are agreed upon and written there, the builders must follow it. I agree with this, also because what is stated in Policy is just plain sensible. Not the other way around. I'm quite surprised that these problems with the builders haven't been solved already, considering the number of packages in Debian! Well, maybe there are not so many packages that perform as a clear cut separation between build-indep and build-arch... I suggest to create a dummy package that would be as simple as possible and that would demonstrate the problem. Then test it with various building tools and fill eventual bug reports. Maybe I could prepare such dummy package in the following days, if I have time. If this would convince the developers responsible for the builders to deal with the problem, then that would be awsome. Any such DD listening ? Best regards, Filippo -- Filippo Rusconi, PhD - CNRS - public key C78F687C Author of ``massXpert'' at http://www.massxpert.org signature.asc Description: Digital signature
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Tue, May 05, 2009 at 07:13:23PM +0200, Julien Cristau wrote: arch-specific builds run 'debian/rules build $rootcmd debian/rules binary-arch' (where rootcmd is fakeroot or sudo). They can't do anything else, because the build-arch target is (still) not required. Sure they can: debian/rules build-arch if [ $? -eq 2 ] then apt-get install ${BUILD_DEPENDS_INDEP_OF_THE_PACKAGE} apt-get remove ${BUILD_CONFLICTS_INDEP_OF_THE_PACKAGE} debian/rules build fi $rootcmd debian/rules binary-arch Not wanting to do something as convoluted / brittle is another matter altogether and something I'd support. (Returning error code 2 is mandatory for debian/rules when called on a non-existing target, if I remember well.) So, pbuilder can call build unconditionally (that in itself is not a bug), but then it _must_ respect Build-Depends-Indep and Build-Conflicts-Indep. Whatever's needed for this needs to be in Build-Depends. No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: http://www.debian.org/doc/debian-policy/footnotes.html#f46 http://www.nl.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps I quote (emphasis mine): Build-Depends-Indep, Build-Conflicts-Indep The 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. 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*. Under the current policy it is a bug for pbuilder to not install the Build-Depends-Indep. -- Lionel -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Mon, May 11, 2009 at 13:46:30 +0200, Lionel Elie Mamane wrote: No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: And policy is clearly not followed by any actual practice on this point. So that's as much a bug in policy as anything else (#374029). Cheers, Julien -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Mon, May 11, 2009 at 02:11:18PM +0200, Julien Cristau wrote: On Mon, May 11, 2009 at 13:46:30 +0200, Lionel Elie Mamane wrote: No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: And policy is clearly not followed by any actual practice on this point. So that's as much a bug in policy as anything else (#374029). Cheers, Julien Well, but then, why have new packagers trained by studying the Policy? Look at my own situation (which must not be a rare one, I suppose): I've worked to make a Debian package of the software I develop [0] with the idea that the Debian Policy had to be implemented in the package making. That software recently entered Debian through NEW and almost immediately after that I got a FTBFS bug report [2]: pbuilder called debian/rules build without installing the required Build-Depends-Indep: texlive-latex-extra, texlive-latex-recommended, texlive-fonts-recommended which of course failed because pdflatex was not found on the system and thus could not build the LaTeX docs of the software. It is a pity to have a Debian Policy so well documented, to point package-making learners to that Policy and then have non-conformant builders. In fact, I'd ask what would be the solution to overcome the problem (apart from the desirable fixing the builders)? My 2 eurocents, Best regards, Filippo [0] http://massxpert.org [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528086 -- Filippo Rusconi, PhD - CNRS - public key C78F687C Author of ``massXpert'' at http://www.massxpert.org signature.asc Description: Digital signature
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
Filippo Rusconi wrote: On Mon, May 11, 2009 at 02:11:18PM +0200, Julien Cristau wrote: On Mon, May 11, 2009 at 13:46:30 +0200, Lionel Elie Mamane wrote: No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: And policy is clearly not followed by any actual practice on this point. So that's as much a bug in policy as anything else (#374029). Cheers, Julien Well, but then, why have new packagers trained by studying the Policy? Because they should find errors in policy and report such bugs ;-) Really many bug of debian-policy are found by new maintainers, but unfortunately most of new maintainers are too shy to report bugs to debian-policy, just because they are *new* maintainers. Thus debian-policy still have many bugs. ciao cate -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Mon, May 11, 2009 at 03:52:07PM +0200, Giacomo A. Catenazzi wrote: Filippo Rusconi wrote: On Mon, May 11, 2009 at 02:11:18PM +0200, Julien Cristau wrote: On Mon, May 11, 2009 at 13:46:30 +0200, Lionel Elie Mamane wrote: No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: And policy is clearly not followed by any actual practice on this point. So that's as much a bug in policy as anything else (#374029). Cheers, Julien Well, but then, why have new packagers trained by studying the Policy? Because they should find errors in policy and report such bugs ;-) Really many bug of debian-policy are found by new maintainers, but unfortunately most of new maintainers are too shy to report bugs to debian-policy, just because they are *new* maintainers. Thus debian-policy still have many bugs. Does this mean that you too think that on the specific matter dealt with in this thread, it is the policy that is bugged and not the autobuilders ? Or should I intersperse your message with smileys :) Best regards, Filippo -- Filippo Rusconi, PhD - CNRS - public key C78F687C Author of ``massXpert'' at http://www.massxpert.org signature.asc Description: Digital signature
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Mon, 2009-05-11 at 15:11 +0200, Filippo Rusconi wrote: On Mon, May 11, 2009 at 02:11:18PM +0200, Julien Cristau wrote: On Mon, May 11, 2009 at 13:46:30 +0200, Lionel Elie Mamane wrote: No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: And policy is clearly not followed by any actual practice on this point. So that's as much a bug in policy as anything else (#374029). Cheers, Julien Well, but then, why have new packagers trained by studying the Policy? Look at my own situation (which must not be a rare one, I suppose): I've worked to make a Debian package of the software I develop [0] with the idea that the Debian Policy had to be implemented in the package making. That software recently entered Debian through NEW and almost immediately after that I got a FTBFS bug report [2]: pbuilder called debian/rules build without installing the required Build-Depends-Indep: texlive-latex-extra, texlive-latex-recommended, texlive-fonts-recommended which of course failed because pdflatex was not found on the system and thus could not build the LaTeX docs of the software. I don't understand. I maintain a bunch of packages with tex in Build-Depends-Indep, and autobuilders never have a problem with them. Why are they calling the build target, and not build-arch? -Adam -- GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6 Engineering consulting with open source tools http://www.opennovation.com/ signature.asc Description: This is a digitally signed message part
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Mon, May 11, 2009 at 03:11:22PM +0200, Filippo Rusconi wrote: On Mon, May 11, 2009 at 02:11:18PM +0200, Julien Cristau wrote: On Mon, May 11, 2009 at 13:46:30 +0200, Lionel Elie Mamane wrote: No, policy is very clear on that: if you call the build target, you _must_ satisfy Build-Depends-Indep and Build-Conflicts-Indep: And policy is clearly not followed by any actual practice on this point. So that's as much a bug in policy as anything else (#374029). Cheers, Julien Well, but then, why have new packagers trained by studying the Policy? Look at my own situation (which must not be a rare one, I suppose): I've worked to make a Debian package of the software I develop [0] with the idea that the Debian Policy had to be implemented in the package making. That software recently entered Debian through NEW and almost immediately after that I got a FTBFS bug report [2]: pbuilder called debian/rules build without installing the required Build-Depends-Indep: texlive-latex-extra, texlive-latex-recommended, texlive-fonts-recommended which of course failed because pdflatex was not found on the system and thus could not build the LaTeX docs of the software. It is a pity to have a Debian Policy so well documented, to point package-making learners to that Policy and then have non-conformant builders. In fact, I'd ask what would be the solution to overcome the problem (apart from the desirable fixing the builders)? Hi, I'm glad I (finally) got some response to the problem! I've had precisely the same problem as Filippo: I prepared my first package, I spent many hours studying the Policy to follow it precisely, and to my disappointment, I got a FTBFS bug report immediately after uploading the package. It took me considerable time to find out what the problem was (thanks for help!), and moreover, it wasn't apparently my fault, it was faulty builder(s). I don't think the problem is so much in the Policy, I think the problem is with the builders. The builders must provide dependencies according to debian/control and the target(s) they're calling. Of course, improving the Policy is OK, but once the guidelines are agreed upon and written there, the builders must follow it. Not the other way around. I'm quite surprised that these problems with the builders haven't been solved already, considering the number of packages in Debian! I suggest to create a dummy package that would be as simple as possible and that would demonstrate the problem. Then test it with various building tools and fill eventual bug reports. Maybe I could prepare such dummy package in the following days, if I have time. Best regards, Petr -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: pbuilder --build --binary-arch invokes 'build' target
Hi, thanks for valuable comments, now it makes more sense to me. The problem was that my 'build:' target is dependent on build-arch and build-indep targets (as generated by dh_make when I started with the project). When pbuilder invokes 'debian/rules build', both these targets are called. I looked at text4ht's debian/rules and there you simply commented out the 'build:' target. I tried the same thing and it works nicely. (My original debian/rules, without this modification, is here: http://git.debian.org/?p=debian-science/packages/eprover.git;a=blob;f=debian/rules;hb=master ) Now I'm just concerned about (violating) Debian Policy (Sect. 4.9). It states that the 'build:' target is mandatory. Should I leave 'build:' commented out, possibly violating the policy, or perhaps include it just empty, removing its dependencies on 'build-arch' and 'build-indep', so that the policy is satisfied? With best regards, Petr On Wed, May 06, 2009 at 02:31:52AM +0530, Kapil Hari Paranjape wrote: Hello, On Tue, 05 May 2009, Petr Pudlak wrote: The problem is that if pbuilder is invoked with --binary-arch, it still tries to build the whole project, including the documentation (indep). It looks to me as if the problem is with pbuilder (or with the tools it's invoking), but of course the problem might as well be my ignorance. If you invoke pbuilder --binary-arch then it in turn invokes debian/rules binary-arch. So it looks as if your binary-arch target is running the complete build target. In the case of the tex4ht package I have chosen to create two targets build-arch and build-indep which are invoked by the appropriate binary-* targets. You can browse the SVN repo of the debian directory of the tex4ht package on svn.debian.org http://svn.debian.org/wsvn/collab-maint/deb-maint/tex4ht/trunk/debian/rules to see this. Regards, Kapil. -- -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: pbuilder --build --binary-arch invokes 'build' target
Petr Pudlak d...@pudlak.name writes: Now I'm just concerned about (violating) Debian Policy (Sect. 4.9). It states that the 'build:' target is mandatory. Should I leave 'build:' commented out, possibly violating the policy, or perhaps include it just empty, removing its dependencies on 'build-arch' and 'build-indep', so that the policy is satisfied? How about keeping the build: target as is, complete with full dependencies, but conditionalizing documentation building on the presence of what it needs?: [ ! -x /usr/bin/dvipng ] || [ ! -x /usr/bin/tex4ht ] || \ [ ! -f /usr/share/texmf-texlive/... ] || \ $(MAKE) -C DOC html (I'm not sure what specifically you need from texlive-latex-extra.) BTW, I'd also suggest cleaning up your build dependencies: texlive-latex-extra already depends on -base for you, and sed, mawk, and gawk have all been at the requisite versions since at least oldstable, with both sed and mawk setting Priority: required. (Moreover, allowing the virtual awk package undermines the relevant version requirements anyway.) -- Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org) http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?...@monk.mit.edu -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Bug#521918: pbuilder --build --binary-arch invokes 'build' target
On Tue, May 5, 2009 at 19:01:41 +0200, Petr Pudlak wrote: Hi, I was trying to attend a reported bug (#521918) of a recently uploaded package 'eprover', but unfortunately I didn't know what to do about it. I've already asked on debian-mentors, but nobody replied. The problem is that if pbuilder is invoked with --binary-arch, it still tries to build the whole project, including the documentation (indep). But the tools required to build the documentation are missing, since they are specified in Build-Depends-Indep:, not in Build-Depends:. It looks to me as if the problem is with pbuilder (or with the tools it's invoking), but of course the problem might as well be my ignorance. The only solution I thought of so far was to put the tools for building the documentation into Build-Depends:, but this seems to me (at least) as improper. Could anyone help me, either by advising how to properly solve the problem, or by pointing out what I'm doing wrong? arch-specific builds run 'debian/rules build $rootcmd debian/rules binary-arch' (where rootcmd is fakeroot or sudo). They can't do anything else, because the build-arch target is (still) not required. Whatever's needed for this needs to be in Build-Depends. Basically the only place you're allowed to use the Build-Depends-Indep stuff is the binary-indep target. There's a long-standing bug on debian-policy about this, IIRC. Cheers, Julien -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: pbuilder --build --binary-arch invokes 'build' target
Hi, I was trying to attend a reported bug (#521918) of a recently uploaded package 'eprover', but unfortunately I didn't know what to do about it. I've already asked on debian-mentors, but nobody replied. The problem is that if pbuilder is invoked with --binary-arch, it still tries to build the whole project, including the documentation (indep). But the tools required to build the documentation are missing, since they are specified in Build-Depends-Indep:, not in Build-Depends:. It looks to me as if the problem is with pbuilder (or with the tools it's invoking), but of course the problem might as well be my ignorance. The only solution I thought of so far was to put the tools for building the documentation into Build-Depends:, but this seems to me (at least) as improper. Could anyone help me, either by advising how to properly solve the problem, or by pointing out what I'm doing wrong? Thanks in advance, Petr On Sun, Apr 26, 2009 at 04:22:42PM +0200, d...@pudlak.name wrote: Hi, I'm trying to address bug #521918 http://bugs.debian.org/521918. When I run pbuilder as pbuilder --build --binary-arch eprover_1.0.004-1.dsc so that it should build only the binary target, it seems to me that it still invokes the 'debian/rules build' target, instead of 'build-arch' (or 'binary-arch'?), which I'd expect. This way, the building process fails, since it tries to build the documentation, but it's missing Build-Depends-Indep packages (LaTeX, tex4ht, etc.). Am I doing something wrong? Could someone more experienced recommend me how to solve this problem? Thanks in advance, Petr [See http://git.debian.org/?p=debian-science/packages/eprover.git] This message was sent using IMP, the Internet Messaging Program. -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: pbuilder --build --binary-arch invokes 'build' target
Hello, On Tue, 05 May 2009, Petr Pudlak wrote: The problem is that if pbuilder is invoked with --binary-arch, it still tries to build the whole project, including the documentation (indep). It looks to me as if the problem is with pbuilder (or with the tools it's invoking), but of course the problem might as well be my ignorance. If you invoke pbuilder --binary-arch then it in turn invokes debian/rules binary-arch. So it looks as if your binary-arch target is running the complete build target. In the case of the tex4ht package I have chosen to create two targets build-arch and build-indep which are invoked by the appropriate binary-* targets. You can browse the SVN repo of the debian directory of the tex4ht package on svn.debian.org http://svn.debian.org/wsvn/collab-maint/deb-maint/tex4ht/trunk/debian/rules to see this. Regards, Kapil. -- signature.asc Description: Digital signature
pbuilder --build --binary-arch invokes 'build' target
Hi, I'm trying to address bug #521918 http://bugs.debian.org/521918. When I run pbuilder as pbuilder --build --binary-arch eprover_1.0.004-1.dsc so that it should build only the binary target, it seems to me that it still invokes the 'debian/rules build' target, instead of 'build-arch' (or 'binary-arch'?), which I'd expect. This way, the building process fails, since it tries to build the documentation, but it's missing Build-Depends-Indep packages (LaTeX, tex4ht, etc.). Am I doing something wrong? Could someone more experienced recommend me how to solve this problem? Thanks in advance, Petr [See http://git.debian.org/?p=debian-science/packages/eprover.git] This message was sent using IMP, the Internet Messaging Program. -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org