diff options
Diffstat (limited to 'zarb-ml/mageia-sysadm/2011-November/004075.html')
-rw-r--r-- | zarb-ml/mageia-sysadm/2011-November/004075.html | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/zarb-ml/mageia-sysadm/2011-November/004075.html b/zarb-ml/mageia-sysadm/2011-November/004075.html new file mode 100644 index 000000000..a1f339046 --- /dev/null +++ b/zarb-ml/mageia-sysadm/2011-November/004075.html @@ -0,0 +1,199 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> + <HEAD> + <TITLE> [Mageia-sysadm] possibility to add a package in basesystem-minimal? (long) + </TITLE> + <LINK REL="Index" HREF="index.html" > + <LINK REL="made" HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20possibility%20to%20add%20a%20package%20in%20basesystem-minimal%3F%0A%09%28long%29&In-Reply-To=%3C20111109114138.GA27215%40mongueurs.net%3E"> + <META NAME="robots" CONTENT="index,nofollow"> + <META http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <LINK REL="Previous" HREF="004085.html"> + <LINK REL="Next" HREF="004076.html"> + </HEAD> + <BODY BGCOLOR="#ffffff"> + <H1>[Mageia-sysadm] possibility to add a package in basesystem-minimal? (long)</H1> + <B>Jerome Quelin</B> + <A HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20possibility%20to%20add%20a%20package%20in%20basesystem-minimal%3F%0A%09%28long%29&In-Reply-To=%3C20111109114138.GA27215%40mongueurs.net%3E" + TITLE="[Mageia-sysadm] possibility to add a package in basesystem-minimal? (long)">jquelin at gmail.com + </A><BR> + <I>Wed Nov 9 12:41:38 CET 2011</I> + <P><UL> + <LI>Previous message: <A HREF="004085.html">[Mageia-sysadm] Unable to subscribe to vger.kernel.org lists with mageia alias +</A></li> + <LI>Next message: <A HREF="004076.html">[Mageia-sysadm] possibility to add a package in basesystem-minimal? (long) +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#4075">[ date ]</a> + <a href="thread.html#4075">[ thread ]</a> + <a href="subject.html#4075">[ subject ]</a> + <a href="author.html#4075">[ author ]</a> + </LI> + </UL> + <HR> +<!--beginarticle--> +<PRE>hi, + +--------------------------------------------------------------------- +following is quite long, you can skip till the question at the end of +this mail if you don't want the full background +--------------------------------------------------------------------- + + +back in time, rpm was extracting automatically perl module requirements +with a (horrible) script trying [0] to parse the shipped perl files to +find dependencies. + +this was not good: when i took ownership of lots of perl modules, my +scripts or the build on build-system were often failing because of the +wrong runtime requirements. + +perl community was also fighting this problem, and used some meta files +shipped with the distributions, stating different things such as the +requirements for the dist. this file is generated by the distribution +author. + +since most perl dists were turning to this scheme [1], i wanted to take +advantage of this scheme in perl module rpms. therefore i wrote +perl.req-from-meta which extracts the runtime perl requirements from +META.yml or META.json if they are present. + +of course, i had to update cpanplus::dist::mageia to automatically ship +META.* files in %doc, and "magpie fix" is now forcing the shipping of +META files in spec files updated (that is, all packages that are updated). + +however, perl community found that it's not the ultimate answer. some +perl distributions are indeed having some optional requirements, or some +required dependencies depending on their environment. + +eg, a dist may require Win32::API if running on windows, but not on +other platforms. or some dist may be built by its author on OSX, and +thus generated META file lists some OSX specific requirements which do +not apply on other platforms [2]. other examples abund, even if most of +the dists aren't impacted. + +therefore, a solution was found: when configuring the perl distribution, +before building, testing and installing it, a new file is generated: +MYMETA.yml / MYMETA.json, which gives the perl dist prerequisites for +the *current* platform. this file is now used in priority to META.yml / +META.json by tools such as cpan / cpanp / cpanm. + +and i'd like to do the same for mageia, once again. since the MYMETA +files are using the same schema than META files, the perl.req-from-meta +script is working fine with them. i also updated rpm-mageia-setup to use +MYMETA files in priority if they are shipped. [3] + +but [4] the problem is that MYMETA are not always generated. "how come?" +will you say, "you said earlier that they are generated at configure +time!". well, in fact, they are generated only when the dist is +configured with ExtUtils::MakeMaker >= 6.57_07 [5] and currently +perl-base is providing the following [6]: + + perl(ExtUtils::MakeMaker) = 6.570_500 + +(that's 6.57_05 before conversion by %perl_convert_version) + +some modules buildrequires a more recent ExtUtils::MakeMaker, and +therefore perl-ExtUtils-MakeMaker (shipping version 6.62) is installed. +but for all the modules which do not do fancy tricks in configure, no +MYMETA.yml is generated. :-( + +therefore, i cannot blindly ship MYMETA.yml in %doc [7], even if they +are generated on my system: the build system will simply not generate +them and the build will fail, stating that MYMETA files are not found. + + +--------------------------------------------------------------------- +end of background / now to the question +--------------------------------------------------------------------- + + +to fix this problem, i can see the following solutions: + +** 1. patch our perl to provide a more recent EUMM + +this is a no-go from my side. even the perl5 porters aren't updating the +bundled modules anymore [8], and i don't want to go down that road. so i +veto this solution with my perl-the-package maintainer hat. + + +** 2. update the buildrequires of all perl modules to require a more + recent EUMM + +this is a solution that's quite easy to do on my side: i just need to +update magpie to buildrequire a more recent EUMM if it's using a +makefile.PL and that no specific EUMM version is wanted. future perls +(5.16 and onward) will likely ship an updated EUMM, and therefore i'll +be able to remove this specific requirement in the spec files. but i'm +wondering if that's not too much, given that it'll need ~1500 [9] +modules to be updated. and yes, the goal is to have a standard solution +for all modules, not only the problematic ones. + + +** 3. do nothing, and just deal with the problems manually + +this is the solution i adopted till now. but i bump in more and more of +those exceptions, and this is a burden for me. mageia ships more than +2500 perl modules, and usually i don't have to really dwelve in the +details of their updates. but each exception is taking some time from my +side to deal with, and i fear that the number of problems will just +continue to rise. so i'm wanting to quit using this "solution", and find +a real one. almost as important, it means that finding a real solution +means we are following cpan evolution step by step, and i think it's a +Good Thing (tm). + + +** 4. update basesystem-minimal to ship perl-ExtUtils-MakeMaker + +this way, no need to add a buildrequires for the modules. they all get +the new build tool, and therefore will generate the MYMETA files. + + +** 5. other solutions? + + +===> what do you say? + + +thanks for reading this far, +jérôme + +[0] and failing miserably quite often +[1] which is now mainstream - i don't know of a recent perl dist not + a shipping META.yml or META.json file +[2] this is the case of perl-Sys-Info +[3] i've updated magpie to use MYMETA for generating buildrequires: but + that's another story +[4] there is always a but +[5] or Module::Build since a long time, but lots of perl dists still use + a Makefile.PL (and this won't slow down given the mere existance of + Module::Install - sigh) +[6] this comes from the ExtUtils::MakeMaker bundled with perl. +[7] both in cpanplus::dist::mageia and "magpie fix" +[8] except in the case of a security bug +[9] around half the perl modules existing in mageia +</PRE> + + + + + +<!--endarticle--> + <HR> + <P><UL> + <!--threads--> + <LI>Previous message: <A HREF="004085.html">[Mageia-sysadm] Unable to subscribe to vger.kernel.org lists with mageia alias +</A></li> + <LI>Next message: <A HREF="004076.html">[Mageia-sysadm] possibility to add a package in basesystem-minimal? (long) +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#4075">[ date ]</a> + <a href="thread.html#4075">[ thread ]</a> + <a href="subject.html#4075">[ subject ]</a> + <a href="author.html#4075">[ author ]</a> + </LI> + </UL> + +<hr> +<a href="https://www.mageia.org/mailman/listinfo/mageia-sysadm">More information about the Mageia-sysadm +mailing list</a><br> +</body></html> |