summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-sysadm/2011-November/004075.html
diff options
context:
space:
mode:
Diffstat (limited to 'zarb-ml/mageia-sysadm/2011-November/004075.html')
-rw-r--r--zarb-ml/mageia-sysadm/2011-November/004075.html199
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 &quot;magpie fix&quot; 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. &quot;how come?&quot;
+will you say, &quot;you said earlier that they are generated at configure
+time!&quot;. well, in fact, they are generated only when the dist is
+configured with ExtUtils::MakeMaker &gt;= 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 &quot;solution&quot;, 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?
+
+
+===&gt; what do you say?
+
+
+thanks for reading this far,
+j&#233;r&#244;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 &quot;magpie fix&quot;
+[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>