* [gentoo-dev] FYI: Rules for distro-friendly packages @ 2010-06-25 20:17 Enrico Weigelt 2010-06-25 20:28 ` Alistair Bush ` (3 more replies) 0 siblings, 4 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-25 20:17 UTC (permalink / raw To: gentoo developers, gentoo-user Hi folks, I'm currently collecting a set of rules which upstream developers should follow to make distro maintainer's life easier. Comments welcomed :) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-25 20:17 [gentoo-dev] FYI: Rules for distro-friendly packages Enrico Weigelt @ 2010-06-25 20:28 ` Alistair Bush 2010-06-26 18:56 ` Enrico Weigelt 2010-06-25 21:00 ` Krzysztof Pawlik ` (2 subsequent siblings) 3 siblings, 1 reply; 53+ messages in thread From: Alistair Bush @ 2010-06-25 20:28 UTC (permalink / raw To: gentoo-dev; +Cc: Enrico Weigelt > Hi folks, > > > I'm currently collecting a set of rules which upstream developers > should follow to make distro maintainer's life easier. > > Comments welcomed :) > Is this language specific? would you be interested in comments about java, ruby, python, etc, etc, etc or are you only interested in good old C/C++, etc > > cu ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-25 20:28 ` Alistair Bush @ 2010-06-26 18:56 ` Enrico Weigelt 0 siblings, 0 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 18:56 UTC (permalink / raw To: gentoo-dev * Alistair Bush <ali_bush@gentoo.org> schrieb: > Is this language specific? I'll try to separate it into generic and language specific rules step by step (same for various build systems, etc). > would you be interested in comments about java, ruby, python, > etc, etc, etc or are you only interested in good old C/C++, etc Just give me everything you've got :) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-25 20:17 [gentoo-dev] FYI: Rules for distro-friendly packages Enrico Weigelt 2010-06-25 20:28 ` Alistair Bush @ 2010-06-25 21:00 ` Krzysztof Pawlik 2010-06-26 18:51 ` Enrico Weigelt 2010-06-25 22:24 ` Petteri Räty [not found] ` <201006252338.51889.alan.mckinnon@gmail.com> 3 siblings, 1 reply; 53+ messages in thread From: Krzysztof Pawlik @ 2010-06-25 21:00 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 497 bytes --] On 06/25/10 21:17, Enrico Weigelt wrote: > I'm currently collecting a set of rules which upstream developers > should follow to make distro maintainer's life easier. > > Comments welcomed :) Take a look at this page: http://overlays.gentoo.org/proj/java/wiki/How_to_be_a_good_upstream - it is Java specific mostly, but some general points can be reused :) -- Krzysztof Pawlik <nelchael at gentoo.org> key id: 0xF6A80E46 desktop-misc, java, apache, ppc, vim, kernel, python... [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 554 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-25 21:00 ` Krzysztof Pawlik @ 2010-06-26 18:51 ` Enrico Weigelt 2010-06-26 19:21 ` Krzysztof Pawlik 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 18:51 UTC (permalink / raw To: gentoo-dev * Krzysztof Pawlik <nelchael@gentoo.org> schrieb: > Take a look at this page: > http://overlays.gentoo.org/proj/java/wiki/How_to_be_a_good_upstream - it is Java > specific mostly, but some general points can be reused :) Hmm, this document suggests something, I just forgot to prohibit: "Release the source archives along with whatever binary archives you may have." ^^^^^^^^^^^^^^^^^ cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 18:51 ` Enrico Weigelt @ 2010-06-26 19:21 ` Krzysztof Pawlik 2010-06-26 19:46 ` Enrico Weigelt 0 siblings, 1 reply; 53+ messages in thread From: Krzysztof Pawlik @ 2010-06-26 19:21 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1146 bytes --] On 06/26/10 19:51, Enrico Weigelt wrote: > * Krzysztof Pawlik <nelchael@gentoo.org> schrieb: > >> Take a look at this page: >> http://overlays.gentoo.org/proj/java/wiki/How_to_be_a_good_upstream - it is Java >> specific mostly, but some general points can be reused :) > > Hmm, this document suggests something, I just forgot to prohibit: > > "Release the source archives along with whatever binary archives you may have." > ^^^^^^^^^^^^^^^^^ You intend to "prohibit" releasing binary packages for upstream? Thats... something you don't see everyday. Why would you do that? It's quite common for Java projects to release pre-built JAR files or for C/C++ (or other) based projects to release debs or rpms - it's standard practice. What's important in quoted sentence is: "Release the source archives along with binary archives" - the "with" is very important - in short: don't release only binary versions and force us to grab them from VCS. -- Krzysztof Pawlik <nelchael at gentoo.org> key id: 0xF6A80E46 desktop-misc, java, apache, ppc, vim, kernel, python... [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 554 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:21 ` Krzysztof Pawlik @ 2010-06-26 19:46 ` Enrico Weigelt 2010-06-26 19:59 ` Ciaran McCreesh 2010-06-27 5:48 ` Hans de Graaff 0 siblings, 2 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 19:46 UTC (permalink / raw To: gentoo-dev * Krzysztof Pawlik <nelchael@gentoo.org> schrieb: > > Hmm, this document suggests something, I just forgot to prohibit: > > > > "Release the source archives along with whatever binary archives you may have." > > ^^^^^^^^^^^^^^^^^ > > You intend to "prohibit" releasing binary packages for upstream? No, I'm talking about precompiled stuff within the source tree. Such things should _never ever_ happen. In Java world it seems to be quite common to bundle precompiled imported libraries within the source tree. Needless to say that this can easily get hell for any package-based distro. (actually, that mostly comes from the windows front, where concepts like package management are quite unknown ... ;-o) > What's important in quoted sentence is: "Release the source archives along with > binary archives" - the "with" is very important - in short: don't release only > binary versions and force us to grab them from VCS. Okay, perhaps I misunderstood this sentence. BTW: if upstream has an proper VCS and an canonical tagging scheme, they don't actually have to create release tarballs, just hack up a little script which creates them on-the-fly from an canonical URL scheme (eg. oss-qm does exactly that). cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:46 ` Enrico Weigelt @ 2010-06-26 19:59 ` Ciaran McCreesh 2010-06-26 20:08 ` Krzysztof Pawlik ` (2 more replies) 2010-06-27 5:48 ` Hans de Graaff 1 sibling, 3 replies; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-26 19:59 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 567 bytes --] On Sat, 26 Jun 2010 21:46:39 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > BTW: if upstream has an proper VCS and an canonical tagging > scheme, they don't actually have to create release tarballs, > just hack up a little script which creates them on-the-fly > from an canonical URL scheme (eg. oss-qm does exactly that). Down that path lies madness. There's no guarantee that you'll get the same tarball if you request the same URL twice in a row, particularly if you're using one of those new-fangled new compression schemes. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:59 ` Ciaran McCreesh @ 2010-06-26 20:08 ` Krzysztof Pawlik 2010-06-26 20:10 ` Enrico Weigelt 2010-06-26 20:09 ` Enrico Weigelt 2010-06-26 20:33 ` Nirbheek Chauhan 2 siblings, 1 reply; 53+ messages in thread From: Krzysztof Pawlik @ 2010-06-26 20:08 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 805 bytes --] On 06/26/10 20:59, Ciaran McCreesh wrote: > On Sat, 26 Jun 2010 21:46:39 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: >> BTW: if upstream has an proper VCS and an canonical tagging >> scheme, they don't actually have to create release tarballs, >> just hack up a little script which creates them on-the-fly >> from an canonical URL scheme (eg. oss-qm does exactly that). > > Down that path lies madness. There's no guarantee that you'll get the > same tarball if you request the same URL twice in a row, particularly > if you're using one of those new-fangled new compression schemes. I agree with Ciaran here, to add one more thing: tags can be mutable. -- Krzysztof Pawlik <nelchael at gentoo.org> key id: 0xF6A80E46 desktop-misc, java, apache, ppc, vim, kernel, python... [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 554 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 20:08 ` Krzysztof Pawlik @ 2010-06-26 20:10 ` Enrico Weigelt 0 siblings, 0 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 20:10 UTC (permalink / raw To: gentoo-dev * Krzysztof Pawlik <nelchael@gentoo.org> schrieb: > > Down that path lies madness. There's no guarantee that you'll get the > > same tarball if you request the same URL twice in a row, particularly > > if you're using one of those new-fangled new compression schemes. > > I agree with Ciaran here, to add one more thing: tags can be mutable. Thats a matter of proper VCS configuration (hooks, etc) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:59 ` Ciaran McCreesh 2010-06-26 20:08 ` Krzysztof Pawlik @ 2010-06-26 20:09 ` Enrico Weigelt 2010-06-26 20:18 ` Ciaran McCreesh 2010-06-26 20:33 ` Nirbheek Chauhan 2 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 20:09 UTC (permalink / raw To: gentoo-dev * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: > On Sat, 26 Jun 2010 21:46:39 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: > > BTW: if upstream has an proper VCS and an canonical tagging > > scheme, they don't actually have to create release tarballs, > > just hack up a little script which creates them on-the-fly > > from an canonical URL scheme (eg. oss-qm does exactly that). > > Down that path lies madness. There's no guarantee that you'll get the > same tarball if you request the same URL twice in a row, particularly > if you're using one of those new-fangled new compression schemes. Well, with git this works. (I'll yet have to run some automatic stress tests, but at all my manual tests worked really fine). *If* this might not work somewhere, the little generator script could create the tarball only once (on first request) and use it all the time. Or add some commit/push hook, etc, etc. cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 20:09 ` Enrico Weigelt @ 2010-06-26 20:18 ` Ciaran McCreesh 2010-06-27 10:34 ` Enrico Weigelt 0 siblings, 1 reply; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-26 20:18 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 379 bytes --] On Sat, 26 Jun 2010 22:09:09 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > Well, with git this works. (I'll yet have to run some automatic > stress tests, but at all my manual tests worked really fine). You assume that, given the same input and program options, a compression program will always produce the same output. This is not the case. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 20:18 ` Ciaran McCreesh @ 2010-06-27 10:34 ` Enrico Weigelt 2010-06-27 10:45 ` Ciaran McCreesh 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 10:34 UTC (permalink / raw To: gentoo-dev * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: > On Sat, 26 Jun 2010 22:09:09 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: > > Well, with git this works. (I'll yet have to run some automatic > > stress tests, but at all my manual tests worked really fine). > > You assume that, given the same input and program options, a > compression program will always produce the same output. This is not > the case. Well, at least for tar, I've experienced no problem here yet. But: true, it might change between tar versions. A more sophisticated approach, IMHO, would be: directly fetching from the VCS, but that would probably mean a major design change. (my Briegel buildsystem goes this way ... it doesnt even patch on itself anymore, thats done entirely in git) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 10:34 ` Enrico Weigelt @ 2010-06-27 10:45 ` Ciaran McCreesh 2010-06-27 11:08 ` Enrico Weigelt 0 siblings, 1 reply; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-27 10:45 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 574 bytes --] On Sun, 27 Jun 2010 12:34:44 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > > You assume that, given the same input and program options, a > > compression program will always produce the same output. This is not > > the case. > > Well, at least for tar, I've experienced no problem here yet. > But: true, it might change between tar versions. The main offender is the compression program, not tar. > A more sophisticated approach, IMHO, would be: directly fetching > from the VCS Yes, upstreams are going to love you for that... -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 10:45 ` Ciaran McCreesh @ 2010-06-27 11:08 ` Enrico Weigelt 2010-06-27 11:15 ` Ciaran McCreesh 2010-06-27 18:33 ` Brian Harring 0 siblings, 2 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 11:08 UTC (permalink / raw To: gentoo-dev * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: > > Well, at least for tar, I've experienced no problem here yet. > > But: true, it might change between tar versions. > > The main offender is the compression program, not tar. hmm, I'm exclusively using bzip2 and never had these problems yet. maybe it depends on the compressor type. > > A more sophisticated approach, IMHO, would be: directly fetching > > from the VCS > > Yes, upstreams are going to love you for that... Why ? Because of traffic ? Of course, distros should work from their own clones (yes, yes, I'm assuming modern VCS'es, not toys like svn ;-p) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 11:08 ` Enrico Weigelt @ 2010-06-27 11:15 ` Ciaran McCreesh 2010-06-27 18:33 ` Brian Harring 1 sibling, 0 replies; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-27 11:15 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 626 bytes --] On Sun, 27 Jun 2010 13:08:58 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > > > Well, at least for tar, I've experienced no problem here yet. > > > But: true, it might change between tar versions. > > > > The main offender is the compression program, not tar. > > hmm, I'm exclusively using bzip2 and never had these problems > yet. maybe it depends on the compressor type. Your problem is that you are thinking in terms of "well I've not seen it break", not "I can prove that it will always work". You may find the "Compressed output may vary" section of "man 1 xz" to be useful. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 11:08 ` Enrico Weigelt 2010-06-27 11:15 ` Ciaran McCreesh @ 2010-06-27 18:33 ` Brian Harring 2010-06-27 18:48 ` Patrick Lauer 2010-08-17 17:04 ` Enrico Weigelt 1 sibling, 2 replies; 53+ messages in thread From: Brian Harring @ 2010-06-27 18:33 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 817 bytes --] On Sun, Jun 27, 2010 at 01:08:58PM +0200, Enrico Weigelt wrote: > * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: > > > > Well, at least for tar, I've experienced no problem here yet. > > > But: true, it might change between tar versions. > > > > The main offender is the compression program, not tar. > > hmm, I'm exclusively using bzip2 and never had these problems > yet. maybe it depends on the compressor type. http://www.gentoo.org/proj/en/glep/glep-0025.html#the-problem-in-detail Note also that bzip2 had another change in output after that release- my memory is failing me a bit, but it was roughly a a reduction of their hash size to fix a CVE- either way, same thing, differing output. It happens, and further, is a well known potential for compressors. ~harring [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 18:33 ` Brian Harring @ 2010-06-27 18:48 ` Patrick Lauer 2010-08-17 17:04 ` Enrico Weigelt 1 sibling, 0 replies; 53+ messages in thread From: Patrick Lauer @ 2010-06-27 18:48 UTC (permalink / raw To: gentoo-dev On 06/27/10 20:33, Brian Harring wrote: > On Sun, Jun 27, 2010 at 01:08:58PM +0200, Enrico Weigelt wrote: >> * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: >> >>>> Well, at least for tar, I've experienced no problem here yet. >>>> But: true, it might change between tar versions. >>> >>> The main offender is the compression program, not tar. >> >> hmm, I'm exclusively using bzip2 and never had these problems >> yet. maybe it depends on the compressor type. > > http://www.gentoo.org/proj/en/glep/glep-0025.html#the-problem-in-detail > > Note also that bzip2 had another change in output after that > release- my memory is failing me a bit, but it was roughly a > a reduction of their hash size to fix a CVE- either way, same thing, > differing output. Are you thinking about "bzip2 version 1.0.2 worked with huffman codes with a length of up to 20 bits. Unfortunately the Author of bzip2, Julian Seward, changed this in the new version 1.0.3 - it uses only a maximum length of 17 bits now. " (Quoted from http://linux01.gwdg.de/~nlissne/bugsandproblems.html ) ? ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 18:33 ` Brian Harring 2010-06-27 18:48 ` Patrick Lauer @ 2010-08-17 17:04 ` Enrico Weigelt 2010-08-18 4:15 ` Jacob Godserv 1 sibling, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-08-17 17:04 UTC (permalink / raw To: gentoo-dev * Brian Harring <ferringb@gmail.com> schrieb: > > hmm, I'm exclusively using bzip2 and never had these problems > > yet. maybe it depends on the compressor type. > > http://www.gentoo.org/proj/en/glep/glep-0025.html#the-problem-in-detail > > Note also that bzip2 had another change in output after that > release- my memory is failing me a bit, but it was roughly a > a reduction of their hash size to fix a CVE- either way, same thing, > differing output. Okay, you've convinced me :) Meanwhile I've reworked my Briegel buildsystem [1] to support direct git checkouts (including a repo cache). Next step will be a mechanism to check tag signatures. cu -- ---------------------------------------------------------------------- Enrico Weigelt, metux IT service -- http://www.metux.de/ phone: +49 36207 519931 email: weigelt@metux.de mobile: +49 151 27565287 icq: 210169427 skype: nekrad666 ---------------------------------------------------------------------- Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme ---------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-08-17 17:04 ` Enrico Weigelt @ 2010-08-18 4:15 ` Jacob Godserv 2010-08-18 19:10 ` Enrico Weigelt 0 siblings, 1 reply; 53+ messages in thread From: Jacob Godserv @ 2010-08-18 4:15 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 625 bytes --] On Tue, 17 Aug 2010 19:04:03 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > Meanwhile I've reworked my Briegel buildsystem [1] to support > direct git checkouts (including a repo cache). Next step will be > a mechanism to check tag signatures. You have a footnote, but no link, and I'm curious. :) -- Jacob "For then there will be great distress, unequaled from the beginning of the world until now — and never to be equaled again. If those days had not been cut short, no one would survive, but for the sake of the elect those days will be shortened." Are you ready? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-08-18 4:15 ` Jacob Godserv @ 2010-08-18 19:10 ` Enrico Weigelt 0 siblings, 0 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-08-18 19:10 UTC (permalink / raw To: gentoo-dev * Jacob Godserv <jacobgodserv@gmail.com> schrieb: > On Tue, 17 Aug 2010 19:04:03 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: > > > Meanwhile I've reworked my Briegel buildsystem [1] to support > > direct git checkouts (including a repo cache). Next step will be > > a mechanism to check tag signatures. > > You have a footnote, but no link, and I'm curious. :) ups, I probably thinking and typing got out of sync ;-O http://www.metux.de/index.php/en/component/content/article/57.html cu -- ---------------------------------------------------------------------- Enrico Weigelt, metux IT service -- http://www.metux.de/ phone: +49 36207 519931 email: weigelt@metux.de mobile: +49 151 27565287 icq: 210169427 skype: nekrad666 ---------------------------------------------------------------------- Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme ---------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:59 ` Ciaran McCreesh 2010-06-26 20:08 ` Krzysztof Pawlik 2010-06-26 20:09 ` Enrico Weigelt @ 2010-06-26 20:33 ` Nirbheek Chauhan 2010-06-27 10:35 ` Enrico Weigelt 2 siblings, 1 reply; 53+ messages in thread From: Nirbheek Chauhan @ 2010-06-26 20:33 UTC (permalink / raw To: gentoo-dev On Sun, Jun 27, 2010 at 1:29 AM, Ciaran McCreesh <ciaran.mccreesh@googlemail.com> wrote: > On Sat, 26 Jun 2010 21:46:39 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: >> BTW: if upstream has an proper VCS and an canonical tagging >> scheme, they don't actually have to create release tarballs, >> just hack up a little script which creates them on-the-fly >> from an canonical URL scheme (eg. oss-qm does exactly that). > > Down that path lies madness. There's no guarantee that you'll get the > same tarball if you request the same URL twice in a row, particularly > if you're using one of those new-fangled new compression schemes. > Or if they generate the tarball on-the-fly with no caching, which results in differing timestamps each time. Hence, each time you fetch it, you get a tarball with a different hash. No, don't ask where I saw such a thing :p -- ~Nirbheek Chauhan Gentoo GNOME+Mozilla Team ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 20:33 ` Nirbheek Chauhan @ 2010-06-27 10:35 ` Enrico Weigelt 2010-06-27 20:46 ` Nirbheek Chauhan 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 10:35 UTC (permalink / raw To: gentoo-dev * Nirbheek Chauhan <nirbheek@gentoo.org> schrieb: > Or if they generate the tarball on-the-fly with no caching, which > results in differing timestamps each time. Hence, each time you fetch > it, you get a tarball with a different hash. Does portage check the timestamps ? cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 10:35 ` Enrico Weigelt @ 2010-06-27 20:46 ` Nirbheek Chauhan 0 siblings, 0 replies; 53+ messages in thread From: Nirbheek Chauhan @ 2010-06-27 20:46 UTC (permalink / raw To: gentoo-dev On Sun, Jun 27, 2010 at 4:05 PM, Enrico Weigelt <weigelt@metux.de> wrote: > * Nirbheek Chauhan <nirbheek@gentoo.org> schrieb: > >> Or if they generate the tarball on-the-fly with no caching, which >> results in differing timestamps each time. Hence, each time you fetch >> it, you get a tarball with a different hash. > > Does portage check the timestamps ? > I think you need to sit down and understand how tarballs are made, what they contain, and what a "hash" means, and how it's calculated. -- ~Nirbheek Chauhan Gentoo GNOME+Mozilla Team ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:46 ` Enrico Weigelt 2010-06-26 19:59 ` Ciaran McCreesh @ 2010-06-27 5:48 ` Hans de Graaff 1 sibling, 0 replies; 53+ messages in thread From: Hans de Graaff @ 2010-06-27 5:48 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 639 bytes --] On Sat, 2010-06-26 at 21:46 +0200, Enrico Weigelt wrote: > BTW: if upstream has an proper VCS and an canonical tagging > scheme, they don't actually have to create release tarballs, > just hack up a little script which creates them on-the-fly > from an canonical URL scheme (eg. oss-qm does exactly that). This breaks badly when the upstream tarball generation is changed. This happened to github a few months ago and broke all our manifests. To their credit they quickly reverted what turned out to be a gratuitous change, but if they ever need to make a real change we get to redigest everything. Kind regards, Hans [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 230 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-25 20:17 [gentoo-dev] FYI: Rules for distro-friendly packages Enrico Weigelt 2010-06-25 20:28 ` Alistair Bush 2010-06-25 21:00 ` Krzysztof Pawlik @ 2010-06-25 22:24 ` Petteri Räty 2010-06-26 19:39 ` Enrico Weigelt [not found] ` <201006252338.51889.alan.mckinnon@gmail.com> 3 siblings, 1 reply; 53+ messages in thread From: Petteri Räty @ 2010-06-25 22:24 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 377 bytes --] On 06/25/2010 11:17 PM, Enrico Weigelt wrote: > > Hi folks, > > > I'm currently collecting a set of rules which upstream developers > should follow to make distro maintainer's life easier. > > Comments welcomed :) > There should be useful stuff here: http://video.fosdem.org/2010/devrooms/distributions/How_to_be_a_good_upstream.ogv Regards, Petteri [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 900 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-25 22:24 ` Petteri Räty @ 2010-06-26 19:39 ` Enrico Weigelt 2010-06-26 19:50 ` Ciaran McCreesh ` (2 more replies) 0 siblings, 3 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 19:39 UTC (permalink / raw To: gentoo-dev * Petteri Räty <betelgeuse@gentoo.org> schrieb: > There should be useful stuff here: > http://video.fosdem.org/2010/devrooms/distributions/How_to_be_a_good_upstream.ogv #1 he says nothing about that - if upstream has a VCS (and properly uses it ;-o) - the distros should use it, so eg. set their branches ontop the upstream's release tags instead of manually maintaining patches against tarballs ... #2 One point i don't agree is the "dont add -Werror" rule. actually, i'm thinking of making -Wall and -Werror mandatory. if some package doenst build fine, it's simply broken. period. #3 When he's talking about "disabling dependencies", he most likely has the totally wrong concept in mind (as probably most Gentoo folks ;-p): you naturally dont want to enable/disable dependencies, but features (which then imply certain dependencies). Once you use terms like "zlib support", you're already on the wrong path. #4 The discussion about "how to be a good downstream" (started by the ffmpeg guy) is quite interesting ... that's exactly the kind of situations what the OSS-QM (see my recent posts) is for. (and all goes sooo easy w/ tools like git ;-p) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:39 ` Enrico Weigelt @ 2010-06-26 19:50 ` Ciaran McCreesh 2010-06-26 19:57 ` Enrico Weigelt 2010-06-26 19:57 ` [gentoo-dev] " Nikos Chantziaras 2010-06-27 8:14 ` [gentoo-dev] " Rémi Cardona 2 siblings, 1 reply; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-26 19:50 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 381 bytes --] On Sat, 26 Jun 2010 21:39:15 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > #2 One point i don't agree is the "dont add -Werror" rule. actually, > i'm thinking of making -Wall and -Werror mandatory. if some > package doenst build fine, it's simply broken. period. Uhm. No. Certain compilers will give you warnings for f(g(a), g(b)) if you -Wall. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:50 ` Ciaran McCreesh @ 2010-06-26 19:57 ` Enrico Weigelt 2010-06-26 20:12 ` Ciaran McCreesh 2010-06-27 6:09 ` [gentoo-dev] " Sergei Trofimovich 0 siblings, 2 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-26 19:57 UTC (permalink / raw To: gentoo-dev * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: > On Sat, 26 Jun 2010 21:39:15 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: > > #2 One point i don't agree is the "dont add -Werror" rule. actually, > > i'm thinking of making -Wall and -Werror mandatory. if some > > package doenst build fine, it's simply broken. period. > > Uhm. No. Certain compilers will give you warnings for f(g(a), g(b)) if > you -Wall. Warn on what exactly ? Which compilers do that ? cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:57 ` Enrico Weigelt @ 2010-06-26 20:12 ` Ciaran McCreesh 2010-06-27 5:52 ` [gentoo-dev] " Nikos Chantziaras 2010-06-27 6:09 ` [gentoo-dev] " Sergei Trofimovich 1 sibling, 1 reply; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-26 20:12 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 479 bytes --] On Sat, 26 Jun 2010 21:57:33 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > > Uhm. No. Certain compilers will give you warnings for f(g(a), g(b)) > > if you -Wall. > > Warn on what exactly ? That f's arguments are evaluated in an unspecified order. > Which compilers do that ? For all you know, gcc 4.7. New gcc releases regularly issue lots of new warnings for correct code, particularly with -Wall. Other compilers are even worse. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-26 20:12 ` Ciaran McCreesh @ 2010-06-27 5:52 ` Nikos Chantziaras 2010-06-27 10:47 ` Enrico Weigelt 0 siblings, 1 reply; 53+ messages in thread From: Nikos Chantziaras @ 2010-06-27 5:52 UTC (permalink / raw To: gentoo-dev On 06/26/2010 11:12 PM, Ciaran McCreesh wrote: > On Sat, 26 Jun 2010 21:57:33 +0200 > Enrico Weigelt<weigelt@metux.de> wrote: >>> Uhm. No. Certain compilers will give you warnings for f(g(a), g(b)) >>> if you -Wall. >> >> Warn on what exactly ? > > That f's arguments are evaluated in an unspecified order. > >> Which compilers do that ? > > For all you know, gcc 4.7. > > New gcc releases regularly issue lots of new warnings for correct code, > particularly with -Wall. Other compilers are even worse. Did it actually occur to anyone that warnings are not errors? You can have them for correct code. A warning means you might want to look at the code to check whether there's some real error there. It doesn't mean the code is broken. ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 5:52 ` [gentoo-dev] " Nikos Chantziaras @ 2010-06-27 10:47 ` Enrico Weigelt 2010-06-27 11:56 ` Nikos Chantziaras 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 10:47 UTC (permalink / raw To: gentoo-dev * Nikos Chantziaras <realnc@arcor.de> schrieb: > Did it actually occur to anyone that warnings are not errors? You can > have them for correct code. A warning means you might want to look at > the code to check whether there's some real error there. It doesn't > mean the code is broken. In my personal experience, most times a warning comes it, the code *is* broken (but *might* work in most situations). So, developers should always enable it and think ten times if some warning is acceptable. But: you all conviced me. These flags should be controlled by the distro buildsystem, not the individual package. Developers just should take care that there're no preventable warnings. cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 10:47 ` Enrico Weigelt @ 2010-06-27 11:56 ` Nikos Chantziaras 2010-06-27 12:23 ` Harald van Dijk 0 siblings, 1 reply; 53+ messages in thread From: Nikos Chantziaras @ 2010-06-27 11:56 UTC (permalink / raw To: gentoo-dev On 06/27/2010 01:47 PM, Enrico Weigelt wrote: > * Nikos Chantziaras<realnc@arcor.de> schrieb: > >> Did it actually occur to anyone that warnings are not errors? You can >> have them for correct code. A warning means you might want to look at >> the code to check whether there's some real error there. It doesn't >> mean the code is broken. > > In my personal experience, most times a warning comes it, the > code *is* broken (but *might* work in most situations). That's the key to it: most times. Granted, without -Wall (or any other options that tweaks the default warning level) we can be very sure that the warning is the result of a mistake by the developer. But with -Wall, many warnings are totally not interesting ("unused parameter") and some even try to outsmart the programmer even though he/she knows better ("taking address of variable declared register"). In that last example, fixing it would even be wrong when you consider the optimizer and the fuzzy meaning of "register" which the compiler is totally free to ignore. ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 11:56 ` Nikos Chantziaras @ 2010-06-27 12:23 ` Harald van Dijk 2010-06-27 12:25 ` Enrico Weigelt 2010-06-27 14:46 ` Nikos Chantziaras 0 siblings, 2 replies; 53+ messages in thread From: Harald van Dijk @ 2010-06-27 12:23 UTC (permalink / raw To: gentoo-dev On Sun, Jun 27, 2010 at 02:56:33PM +0300, Nikos Chantziaras wrote: > On 06/27/2010 01:47 PM, Enrico Weigelt wrote: > > * Nikos Chantziaras<realnc@arcor.de> schrieb: > > > >> Did it actually occur to anyone that warnings are not errors? You can > >> have them for correct code. A warning means you might want to look at > >> the code to check whether there's some real error there. It doesn't > >> mean the code is broken. > > > > In my personal experience, most times a warning comes it, the > > code *is* broken (but *might* work in most situations). > > That's the key to it: most times. Granted, without -Wall (or any other > options that tweaks the default warning level) we can be very sure that > the warning is the result of a mistake by the developer. But with > -Wall, many warnings are totally not interesting ("unused parameter") > and some even try to outsmart the programmer even though he/she knows > better ("taking address of variable declared register"). In that last > example, fixing it would even be wrong when you consider the optimizer > and the fuzzy meaning of "register" which the compiler is totally free > to ignore. The compiler is not totally free to ignore the register keyword. Both the C and the C++ standards require that the compiler complain when taking the address of a register variable. Other compilers will issue a hard error for it. Fixing the code to not declare the variable as register would be the correct thing to do. Make sure you *understand* warnings, and then you can decide whether to fix the code, if there is anything to fix, or to ignore. ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 12:23 ` Harald van Dijk @ 2010-06-27 12:25 ` Enrico Weigelt 2010-06-27 12:35 ` Ciaran McCreesh 2010-06-27 14:46 ` Nikos Chantziaras 1 sibling, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 12:25 UTC (permalink / raw To: gentoo-dev * Harald van D??k <truedfx@gentoo.org> schrieb: > The compiler is not totally free to ignore the register keyword. Both > the C and the C++ standards require that the compiler complain when > taking the address of a register variable. Other compilers will issue a > hard error for it. Fixing the code to not declare the variable as > register would be the correct thing to do. BTW: is the register keyword still so useful nowadays ? Shouldn't a modern (optimizing) compiler be clever enough to find out when it can use registers instead of RAM ? > Make sure you *understand* warnings, and then you can decide whether to > fix the code, if there is anything to fix, or to ignore. hmm, is there a (portable) way to prevent a specific warning in an specific place ? (some kind of #pragma ?) cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 12:25 ` Enrico Weigelt @ 2010-06-27 12:35 ` Ciaran McCreesh 0 siblings, 0 replies; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-27 12:35 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 224 bytes --] On Sun, 27 Jun 2010 14:25:39 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > hmm, is there a (portable) way to prevent a specific warning > in an specific place ? (some kind of #pragma ?) No. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 12:23 ` Harald van Dijk 2010-06-27 12:25 ` Enrico Weigelt @ 2010-06-27 14:46 ` Nikos Chantziaras 2010-06-27 17:14 ` Harald van Dijk 1 sibling, 1 reply; 53+ messages in thread From: Nikos Chantziaras @ 2010-06-27 14:46 UTC (permalink / raw To: gentoo-dev On 06/27/2010 03:23 PM, Harald van Dijk wrote: > On Sun, Jun 27, 2010 at 02:56:33PM +0300, Nikos Chantziaras wrote: >> On 06/27/2010 01:47 PM, Enrico Weigelt wrote: >>> * Nikos Chantziaras<realnc@arcor.de> schrieb: >>> >>>> Did it actually occur to anyone that warnings are not errors? >>>> You can have them for correct code. A warning means you might >>>> want to look at the code to check whether there's some real >>>> error there. It doesn't mean the code is broken. >>> >>> In my personal experience, most times a warning comes it, the >>> code *is* broken (but *might* work in most situations). >> >> That's the key to it: most times. Granted, without -Wall (or any >> other options that tweaks the default warning level) we can be very >> sure that the warning is the result of a mistake by the developer. >> But with -Wall, many warnings are totally not interesting ("unused >> parameter") and some even try to outsmart the programmer even >> though he/she knows better ("taking address of variable declared >> register"). In that last example, fixing it would even be wrong >> when you consider the optimizer and the fuzzy meaning of "register" >> which the compiler is totally free to ignore. > > The compiler is not totally free to ignore the register keyword. > Both the C and the C++ standards require that the compiler complain > when taking the address of a register variable. Other compilers will > issue a hard error for it. Fixing the code to not declare the > variable as register would be the correct thing to do. No, it would not be the correct thing to do, because of the following. (This is part of a discussion between me and someone quite smarter than me, who explained the issue in detail.) The basic issue is that the code takes the address of the variable in question in expressions passed as parameters to certain function calls. These function calls all happen to be in-linable functions, and it happens that in each function, the address operator is always canceled out by a '*' dereference operator - in other words, we have '*&p', which the compiler can turn into just plain 'p' when the calls are in-lined, eliminating the need to actually take the address of 'p'. A compiler is always free to ignore 'register' declarations *anyway*, even if enregistration is possible. Therefore a warning that it's not possible to obey 'register' is unnecessary, because it's explicit in the language definition that 'register' is not binding. It simply is not possible for an ignored 'register' attribute to cause unexpected behavior. Warnings really should only be generated for situations where it is likely that the programmer expects different behavior than the compiler will deliver; in the case of an ignored 'register' attribute, the programmer is *required* to expect that the attribute might be ignored, so a warning to this effect is superfluous. Now, I understand why they generate the warning - it's because the compiler believes that the program code itself makes enregistration impossible, not because the compiler has chosen for optimization purposes to ignore the 'register' request. However, as we'll see shortly, the program code doesn't truly make enregistration impossible; it is merely impossible in some interpretations of the code. Therefore we really are back to the compiler choosing to ignore the 'register' request due to its own optimization decisions; the 'register' request is made impossible far downstream of the actual decisions that the compiler makes (which have to do with in-line vs out-of-line calls), but it really is compiler decisions that make it impossible, not the inherent structure of the code. When a function is in-lined, the compiler is not required to generate the same code it would generate for the most general case of the same function call, as long as the meaning is the same. For example, suppose we have some code that contains a call to a function like so: a = myFunc(a + 7, 3); In the general out-of-line case, the compiler must generate some machine-code instructions like this: push #3 mov [a], d0 add #7, d0 push d0 call #myFunc mov d0, [a] The compiler doesn't have access to the inner workings of myFunc, so it must generate the appropriate code for the generic interface to an external function. Now, suppose the function is defined like so: int myFunc(int a, int b) { return a - 6; } and further suppose that the compiler decides to in-line this function. In-lining means the compiler will generate the code that implements the function directly in the caller; there will be no call to an external linkage point. This means the compiler can implement the linkage to the function with a custom one-off interface for this particular invocation - every in-line invocation can be customized to the exact context where it appears. So, for example, if we call myFunc right now and registers d1 and d2 happens to be available, we can put the parameters in d1 and d2, and the generated function will refer to those registers for the parameters rather than having to look in the stack. Later on, if we generate a separate call to the same function, but registers d3 and d7 are the ones available, we can use those instead. Each generated copy of the function can fit its exact context. Furthermore, looking at this function and at the arguments passed, we can see that the formal parameter 'b' has no effect on the function's results, and the actual parameter '3' passed for 'b' has no side effects. Therefore, the compiler is free to completely ignore this parameter - there's no need to generate any code for it at all, since we have sufficient knowledge to see that it has no effect on the meaning of the code. Further still, we can globally optimize the entire function. So, we can see that myFunc(a+7, 3) is going to turn into the expression (a+7-6). We can fold constants to arrive at (a+1) as the result of the function. We can therefore generate the entire code for the function's invocation like so: inc [a] Okay, now let's look at the &p case. In the specific examples in vmrun.cpp, we have a bunch of function invocations like this: register const char *p; int x = myfunc(&p); In the most general case, we have to generate code like this: lea [p], d0 ; load effective address push d0 call #myfunc mov d0, [x] So, in the most general case of a call with external linkage, we need 'p' to have a main memory address so that we can push it on the stack as the parameter to this call. Registers don't have main memory addresses, so 'p' can't go in a register. However, we know what myfunc() looks like: char myfunc(const char **p) { char c = **p; *p += 1; return c; } If the compiler chooses to in-line this function, it can globally optimize its linkage and implementation as we saw earlier. So, the compiler can rewrite the code like so: register const char *p; int x = **(&p); *(&p) += 1; which can be further rewritten to: register const char *p; int x = *p; p += 1; Now we can generate the machine code for the final optimized form: mov [p], a0 ; get the *value* of p into index register 0 mov.byte [a0+0], d0 ; get the value index register 0 points to mov.byte d0, [x] ; store it in x inc [p] ; inc the value of p do we need a main memory address for p. This means the compiler can keep p in a register, say d5: mov d5, a0 mov.byte [a0+0], d0 mov.byte d0, [x] inc d5 And this is indeed exactly what the code that comes out of most compilers looks like (changed from my abstract machine to 32-bit x86, of course). So: if the compiler chooses to in-line the functions that are called with '&p' as a parameter, and the compiler performs the available optimizations on those calls once they're in-lined, then a memory address for 'p' is never needed. Thus there is a valid interpretation of the code where 'register p' can be obeyed. If the compiler doesn't choose to in-line the functions or make those optimizations, then the compiler will be unable to satisfy the 'register p' request and will be forced to put 'p' in addressable main memory. But it really is entirely up to the compiler whether to obey the 'register p' request; the program's structure does not make the request impossible to satisfy. Therefore there is no reason for the compiler to warn about this, any more than there would be if the compiler chose not to obey the 'register p' simply because it thought it could make more optimal use of the available registers. That GCC warns is understandable, in that a superficial reading of the code would not reveal the optimization opportunity; but the warning is nonetheless unnecessary, and the 'register' does provide useful optimization hinting. OK, long read, but the the conclusion is that "fixing the code to not declare the variable as register would be the correct thing to do" it *not* the correct thing to do. The correct thing to do is to ignore the warning, which is not possible if warnings are turned into errors. You also mentioned that "other compilers will issue a hard error for it." That sounds rather strange, and I wonder which compilers that might be; someone should file a bug report against them ;) ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 14:46 ` Nikos Chantziaras @ 2010-06-27 17:14 ` Harald van Dijk 2010-06-27 17:48 ` Nikos Chantziaras 0 siblings, 1 reply; 53+ messages in thread From: Harald van Dijk @ 2010-06-27 17:14 UTC (permalink / raw To: gentoo-dev On Sun, Jun 27, 2010 at 05:46:28PM +0300, Nikos Chantziaras wrote: > On 06/27/2010 03:23 PM, Harald van Dijk wrote: > > The compiler is not totally free to ignore the register keyword. > > Both the C and the C++ standards require that the compiler complain > > when taking the address of a register variable. Other compilers will > > issue a hard error for it. Fixing the code to not declare the > > variable as register would be the correct thing to do. > > No, it would not be the correct thing to do, because of the following. > (This is part of a discussion between me and someone quite smarter than > me, who explained the issue in detail.) > > [snip] That explanation seems to be written by someone who does not know that taking the address of a register variable is simply not allowed. > OK, long read, but the the conclusion is that "fixing the code to not > declare the variable as register would be the correct thing to do" it > *not* the correct thing to do. The correct thing to do is to ignore the > warning, which is not possible if warnings are turned into errors. And which is not possible if the warning is a hard error in the first place. > You also mentioned that "other compilers will issue a hard error for > it." That sounds rather strange, and I wonder which compilers that > might be; someone should file a bug report against them ;) Well, let's start with gcc; that's quite an important one for Gentoo... ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 17:14 ` Harald van Dijk @ 2010-06-27 17:48 ` Nikos Chantziaras 2010-06-27 18:10 ` dev-random 0 siblings, 1 reply; 53+ messages in thread From: Nikos Chantziaras @ 2010-06-27 17:48 UTC (permalink / raw To: gentoo-dev On 06/27/2010 08:14 PM, Harald van Dijk wrote: > On Sun, Jun 27, 2010 at 05:46:28PM +0300, Nikos Chantziaras wrote: >> On 06/27/2010 03:23 PM, Harald van Dijk wrote: >>> The compiler is not totally free to ignore the register keyword. >>> Both the C and the C++ standards require that the compiler complain >>> when taking the address of a register variable. Other compilers will >>> issue a hard error for it. Fixing the code to not declare the >>> variable as register would be the correct thing to do. >> >> No, it would not be the correct thing to do, because of the following. >> (This is part of a discussion between me and someone quite smarter than >> me, who explained the issue in detail.) >> >> [snip] > > That explanation seems to be written by someone who does not know that > taking the address of a register variable is simply not allowed. It is allowed. Section 7.1.1, Paragraphs 2 and 3 of the C++ standard: The register specifier [...] specifies that the named variable has automatic storage duration (3.7.3). A variable declared without a storage-class-specifier at block scope or declared as a function parameter has automatic storage duration by default. A register specifier is a hint to the implementation that the variable so declared will be heavily used. [ Note: the hint can be ignored and in most implementations it will be ignored if the address of the variable is taken. This use is deprecated (see D.4). — end note ] >> OK, long read, but the the conclusion is that "fixing the code to not >> declare the variable as register would be the correct thing to do" it >> *not* the correct thing to do. The correct thing to do is to ignore the >> warning, which is not possible if warnings are turned into errors. > > And which is not possible if the warning is a hard error in the first place. > >> You also mentioned that "other compilers will issue a hard error for >> it." That sounds rather strange, and I wonder which compilers that >> might be; someone should file a bug report against them ;) > > Well, let's start with gcc; that's quite an important one for Gentoo... That code compiles just fine. I don't know of any GCC version that issues an error for this rather than just a warning. ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 17:48 ` Nikos Chantziaras @ 2010-06-27 18:10 ` dev-random 2010-06-27 18:27 ` Nikos Chantziaras 0 siblings, 1 reply; 53+ messages in thread From: dev-random @ 2010-06-27 18:10 UTC (permalink / raw To: gentoo-dev On Sun, Jun 27, 2010 at 08:48:25PM +0300, Nikos Chantziaras wrote: > ... > It is allowed. Section 7.1.1, Paragraphs 2 and 3 of the C++ standard: > ... Not in C. ISO/IEC 9899:1999 (aka C99), section 6.7.1, note 101: > The implementation may treat any register declaration simply as an auto > declaration. However, whether or not addressable storage is actually > used, the address of any part of an object declared with storage-class > specifier register cannot be computed, either explicitly (by use of the > unary & operator as discussed in 6.5.3.2) or implicitly (by converting > an array name to a pointer as discussed in 6.3.2.1). Thus, the only > operator that can be applied to an array declared with storage-class > specifier register is sizeof. ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-27 18:10 ` dev-random @ 2010-06-27 18:27 ` Nikos Chantziaras 0 siblings, 0 replies; 53+ messages in thread From: Nikos Chantziaras @ 2010-06-27 18:27 UTC (permalink / raw To: gentoo-dev On 06/27/2010 09:10 PM, dev-random@mail.ru wrote: > On Sun, Jun 27, 2010 at 08:48:25PM +0300, Nikos Chantziaras wrote: >> ... >> It is allowed. Section 7.1.1, Paragraphs 2 and 3 of the C++ standard: >> ... > > Not in C. > ISO/IEC 9899:1999 (aka C99), section 6.7.1, note 101: >> The implementation may treat any register declaration simply as an auto >> declaration. However, whether or not addressable storage is actually >> used, the address of any part of an object declared with storage-class >> specifier register cannot be computed, either explicitly (by use of the >> unary& operator as discussed in 6.5.3.2) or implicitly (by converting >> an array name to a pointer as discussed in 6.3.2.1). Thus, the only >> operator that can be applied to an array declared with storage-class >> specifier register is sizeof. Wasn't aware of the difference here. But anyway, the warning is issued by GCC for C++ too, not just C. ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:57 ` Enrico Weigelt 2010-06-26 20:12 ` Ciaran McCreesh @ 2010-06-27 6:09 ` Sergei Trofimovich 2010-06-27 10:52 ` Enrico Weigelt 1 sibling, 1 reply; 53+ messages in thread From: Sergei Trofimovich @ 2010-06-27 6:09 UTC (permalink / raw To: gentoo-dev On Sat, 26 Jun 2010 21:57:33 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > > > #2 One point i don't agree is the "dont add -Werror" rule. actually, > > > i'm thinking of making -Wall and -Werror mandatory. if some > > > package doenst build fine, it's simply broken. period. > > > > Uhm. No. Certain compilers will give you warnings for f(g(a), g(b)) if > > you -Wall. > > Warn on what exactly ? Which compilers do that ? I suggest you to try latest available dev-lang/icc (11.1.072). This thing is really paranoid: remark #2259: non-pointer conversion from "int" to "unsigned char" may lose significant bits unsigned char BlinkerPhase = 0; ... BlinkerPhase = (BlinkerPhase + 1) & 3; remark #981: operands are evaluated in unspecified order (tons of them) return strcmp( left.c_str(), right.c_str() ) > 0; -- Sergei ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 6:09 ` [gentoo-dev] " Sergei Trofimovich @ 2010-06-27 10:52 ` Enrico Weigelt 2010-06-27 11:28 ` Richard Freeman 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 10:52 UTC (permalink / raw To: gentoo-dev * Sergei Trofimovich <slyfox@gentoo.org> schrieb: > I suggest you to try latest available dev-lang/icc (11.1.072). > This thing is really paranoid: > > remark #2259: non-pointer conversion from "int" to "unsigned char" may lose significant bits > unsigned char BlinkerPhase = 0; > ... > BlinkerPhase = (BlinkerPhase + 1) & 3; In this case, the compiler is wrong: it should convert to int and back to char here ;-p > remark #981: operands are evaluated in unspecified order (tons of them) > return strcmp( left.c_str(), right.c_str() ) > 0; I'm not sure if this really qualifies an warning, since - AFAIK - C spec never said, that there is an evaluation order for function parameters. cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 10:52 ` Enrico Weigelt @ 2010-06-27 11:28 ` Richard Freeman 0 siblings, 0 replies; 53+ messages in thread From: Richard Freeman @ 2010-06-27 11:28 UTC (permalink / raw To: gentoo-dev On 06/27/2010 06:52 AM, Enrico Weigelt wrote: >> remark #981: operands are evaluated in unspecified order (tons of them) >> return strcmp( left.c_str(), right.c_str() )> 0; > > I'm not sure if this really qualifies an warning, since - AFAIK - > C spec never said, that there is an evaluation order for > function parameters. > I could see how somebody might make that assumption (incorrectly), and get burned by this. However, creating local variables just to hold intermediate results so as to not embed them in function calls seems to be a lot of overhead - certainly in terms of readability, and I can't think of a situation where the compiler would have to do it on its own. I guess religiously doing this might make the code less likely to contain very subtle bugs, but perhaps it is a bit over the top for anybody who wouldn't be otherwise developing in ADA. Rich ^ permalink raw reply [flat|nested] 53+ messages in thread
* [gentoo-dev] Re: FYI: Rules for distro-friendly packages 2010-06-26 19:39 ` Enrico Weigelt 2010-06-26 19:50 ` Ciaran McCreesh @ 2010-06-26 19:57 ` Nikos Chantziaras 2010-06-27 8:14 ` [gentoo-dev] " Rémi Cardona 2 siblings, 0 replies; 53+ messages in thread From: Nikos Chantziaras @ 2010-06-26 19:57 UTC (permalink / raw To: gentoo-dev On 06/26/2010 10:39 PM, Enrico Weigelt wrote: > * Petteri Räty<betelgeuse@gentoo.org> schrieb: > >> There should be useful stuff here: >> http://video.fosdem.org/2010/devrooms/distributions/How_to_be_a_good_upstream.ogv > >[...[ > #2 One point i don't agree is the "dont add -Werror" rule. actually, > i'm thinking of making -Wall and -Werror mandatory. if some > package doenst build fine, it's simply broken. period. That's the most hilarious thing I've read in ages. xD ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-26 19:39 ` Enrico Weigelt 2010-06-26 19:50 ` Ciaran McCreesh 2010-06-26 19:57 ` [gentoo-dev] " Nikos Chantziaras @ 2010-06-27 8:14 ` Rémi Cardona 2010-06-27 11:02 ` Enrico Weigelt 2 siblings, 1 reply; 53+ messages in thread From: Rémi Cardona @ 2010-06-27 8:14 UTC (permalink / raw To: gentoo-dev Le 26/06/2010 21:39, Enrico Weigelt a écrit : > #2 One point i don't agree is the "dont add -Werror" rule. actually, > i'm thinking of making -Wall and -Werror mandatory. if some > package doenst build fine, it's simply broken. period. You're obviously new here... Just take a stroll through bugzilla to see how much we _fight_ against -Werror. Let's see why you obviously have not thought through this completely before writing this : We currently offer 11 different slots of GCC, 3 of gcc-apple, each with multiple versions, 3 versions of llvm-gcc, 2 versions of clang, 7 versions of icc, so in all 26 *major* versions. You do well know that each compiler prints out different warnings for the *same* code... We also offer 10 versions of glibc, 8 versions of uclibc, and 7 versions of klibc. Each version may have header bugs, so may trigger warnings for perfectly good code. And finally we offer 5 unmasked versions of binutils (newer ones even have a brand new linker - gold) and 5 versions of binutils-apple. Again, different tools, different warnings... If you want to make -Werror mandatory, you *MUST* test all combinations above as *THEY ARE ALL SUPPORTED*. Otherwise, packages will break for no good reason and users will hate us. -Werror is a perfectly fine *developer* feature. For example, Gnome autoconf macros enable it for development snapshots, but never ever enable it for stable releases. So please, if you want to write nonsense, don't write it in the name of Gentoo. Rémi PS, Diego (flameeyes) is already having enough issues with his tinderbox running *ONE* compiler/linker/libc combination... ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 8:14 ` [gentoo-dev] " Rémi Cardona @ 2010-06-27 11:02 ` Enrico Weigelt 2010-06-27 12:13 ` Patrick Lauer 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 11:02 UTC (permalink / raw To: gentoo-dev * Rémi Cardona <remi@gentoo.org> schrieb: > We currently offer 11 different slots of GCC, 3 of gcc-apple, each with > multiple versions, 3 versions of llvm-gcc, 2 versions of clang, 7 > versions of icc, so in all 26 *major* versions. You do well know that > each compiler prints out different warnings for the *same* code... hmm, perhaps I'll hack some little scripts which create a jail/container for each compiler version and triggers emerge within them. > We also offer 10 versions of glibc, 8 versions of uclibc, and 7 versions > of klibc. Each version may have header bugs, so may trigger warnings for > perfectly good code. Well, if there're header bugs, shouldn't they get fixed before these libs are stabelized ? ;-O > And finally we offer 5 unmasked versions of binutils (newer ones even > have a brand new linker - gold) and 5 versions of binutils-apple. Again, > different tools, different warnings... Okay, adds *10 to the test matrix. Still not yet an too complex problem (still linear complexity). > -Werror is a perfectly fine *developer* feature. For example, Gnome > autoconf macros enable it for development snapshots, but never ever > enable it for stable releases. Okay, aggreed. I've reworked my rule, now: "package build systems MUST NOT enable "-Wall -Werror" (unless explicitly asked), but developers SHOULD use them for their test builds" cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 11:02 ` Enrico Weigelt @ 2010-06-27 12:13 ` Patrick Lauer 2010-06-27 12:22 ` Enrico Weigelt 0 siblings, 1 reply; 53+ messages in thread From: Patrick Lauer @ 2010-06-27 12:13 UTC (permalink / raw To: gentoo-dev On 06/27/10 13:02, Enrico Weigelt wrote: [snip] >> We also offer 10 versions of glibc, 8 versions of uclibc, and 7 versions >> of klibc. Each version may have header bugs, so may trigger warnings for >> perfectly good code. > > Well, if there're header bugs, shouldn't they get fixed before these > libs are stabelized ? ;-O And there we have the thin line between actual bug and fuzzy specification. Sometimes things fail just because two people assumed something and thus the code disagrees in a really funny way. Or just the GNUisms that tend to leak in through glibc+gcc ... *shudder* >> And finally we offer 5 unmasked versions of binutils (newer ones even >> have a brand new linker - gold) and 5 versions of binutils-apple. Again, >> different tools, different warnings... > > Okay, adds *10 to the test matrix. Still not yet an too complex > problem (still linear complexity). So just to keep up with the current package update speed in gentoo you'd be saturating about a dozen quadcore machines. For amd64 only. And that's not even checking all reverse dependencies of every single update (which can easily push it up by another factor of 100) Unless you have a strategic supply of gold bars it won't be possible to check all permutations (and we haven't even started toggling useflags for fun!) >> -Werror is a perfectly fine *developer* feature. For example, Gnome >> autoconf macros enable it for development snapshots, but never ever >> enable it for stable releases. > > Okay, aggreed. I've reworked my rule, now: > > "package build systems MUST NOT enable "-Wall -Werror" (unless explicitly > asked), but developers SHOULD use them for their test builds" I'd say they can enable it, but SHOULD NOT If people want to run headfirst into a wall let them do it a few times, they'll learn ... ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 12:13 ` Patrick Lauer @ 2010-06-27 12:22 ` Enrico Weigelt 2010-06-27 12:33 ` Ciaran McCreesh 0 siblings, 1 reply; 53+ messages in thread From: Enrico Weigelt @ 2010-06-27 12:22 UTC (permalink / raw To: gentoo-dev * Patrick Lauer <patrick@gentoo.org> schrieb: > > Well, if there're header bugs, shouldn't they get fixed before these > > libs are stabelized ? ;-O > > And there we have the thin line between actual bug and fuzzy > specification. Sometimes things fail just because two people assumed > something and thus the code disagrees in a really funny way. > Or just the GNUisms that tend to leak in through glibc+gcc ... *shudder* hmm, do you have some concrete examples ? > > Okay, adds *10 to the test matrix. Still not yet an too complex > > problem (still linear complexity). > > So just to keep up with the current package update speed in gentoo you'd > be saturating about a dozen quadcore machines. For amd64 only. Well, I'll have to investigate further. Maybe it's time for a distributed build project: a generic container image, which gets distributed to dozens of machines and runs build tests coordinated by some server ... a bit like seti@home ;-) Enough CPU is available all around the world, just heavily distributed. cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 12:22 ` Enrico Weigelt @ 2010-06-27 12:33 ` Ciaran McCreesh 2010-06-27 16:54 ` Rémi Cardona 2010-06-28 10:26 ` Enrico Weigelt 0 siblings, 2 replies; 53+ messages in thread From: Ciaran McCreesh @ 2010-06-27 12:33 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 479 bytes --] On Sun, 27 Jun 2010 14:22:53 +0200 Enrico Weigelt <weigelt@metux.de> wrote: > Maybe it's time for a distributed build project: a generic container > image, which gets distributed to dozens of machines and runs build > tests coordinated by some server ... a bit like seti@home ;-) > > Enough CPU is available all around the world, just heavily > distributed. PHP and mplayer both have 100 USE flags. There's not enough CPU power in the world. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 12:33 ` Ciaran McCreesh @ 2010-06-27 16:54 ` Rémi Cardona 2010-06-28 10:26 ` Enrico Weigelt 1 sibling, 0 replies; 53+ messages in thread From: Rémi Cardona @ 2010-06-27 16:54 UTC (permalink / raw To: gentoo-dev Le 27/06/2010 14:33, Ciaran McCreesh a écrit : > On Sun, 27 Jun 2010 14:22:53 +0200 > Enrico Weigelt <weigelt@metux.de> wrote: >> Maybe it's time for a distributed build project: a generic container >> image, which gets distributed to dozens of machines and runs build >> tests coordinated by some server ... a bit like seti@home ;-) >> >> Enough CPU is available all around the world, just heavily >> distributed. > > PHP and mplayer both have 100 USE flags. There's not enough CPU power > in the world. > The *other* problem with -Werror is that the build will stop on the first warning, hiding all the others. Enrico, if you actually want to fix this, better capture the build.log of a *full* build, enabling all the warnings you could think of and then fix whatever makes sense. Cheers, Rémi ^ permalink raw reply [flat|nested] 53+ messages in thread
* Re: [gentoo-dev] FYI: Rules for distro-friendly packages 2010-06-27 12:33 ` Ciaran McCreesh 2010-06-27 16:54 ` Rémi Cardona @ 2010-06-28 10:26 ` Enrico Weigelt 1 sibling, 0 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-06-28 10:26 UTC (permalink / raw To: gentoo-dev * Ciaran McCreesh <ciaran.mccreesh@googlemail.com> schrieb: > PHP and mplayer both have 100 USE flags. There's not enough > CPU power in the world. We don't have to try *all* possible combinations, but only those differing in interfaces (eg. if some libfoo changes its exported interface on a userflag, the clients have to be built against that two versions). It involves some interface analysis and a bit of graph theory. Should be possible to do it incrementally. cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ --------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
[parent not found: <201006252338.51889.alan.mckinnon@gmail.com>]
* [gentoo-dev] Re: [gentoo-user] FYI: Rules for distro-friendly packages [not found] ` <201006252338.51889.alan.mckinnon@gmail.com> @ 2010-08-17 21:05 ` Enrico Weigelt 0 siblings, 0 replies; 53+ messages in thread From: Enrico Weigelt @ 2010-08-17 21:05 UTC (permalink / raw To: gentoo-dev * Alan McKinnon <alan.mckinnon@gmail.com> schrieb: > My biggest beef by far when packaging apps is automagic dependencies. > > e17 is full of them - if package A is present, the app will configure itself > to use it. Usually you cannot switch this kind of thing off even if you have > valid reasons to do so. That's one of the reasons I'm building everything by a sysroot'ed crosscompiler (when not using Gentoo ;-)). This way these things (normally) can't happen. > I want explicit --enable-<package> features in the ./configure step for > everything that might be optional. Because I often do have that lib on my > system and the app's usage of it is buggy, so I should be able to disable that > support. Can you live with the current formulation ? http://www.metux.de/index.php/de/component/content/article/57.html (see and of the text) cu -- ---------------------------------------------------------------------- Enrico Weigelt, metux IT service -- http://www.metux.de/ phone: +49 36207 519931 email: weigelt@metux.de mobile: +49 151 27565287 icq: 210169427 skype: nekrad666 ---------------------------------------------------------------------- Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme ---------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 53+ messages in thread
end of thread, other threads:[~2010-08-18 19:22 UTC | newest] Thread overview: 53+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-06-25 20:17 [gentoo-dev] FYI: Rules for distro-friendly packages Enrico Weigelt 2010-06-25 20:28 ` Alistair Bush 2010-06-26 18:56 ` Enrico Weigelt 2010-06-25 21:00 ` Krzysztof Pawlik 2010-06-26 18:51 ` Enrico Weigelt 2010-06-26 19:21 ` Krzysztof Pawlik 2010-06-26 19:46 ` Enrico Weigelt 2010-06-26 19:59 ` Ciaran McCreesh 2010-06-26 20:08 ` Krzysztof Pawlik 2010-06-26 20:10 ` Enrico Weigelt 2010-06-26 20:09 ` Enrico Weigelt 2010-06-26 20:18 ` Ciaran McCreesh 2010-06-27 10:34 ` Enrico Weigelt 2010-06-27 10:45 ` Ciaran McCreesh 2010-06-27 11:08 ` Enrico Weigelt 2010-06-27 11:15 ` Ciaran McCreesh 2010-06-27 18:33 ` Brian Harring 2010-06-27 18:48 ` Patrick Lauer 2010-08-17 17:04 ` Enrico Weigelt 2010-08-18 4:15 ` Jacob Godserv 2010-08-18 19:10 ` Enrico Weigelt 2010-06-26 20:33 ` Nirbheek Chauhan 2010-06-27 10:35 ` Enrico Weigelt 2010-06-27 20:46 ` Nirbheek Chauhan 2010-06-27 5:48 ` Hans de Graaff 2010-06-25 22:24 ` Petteri Räty 2010-06-26 19:39 ` Enrico Weigelt 2010-06-26 19:50 ` Ciaran McCreesh 2010-06-26 19:57 ` Enrico Weigelt 2010-06-26 20:12 ` Ciaran McCreesh 2010-06-27 5:52 ` [gentoo-dev] " Nikos Chantziaras 2010-06-27 10:47 ` Enrico Weigelt 2010-06-27 11:56 ` Nikos Chantziaras 2010-06-27 12:23 ` Harald van Dijk 2010-06-27 12:25 ` Enrico Weigelt 2010-06-27 12:35 ` Ciaran McCreesh 2010-06-27 14:46 ` Nikos Chantziaras 2010-06-27 17:14 ` Harald van Dijk 2010-06-27 17:48 ` Nikos Chantziaras 2010-06-27 18:10 ` dev-random 2010-06-27 18:27 ` Nikos Chantziaras 2010-06-27 6:09 ` [gentoo-dev] " Sergei Trofimovich 2010-06-27 10:52 ` Enrico Weigelt 2010-06-27 11:28 ` Richard Freeman 2010-06-26 19:57 ` [gentoo-dev] " Nikos Chantziaras 2010-06-27 8:14 ` [gentoo-dev] " Rémi Cardona 2010-06-27 11:02 ` Enrico Weigelt 2010-06-27 12:13 ` Patrick Lauer 2010-06-27 12:22 ` Enrico Weigelt 2010-06-27 12:33 ` Ciaran McCreesh 2010-06-27 16:54 ` Rémi Cardona 2010-06-28 10:26 ` Enrico Weigelt [not found] ` <201006252338.51889.alan.mckinnon@gmail.com> 2010-08-17 21:05 ` [gentoo-dev] Re: [gentoo-user] " Enrico Weigelt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox