Date: Mon, 29 Jul 2013 15:42:40 +0200 From: Baptiste Daroussin <bapt@FreeBSD.org> To: perl@FreeBSD.org Subject: [HEADSUP] Rework of perl infrastructure Message-ID: <20130729134240.GS98542@ithaqua.etoilebsd.net>
next in thread | raw e-mail | index | archive | help
--nccO0ldXW0cuDU6a Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, Andrej and I have been working together on reworking the perl infrastructure in the ports tree. What were we trying to solve? 1. each time perl is depend on at build time, perl is also appended to extract and patch dependency phase. Most of the time uselessly. Fixing make the dependency correct and gives us a 5% boost one package building order calculation on the clusters. 2. so far all perl requires writing to make.conf which is very bad when perl has to be setup on a box where / is readonly (the /usr/bin/perl symlink is yet another problem for later) 3. nothing was providing a framwork to properly handle manpages in the perl path. 4. bsd.perl.mk was included anyway, slowing down the infrastructure when not needed and making every single change to bsd.perl.mk inpacting the whole ports tree. After some discussion wether we should create a new bsd.perlng.mk of a USES we decided to go to the Uses infrastructure, but a special way. the USES infrastructure allows us to only load on demand the perl mk, which is good and fixes point 4 Problem ise perl5.mk can handle complex arguments which would have been ugly via USES: USES= perl5:5.14+:patch:configure erk So we decided to reuse USE_PERL5 and only USE_PERL5 the result it the following Now each time a port depend on perl it will load the perl framework: USES= perl5 If nothing more it added perl will become a build and run dependency. If we want it to only be a run dependency: USE_PERL5= run if we want to specify a version: USE_PERL5= 5.14+ run if we want to only have perl as a patch dependency: USE_PERL5= patch If you have manpages that goes to /usr/local/lib/perl5/5.14/man/man3/ Just define: P5MAN3= myman.3 A wiki page has been created to help the migration: https://wiki.freebsd.org/Ports/Uses=perl5 Diff is here http://people.freebsd.org/~bapt/newperl.diff if USES=perl5 is defined than the old bsd.perl.mk is no read anymore. Perl version can now be detected from /usr/local/etc/perl5_version (which will be added later to the perl packages themself) or by calling perl directly, it is not required anymore to modify /etc/make.conf regards, Bapt --nccO0ldXW0cuDU6a Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlH2cVAACgkQ8kTtMUmk6ExCZQCffeQr5O93FWvZ0S464W+XwKti 3EsAoIxp7rL42eF6K0M8ikb/9X7RDK7+ =7UEH -----END PGP SIGNATURE----- --nccO0ldXW0cuDU6a--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130729134240.GS98542>