Re: Perl packaging guidelines
On Mon, Jul 08, 2013 at 02:57:16PM +0200, Ralf Corsepius wrote: On 07/08/2013 02:25 PM, Petr Šabata wrote: Dear list, Following the recent thread on the Packaging list [1], and since those questions arise fairly often during reviews, I think it'd be a good idea to discuss some possible updates to our packaging guidelines. We all have different opinions on Perl packaging but I'd like to find some common ground and set some standard how to do things to unify our style. I think there is only one group of perl packagers whose opinion is different from the rest ;) First, the dependencies, both build- and run-time. Personally I like to list every module which is actually used since this means the package only fails to build when there's an actual issue, not just a change in the dependency chain. This sentence is not precisely enough formulated to be able to comment. I also think not listing some modules only because it's unlikely they'd get removed from core makes packaging harder and more confusing, rather than the opposite. I vehemently disagree. When perl modules move away, they break building - I.e. these can easily be re-added at any time, when necessary. Yes, that happens when you don't explicitly list them. Conversely, adding everything, only meas to reflect the dependency state which was valid at one single point in time. As the work-load and effect related to tracking theses is significant, pn the longer run, these dependencies state will gradually and silently diverge from the actual dependencies. I.e. all this does is to add redundency and dependency bloat. = lower packaging quality. Why is everything quoted when I actually was talking about everything? The single point of time you're referring to is a stable package state and the same applies to Version, for example. That too changes when the package is updated. I agree there might be bloat if the packager is careless and doesn't maintain the package properly but that's not really different from the current situation when some people just add BRs if the build fails and that's all. Second, the %{__perl} macro. What are the benefits of using this (subjectively) ugly macro compared to simple 'perl'? The benefits will show when a) the path to perl should change. b) the name of the perl program will change. In both cases, all packages using a hard coded /usr/bin/perl will break. Plain perl contradicts the principles of deterministic builds: Simply install a script named perl somewhere on your $PATH and run rpmbuild with a spec using plain perl. This is true. However the same argument could be used for any invoked tool, such as 'mv', 'rm' et al., while current Packaging Guidelines discourage using macros in those situations (and we're not in the same situation as python). Third, the MODULE_COMPAT macro. Currently our guidelines enforce the following form: perl(:MODULE_COMPAT_%(eval `%{__perl} -V:version`; echo $version)) I propose the following forms are also accepted (the latter two in case we accept simple 'perl' too): perl(:MODULE_COMPAT_%(eval $(%{__perl} -V:version); echo $version)) perl(:MODULE_COMPAT_%(eval `perl -V:version`; echo $version)) perl(:MODULE_COMPAT_%(eval $(perl -V:version); echo $version)) That's topic 2) from your list. Nope, this was mainly about using $() instead of ``. Fourth, ExtUtils::MakeMaker vs Module::Build. Module::Build is currently being deprecated and removed from core, ExtUtils::MakeMaker becoming, once again, the preferred way. Our guidelines should be updated to reflect that. Sigh, you can not remove any perl module from Fedora, which is still in use. I.e. no matter how much you want to remove it, no matter how much upstream wants to see it removed/deprecated, these modules need to stay in Fedora at least until no package in Fedora uses it. I didn't say anything about removing Module::Build from Fedora. Our guidelines instruct packagers to prefer Module::Build over ExtUtils::MakeMaker, which conflicts with what upstream recommends. The only that needs changing is the wording. And fifth, installation paths. I suppose the guidelines should explicitly state the vendor paths should be used. That's all I can think of now. Please, do share your views. Also, what would you like to change or improve? IMO, that's a completely different topic, which is beyond the scope of this threat. Ralf The last one is a point like any other; a suggestion for possible future guidelines. Petr pgpZepzXUnjEF.pgp Description: PGP signature -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
Re: Perl packaging guidelines
On Mon, Jul 08, 2013 at 03:28:52PM +0200, Jan Pazdziora wrote: On Mon, Jul 08, 2013 at 02:25:24PM +0200, Petr Šabata wrote: First, the dependencies, both build- and run-time. Personally I like to list every module which is actually used since this means the package only fails to build when there's an actual issue, not just a change in the dependency chain. But that also means that you'll be unnecessarily accumulating cruft -- if things build, noone will check if with the next rebase, all the listed BuildRequires are actually valid. We're in that situation already. See the response to Ralf's post. Second, the %{__perl} macro. What are the benefits of using this (subjectively) ugly macro compared to simple 'perl'? The only case in which I find it Isn't it used for SCL, for example? I honestly have no idea. Could someone with some SCL experience comment on this? Fourth, ExtUtils::MakeMaker vs Module::Build. Module::Build is currently being deprecated and removed from core, ExtUtils::MakeMaker becoming, once again, the preferred way. Our guidelines should be updated to reflect that. So it's basically about putting the text from https://fedoraproject.org/wiki/Perl/Tips?rd=PackagingTips/Perl#Makefile.PL_vs_Build.PL to https://fedoraproject.org/wiki/Packaging:Perl#Makefile.PL_vs_Build.PL as well, right? Yes, pretty much so. Petr pgpaBablHtG3Z.pgp Description: PGP signature -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[Bug 982293] Build dependency cycle: perl-HTML-TreeBuilder-LibXML and perl-Web-Scraper
https://bugzilla.redhat.com/show_bug.cgi?id=982293 --- Comment #1 from Emmanuel Seyman emman...@seyman.fr --- (In reply to Paul Howarth from comment #0) It looks to me that the best option is for perl-HTML-TreeBuilder-LibXML not to build-require perl-Web-Scraper when bootstrapping, as Web::Scraper is only needed for an optional test. That definitely sounds like the way to go. I'm at the Libre Software Meeting in Bruxelles so I'll probably won't get to it before next week. If a provenpackager can do it before that, please don't hesitate. -- You are receiving this mail because: You are on the CC list for the bug. Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=zaC6lYYNjsa=cc_unsubscribe -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[perl-HTML-TreeBuilder-LibXML] Don't BR: perl(Web::Scraper) when bootstrapping
commit 88f95f08f8478bae65b58b01c2186fb074162f27 Author: Paul Howarth p...@city-fan.org Date: Tue Jul 9 11:48:52 2013 +0100 Don't BR: perl(Web::Scraper) when bootstrapping perl-Web-Scraper requires HTML::TreeBuilder::LibXML so don't pull in this optional test requirement when bootstrapping (#982293) perl-HTML-TreeBuilder-LibXML.spec | 13 +++-- 1 files changed, 11 insertions(+), 2 deletions(-) --- diff --git a/perl-HTML-TreeBuilder-LibXML.spec b/perl-HTML-TreeBuilder-LibXML.spec index ef0025c..93703d2 100644 --- a/perl-HTML-TreeBuilder-LibXML.spec +++ b/perl-HTML-TreeBuilder-LibXML.spec @@ -1,6 +1,6 @@ Name: perl-HTML-TreeBuilder-LibXML Version:0.23 -Release:1%{?dist} +Release:2%{?dist} Summary:HTML::TreeBuilder and XPath compatible interface with libxml License:GPL+ or Artistic Group: Development/Libraries @@ -15,9 +15,14 @@ BuildRequires: perl(inc::Module::Install) BuildRequires: perl(HTML::TreeBuilder::XPath) = 0.14 BuildRequires: perl(Test::Exception) BuildRequires: perl(Test::More) = 0.98 -BuildRequires: perl(Web::Scraper) BuildRequires: perl(XML::LibXML) = 1.7 +# perl-Web-Scraper requires HTML::TreeBuilder::LibXML so don't pull +# in this optional test requirement when bootstrapping (#982293) +%if 0%{!?perl_bootstrap:1} +BuildRequires: perl(Web::Scraper) +%endif + Requires: perl(:MODULE_COMPAT_%(eval `%{__perl} -V:version`; echo $version)) # not picked up by rpm deptracker Requires: perl(HTML::TreeBuilder::XPath) = 0.14 @@ -52,6 +57,10 @@ HTML::TreeBuilder::LibXML is drop-in-replacement for HTML::TreeBuilder::XPath. %{_mandir}/man3/* %changelog +* Tue Jul 9 2013 Paul Howarth p...@city-fan.org - 0.23-2 +- perl-Web-Scraper requires HTML::TreeBuilder::LibXML so don't pull + in this optional test requirement when bootstrapping (#982293) + * Sun May 19 2013 Emmanuel Seyman emman...@seyman.fr - 0.23-1 - Update to 0.23 -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[perl-HTML-TreeBuilder-LibXML] Created tag perl-HTML-TreeBuilder-LibXML-0.23-2.fc20
The lightweight tag 'perl-HTML-TreeBuilder-LibXML-0.23-2.fc20' was created pointing to: 88f95f0... Don't BR: perl(Web::Scraper) when bootstrapping -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[Bug 982293] Build dependency cycle: perl-HTML-TreeBuilder-LibXML and perl-Web-Scraper
https://bugzilla.redhat.com/show_bug.cgi?id=982293 Paul Howarth p...@city-fan.org changed: What|Removed |Added Status|NEW |CLOSED Fixed In Version||perl-HTML-TreeBuilder-LibXM ||L-0.23-2.fc20 Resolution|--- |RAWHIDE Last Closed||2013-07-09 07:00:47 --- Comment #2 from Paul Howarth p...@city-fan.org --- Fixed in perl-HTML-TreeBuilder-LibXML-0.23-2.fc20 -- You are receiving this mail because: You are on the CC list for the bug. Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=zyvtL7bLRCa=cc_unsubscribe -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
File Try-Tiny-0.15.tar.gz uploaded to lookaside cache by pghmcfc
A file has been added to the lookaside cache for perl-Try-Tiny: d712acd504203b2ecfb205e985e60de5 Try-Tiny-0.15.tar.gz -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[perl-Try-Tiny] Update to 0.15
commit 1236c26ed0d747b70e3356201e902924a957657a Author: Paul Howarth p...@city-fan.org Date: Tue Jul 9 12:07:54 2013 +0100 Update to 0.15 - New upstream release 0.15 - Optionally use Sub::Name to name the try/catch/finally blocks, if available - BR:/R: perl(Sub::Name) - Drop obsoletes/provides for old -tests subpackage perl-Try-Tiny.spec | 15 +-- sources|2 +- 2 files changed, 10 insertions(+), 7 deletions(-) --- diff --git a/perl-Try-Tiny.spec b/perl-Try-Tiny.spec index 16cee73..6a9ea14 100644 --- a/perl-Try-Tiny.spec +++ b/perl-Try-Tiny.spec @@ -1,6 +1,6 @@ Name: perl-Try-Tiny Summary: Minimal try/catch with proper localization of $@ -Version: 0.14 +Version: 0.15 Release: 1%{?dist} License: MIT Group: Development/Libraries @@ -15,6 +15,7 @@ BuildRequires:perl(base) BuildRequires: perl(Carp) BuildRequires: perl(constant) BuildRequires: perl(Exporter) +BuildRequires: perl(Sub::Name) # Test Suite BuildRequires: perl(File::Find) BuildRequires: perl(File::Temp) @@ -27,11 +28,7 @@ BuildRequires: perl(Test::Pod) = 1.41 BuildRequires: perl(Test::Pod::Coverage) = 1.08 # Runtime Requires: perl(:MODULE_COMPAT_%(eval `perl -V:version`; echo $version)) - -# obsolete/provide old tests subpackage -# can be removed during F19 development cycle -Obsoletes: %{name}-tests 0.11-3 -Provides: %{name}-tests = %{version}-%{release} +Requires: perl(Sub::Name) %description This module provides bare bones try/catch statements that are designed to @@ -70,6 +67,12 @@ rm -rf %{buildroot} %{_mandir}/man3/Try::Tiny.3pm* %changelog +* Tue Jul 9 2013 Paul Howarth p...@city-fan.org - 0.15-1 +- Update to 0.15 + - Optionally use Sub::Name to name the try/catch/finally blocks, if available +- BR:/R: perl(Sub::Name) +- Drop obsoletes/provides for old -tests subpackage + * Sat Jul 6 2013 Paul Howarth p...@city-fan.org - 0.14-1 - Update to 0.14 - Also throw an exception for catch/finally in scalar context (CPAN RT#81070) diff --git a/sources b/sources index f44b9df..6b89116 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fc4951a0bd6f9b6d2b0420dda14c4ac2 Try-Tiny-0.14.tar.gz +d712acd504203b2ecfb205e985e60de5 Try-Tiny-0.15.tar.gz -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[perl-Try-Tiny] Created tag perl-Try-Tiny-0.15-1.fc20
The lightweight tag 'perl-Try-Tiny-0.15-1.fc20' was created pointing to: 1236c26... Update to 0.15 -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
Broken dependencies: perl-PDL
perl-PDL has broken dependencies in the rawhide tree: On x86_64: perl-PDL-2.4.10-6.fc19.x86_64 requires libgd.so.2()(64bit) On i386: perl-PDL-2.4.10-6.fc19.i686 requires libgd.so.2 Please resolve this as soon as possible. -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
Broken dependencies: perl-Bio-ASN1-EntrezGene
perl-Bio-ASN1-EntrezGene has broken dependencies in the rawhide tree: On x86_64: perl-Bio-ASN1-EntrezGene-1.091-17.fc19.noarch requires perl(Bio::Index::AbstractSeq) On i386: perl-Bio-ASN1-EntrezGene-1.091-17.fc19.noarch requires perl(Bio::Index::AbstractSeq) Please resolve this as soon as possible. -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
Broken dependencies: perl-Bio-SamTools
perl-Bio-SamTools has broken dependencies in the rawhide tree: On x86_64: perl-Bio-SamTools-1.35-2.fc19.x86_64 requires perl(Bio::SeqFeature::Lite) perl-Bio-SamTools-1.35-2.fc19.x86_64 requires perl(Bio::PrimarySeq) On i386: perl-Bio-SamTools-1.35-2.fc19.i686 requires perl(Bio::SeqFeature::Lite) perl-Bio-SamTools-1.35-2.fc19.i686 requires perl(Bio::PrimarySeq) Please resolve this as soon as possible. -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[perl-Module-Build-Tiny] Created tag perl-Module-Build-Tiny-0.024-1.fc18
The lightweight tag 'perl-Module-Build-Tiny-0.024-1.fc18' was created pointing to: 3d58630... Update to 0.024 -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel
[perl-Module-Build-Tiny] Created tag perl-Module-Build-Tiny-0.024-1.fc19
The lightweight tag 'perl-Module-Build-Tiny-0.024-1.fc19' was created pointing to: 3d58630... Update to 0.024 -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel