Gentoo Archives: gentoo-commits

From: Kent Fredric <kentnl@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/perl/, profiles/
Date: Sun, 10 Sep 2017 18:01:52
Message-Id: 1505066496.845c25f019b0051d240e06e827708115f5f98f9e.kentnl@gentoo
1 commit: 845c25f019b0051d240e06e827708115f5f98f9e
2 Author: Kent Fredric <kentnl <AT> gentoo <DOT> org>
3 AuthorDate: Sun Sep 10 17:27:57 2017 +0000
4 Commit: Kent Fredric <kentnl <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 10 18:01:36 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=845c25f0
7
8 dev-lang/perl: Bump to 5.24.3_rc1 (pmasked)
9
10 Package-Manager: Portage-2.3.6, Repoman-2.3.2
11
12 dev-lang/perl/Manifest | 2 +
13 dev-lang/perl/perl-5.24.3_rc1.ebuild | 564 +++++++++++++++++++++++++++++++++++
14 profiles/package.mask | 6 +
15 3 files changed, 572 insertions(+)
16
17 diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
18 index c3ef3a8e931..5e5cb6e0146 100644
19 --- a/dev-lang/perl/Manifest
20 +++ b/dev-lang/perl/Manifest
21 @@ -2,6 +2,8 @@ DIST perl-5.24.1-patches-3.tar.xz 24012 SHA256 b8f8164c1fb34c5db82d9f16c5330cdb2
22 DIST perl-5.24.1.tar.xz 11569284 SHA256 03a77bac4505c270f1890ece75afc7d4b555090b41aa41ea478747e23b2afb3f SHA512 9429608eb4d7f6a01b5a7df8601e0757acdf3e6d5af960d5cf710f8e4fd20ffe082bb42eedc2cd079d5173e48cf5574d55477e1c51f7f53b32fb5d1b89f6db8c WHIRLPOOL 26d401f03af54ba61ea8e761f483f3d374737660fa4beaa3bd77951c0f920f88f9e47f327754c32d4c3c49557882a2a531b9eebef420ad6155d62423f7753406
23 DIST perl-5.24.2-patches-1.tar.xz 24012 SHA256 51b1dd61f4907da053558c6aa80de303230ee3348b6c4e7d6b149ee0a7c3e54e SHA512 3576dbce373a17de2de436b6bd33378c9bca899dab71b7448e3c2d1df5ed3d63ea19ad0e0406526b9a75b416585e0da0c32e653e6f76474fbcd66672094d7aaf WHIRLPOOL 2668b0d4ea7c0b4bbddc1c26c2187dc4d9b19d449bde91b522a7f500bcdec2d25ec59110001b9560fc610f9deacdfd8bcbdb2ce979e5ad09c9055c1f78820902
24 DIST perl-5.24.2.tar.xz 11570420 SHA256 b25dd465ef32edf853078eb540b26243db0a3b5e1b1cc84393703d9564be67c0 SHA512 d7bb66e23064aba426fe3f7264d065f0926957675b0bba51fe2ddb623561ffcdb7657d9f27d78920a583a21bdee01a7ace37aae6d42c02d32403bd1347ad8df8 WHIRLPOOL 51e2fd19bff64c6d7bd8f40372089d14cc783c3ae17d6788361b3363a497a8e44688e490422b6c327b886eddf2ff0f2aa261c4c0aa76ecfac08ceb62f8d344d4
25 +DIST perl-5.24.3-RC1.tar.xz 11583528 SHA256 9f73329273fe9fb5c854d6764ccb160a23e5de747cee042e01bbadafc8f5dda6 SHA512 fa69ada4dc4050bfbfb4946380936a7719e52dd2eff196db3f4d0819c0abda2446b898f50030545f7b06adf16dbc2819ef944a271e0016691ab7ec671e004ff9 WHIRLPOOL 8da84fe6a245d766047236ceabb7646dcb7778736620d8c3d83a1e8e71b520d2735c5ff36ca9f2d165358de500394a9000190cd36ececa356c1b2be5e4d1c8a9
26 +DIST perl-5.24.3-patches-1.tar.xz 24016 SHA256 8dc42e629d50ea7193c890cfcd85abaed32db74507b8862c060bf93f5ea82ef4 SHA512 5feddaa14b66c6c5f926a3bee96e2849d829141ee7a6d74cfec68128785fcb8de38e13cfd229c420a9fe6c3a1db4a4bdd52a91aa72726233570f61c73d31f9fd WHIRLPOOL ffe2e5a530683a36d6d546eff0ac13b4b5014365574abe0cc90be9f73219ec3f5bcd3a9c3fa9a5744682d293e9f3a40e9b0bff0a389cf60d00b2b7f7f8fd32f2
27 DIST perl-5.25.11-patches-1.tar.xz 16776 SHA256 43dda2f9a20b44442d25caa733ba94acb0c48b26e8201b3f8fa3d2be24a6667e SHA512 ee340824746d3b626b41c76bfa901543869fb9560ef75ff6d338df017e5528e33c344a91ce7cbe9f2fa9e813bf61bbe9eb290433baceb05b832110e746ce9036 WHIRLPOOL 98681898039e1bcc3e9a33498a8b7b8b3f24cc4c49396b33dfd04a853c329323ad47081d64da61ba2880fbd3505e10ffe90367dffa8005bda86c4f114b283934
28 DIST perl-5.26.0.tar.xz 11961692 SHA256 9bf2e3d0d72aad77865c3bdbc20d3b576d769c5c255c4ceb30fdb9335266bf55 SHA512 cd5af6495fe4c46c0d5d0f51d4015b54daa221f08a5fb48899c247cb57c2ba85cffb97e6d258d0f931504828bb23e175d899f311c73805d924d1042058ac42e4 WHIRLPOOL 9b87a1fd5371871c747351440e40f5d1345b8bf6ac5810b9ef239e58947fe0c243583fdac6888f0450bdca437b6031cc5281a4e045d5014642ef2dc671e24e47
29 DIST perl-5.27.1-patches-1.tar.xz 16444 SHA256 98e3c57398a3476ff809b98c7a17e52424842ca41499b3ee84b73d90c633ec62 SHA512 c70e033619e1caecb5e5d70e36094bb105f0387a383f7091c763b87ad9f31121c036446e337d44565ce66c9977870c951f2fbd61d34ac1633c18ac9d0b489a13 WHIRLPOOL d211c1b5b3358e8142dd6c6ec9b324db49d1097a0f717168a299e22872d7ff3f9066dace7ac1de935117849445de15f6c3b0afd14afa2750c69d388b83c464d9
30
31 diff --git a/dev-lang/perl/perl-5.24.3_rc1.ebuild b/dev-lang/perl/perl-5.24.3_rc1.ebuild
32 new file mode 100644
33 index 00000000000..ecf25099949
34 --- /dev/null
35 +++ b/dev-lang/perl/perl-5.24.3_rc1.ebuild
36 @@ -0,0 +1,564 @@
37 +# Copyright 1999-2017 Gentoo Foundation
38 +# Distributed under the terms of the GNU General Public License v2
39 +
40 +EAPI=6
41 +
42 +inherit eutils alternatives flag-o-matic toolchain-funcs multilib multiprocessing
43 +
44 +PATCH_VER=1
45 +CROSS_VER=1.1.6
46 +PATCH_BASE="perl-5.24.3-patches-${PATCH_VER}"
47 +
48 +PERL_OLDVERSEN="5.24.2 5.24.1 5.24.0"
49 +DIST_AUTHOR=SHAY
50 +
51 +SHORT_PV="${PV%.*}"
52 +MY_P="perl-${PV/_rc/-RC}"
53 +MY_PV="${PV%_rc*}"
54 +
55 +DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
56 +
57 +SRC_URI="
58 + mirror://cpan/src/5.0/${MY_P}.tar.xz
59 + mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
60 + https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
61 + mirror://gentoo/${PATCH_BASE}.tar.xz
62 + https://dev.gentoo.org/~kentnl/distfiles/${PATCH_BASE}.tar.xz
63 + https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
64 +"
65 +HOMEPAGE="http://www.perl.org/"
66 +
67 +LICENSE="|| ( Artistic GPL-1+ )"
68 +SLOT="0/${SHORT_PV}"
69 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
70 +IUSE="berkdb debug doc gdbm ithreads"
71 +
72 +RDEPEND="
73 + berkdb? ( sys-libs/db:= )
74 + gdbm? ( >=sys-libs/gdbm-1.8.3 )
75 + app-arch/bzip2
76 + sys-libs/zlib
77 +"
78 +DEPEND="${RDEPEND}
79 + !prefix? ( elibc_FreeBSD? ( sys-freebsd/freebsd-mk-defs ) )
80 +"
81 +PDEPEND="
82 + >=app-admin/perl-cleaner-2.5
83 + >=virtual/perl-File-Path-2.130.0
84 + >=virtual/perl-File-Temp-0.230.400-r2
85 + >=virtual/perl-Data-Dumper-2.154.0
86 + virtual/perl-Test-Harness
87 +"
88 +# bug 390719, bug 523624, bug 620304
89 +# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
90 +
91 +S="${WORKDIR}/${MY_P}"
92 +
93 +dual_scripts() {
94 + src_remove_dual perl-core/Archive-Tar 2.40.100_rc ptar ptardiff ptargrep
95 + src_remove_dual perl-core/CPAN 2.110.100_rc cpan
96 + src_remove_dual perl-core/Digest-SHA 5.950.100_rc shasum
97 + src_remove_dual perl-core/Encode 2.800.100_rc enc2xs piconv
98 + src_remove_dual perl-core/ExtUtils-MakeMaker 7.100.200_rc instmodsh
99 + src_remove_dual perl-core/ExtUtils-ParseXS 3.310.0 xsubpp
100 + src_remove_dual perl-core/IO-Compress 2.69.1_rc zipdetails
101 + src_remove_dual perl-core/JSON-PP 2.273.0.100_rc json_pp
102 + src_remove_dual perl-core/Module-CoreList 5.201.709.222.400_rc corelist
103 + src_remove_dual perl-core/Pod-Parser 1.630.0 pod2usage podchecker podselect
104 + src_remove_dual perl-core/Pod-Perldoc 3.250.300_rc perldoc
105 + src_remove_dual perl-core/Test-Harness 3.360.100_rc prove
106 + src_remove_dual perl-core/podlators 4.70.0 pod2man pod2text
107 + src_remove_dual_man perl-core/podlators 4.70.0 /usr/share/man/man1/perlpodstyle.1
108 +}
109 +
110 +check_rebuild() {
111 + # Fresh install
112 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
113 + return 0;
114 + # Major Upgrade
115 + # doesn't matter if there's multiple copies, it still needs a rebuild
116 + # if the string is anything other than "5.CURRENTMAJOR"
117 + elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
118 + echo ""
119 + ewarn "UPDATE THE PERL MODULES:"
120 + ewarn "After updating dev-lang/perl the installed Perl modules"
121 + ewarn "have to be re-installed. In most cases, this is done automatically"
122 + ewarn "by the package manager, but subsequent steps are still recommended"
123 + ewarn "to ensure system consistency."
124 + ewarn
125 + ewarn "You should start with a depclean to remove any unused perl dependencies"
126 + ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
127 + ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
128 + ewarn "Recommended: emerge --depclean -va"
129 + ewarn
130 + ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
131 + ewarn "remaining rebuilds portage may have missed."
132 + ewarn "Use: perl-cleaner --all"
133 + return 0;
134 +
135 + # Reinstall w/ USE Change
136 + elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
137 + ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
138 + ( use debug && ! has_version dev-lang/perl[debug] ) || \
139 + ( ! use debug && has_version dev-lang/perl[debug] ) ; then
140 + echo ""
141 + ewarn "TOGGLED USE-FLAGS WARNING:"
142 + ewarn "You changed one of the use-flags ithreads or debug."
143 + ewarn "You must rebuild all perl-modules installed."
144 + ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
145 + fi
146 +}
147 +
148 +pkg_setup() {
149 + case ${CHOST} in
150 + *-freebsd*) osname="freebsd" ;;
151 + *-dragonfly*) osname="dragonfly" ;;
152 + *-netbsd*) osname="netbsd" ;;
153 + *-openbsd*) osname="openbsd" ;;
154 + *-darwin*) osname="darwin" ;;
155 + *-interix*) osname="interix" ;;
156 + *-aix*) osname="aix" ;;
157 + *-cygwin*) osname="cygwin" ;;
158 + *) osname="linux" ;;
159 + esac
160 +
161 + myarch="${CHOST%%-*}-${osname}"
162 + if use debug ; then
163 + myarch+="-debug"
164 + fi
165 + if use ithreads ; then
166 + mythreading="-multi"
167 + myarch+="-thread"
168 + fi
169 +
170 + LIBPERL="libperl$(get_libname ${MY_PV} )"
171 + PRIV_LIB="/usr/$(get_libdir)/perl5/${MY_PV}"
172 + ARCH_LIB="/usr/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}"
173 + SITE_LIB="/usr/local/$(get_libdir)/perl5/${MY_PV}"
174 + SITE_ARCH="/usr/local/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}"
175 + VENDOR_LIB="/usr/$(get_libdir)/perl5/vendor_perl/${MY_PV}"
176 + VENDOR_ARCH="/usr/$(get_libdir)/perl5/vendor_perl/${MY_PV}/${myarch}${mythreading}"
177 +
178 + dual_scripts
179 +}
180 +
181 +src_remove_dual_file() {
182 + local i pkg ver
183 + pkg="$1"
184 + ver="$2"
185 + shift 2
186 + case "${EBUILD_PHASE:-none}" in
187 + postinst|postrm)
188 + for i in "$@" ; do
189 + alternatives_auto_makesym "${i}" "${i}-[0-9]*"
190 + done
191 + ;;
192 + setup)
193 + for i in "$@" ; do
194 + if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
195 + has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
196 + break
197 + fi
198 + done
199 + ;;
200 + install)
201 + for i in "$@" ; do
202 + if ! [[ -f "${ED}"${i} ]] ; then
203 + ewarn "${i} does not exist!"
204 + continue
205 + fi
206 + mv "${ED}"${i}{,-${ver}-${P}} || die
207 + done
208 + ;;
209 + esac
210 +}
211 +
212 +src_remove_dual_man() {
213 + local i pkg ver ff
214 + pkg="$1"
215 + ver="$2"
216 + shift 2
217 + case "${EBUILD_PHASE:-none}" in
218 + postinst|postrm)
219 + for i in "$@" ; do
220 + ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
221 + ff=${ff##*${i#${i%.[0-9]}}}
222 + alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
223 + done
224 + ;;
225 + install)
226 + for i in "$@" ; do
227 + if ! [[ -f "${ED}"${i} ]] ; then
228 + ewarn "${i} does not exist!"
229 + continue
230 + fi
231 + mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
232 + done
233 + ;;
234 + esac
235 +}
236 +
237 +src_remove_dual() {
238 + local i pkg ver
239 + pkg="$1"
240 + ver="$2"
241 + shift 2
242 + for i in "$@" ; do
243 + src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
244 + src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
245 + done
246 +}
247 +
248 +src_prepare_update_patchlevel_h() {
249 + # Copied and modified from debian:
250 + # Copyright 2011 Niko Tyni
251 + # This program is free software; you can redistribute it and/or modify
252 + # it under the same terms as Perl itself.
253 + local patchdir="${WORKDIR}/patches"
254 + local prefix
255 + local patchoutput="patchlevel-gentoo.h"
256 +
257 + [[ -f ${patchdir}/series ]] || return 0
258 +
259 +while read patch
260 +do
261 + patchname=$(echo $patch | sed 's/\.diff$//')
262 + < $patchdir/$patch sed -e '/^Subject:/ { N; s/\n / / }' | sed -n -e '
263 +
264 + # massage the patch headers
265 + s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
266 + s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; tprepend;
267 + s|^Bug-Gentoo: ||; tprepend;
268 + s/^\(Subject\|Description\): //; tappend;
269 + s|^Origin: .*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; tprepend;
270 +
271 + # post-process at the end of input
272 + $ { x;
273 + # include the version number in the patchlevel.h description (if available)
274 + s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;
275 +
276 + # escape any backslashes and double quotes
277 + s|\\|\\\\|g; s|"|\\"|g;
278 +
279 + # add a prefix
280 + s|^|\t,"'"$prefix$patchname"' - |;
281 + # newlines away
282 + s/\n/ /g; s/ */ /g;
283 + # add a suffix
284 + s/ *$/"/; p
285 + };
286 + # stop all processing
287 + d;
288 + # label: append to the hold space
289 + :append H; d;
290 + # label: prepend to the hold space
291 + :prepend x; H; d;
292 + '
293 +done < "${WORKDIR}"/patches/series > "${S}/${patchoutput}"
294 +echo "${patchoutput}" >> "${S}/MANIFEST"
295 +}
296 +
297 +src_prepare() {
298 + local patch
299 + EPATCH_OPTS+=" -p1"
300 + einfo "Applying patches from ${MY_P}-${PATCH_VER} ..."
301 + while read patch ; do
302 + EPATCH_SINGLE_MSG=" ${patch} ..."
303 + epatch "${WORKDIR}"/patches/${patch}
304 + done < "${WORKDIR}"/patches/series
305 +
306 + src_prepare_update_patchlevel_h
307 +
308 + if tc-is-cross-compiler; then
309 + cp -a ../perl-cross-${CROSS_VER}/* . || die
310 +
311 + sed -i \
312 + -e 's/(15 + $CLEANUP)/(13 + $CLEANUP)/' \
313 + cnf/diffs/perl5-${PV}/makemaker-test.patch || die
314 +
315 + sed -i \
316 + -e 's/MakeMaker\.pm .*/MakeMaker.pm bf9174c70a0e50ff2fee4552c7df89b37d292da1/' \
317 + -e 's/MM_Unix\.pm .*/MM_Unix.pm b0ec308fe2d7dcfcef5732880db0fae1f4ea80fa/' \
318 + cnf/diffs/perl5-${PV}/customized.patch || die
319 +
320 + sed -i \
321 + -e 's|^lib/unicore/CombiningClass.pl pod/perluniprops.pod:|lib/unicore/CombiningClass.pl pod/perluniprops.pod: $(CONFIGPM)|' \
322 + Makefile || die
323 +
324 + # bug 604072
325 + MAKEOPTS+=" -j1"
326 + export MAKEOPTS
327 + fi
328 +
329 + if ! tc-is-static-only ; then
330 + ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
331 + ln -s ${LIBPERL} libperl$(get_libname ) || die
332 + fi
333 +
334 + if use gdbm; then
335 + sed -i "s:INC => .*:INC => \"-I${EROOT}usr/include/gdbm\":g" \
336 + ext/NDBM_File/Makefile.PL || die
337 + fi
338 +
339 + default
340 +}
341 +
342 +myconf() {
343 + # the myconf array is declared in src_configure
344 + myconf=( "${myconf[@]}" "$@" )
345 +}
346 +
347 +src_configure() {
348 + declare -a myconf
349 +
350 + export LC_ALL="C"
351 + [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
352 +
353 + # some arches and -O do not mix :)
354 + use ppc && replace-flags -O? -O1
355 +
356 + # Perl has problems compiling with -Os in your flags with glibc
357 + use elibc_uclibc || replace-flags "-Os" "-O2"
358 +
359 + # This flag makes compiling crash in interesting ways
360 + filter-flags "-malign-double"
361 +
362 + # Fixes bug #97645
363 + use ppc && filter-flags "-mpowerpc-gpopt"
364 +
365 + # Fixes bug #143895 on gcc-4.1.1
366 + filter-flags "-fsched2-use-superblocks"
367 +
368 + use sparc && myconf -Ud_longdbl
369 +
370 + export BUILD_BZIP2=0
371 + export BZIP2_INCLUDE=${EROOT}/usr/include
372 + export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
373 +
374 + export BUILD_ZLIB=False
375 + export ZLIB_INCLUDE=${EROOT}/usr/include
376 + export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
377 +
378 + # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
379 + myndbm='U'
380 + mygdbm='U'
381 + mydb='U'
382 + if use gdbm ; then
383 + mygdbm='D'
384 + if use berkdb ; then
385 + myndbm='D'
386 + fi
387 + fi
388 + if use berkdb ; then
389 + mydb='D'
390 + has_version '=sys-libs/db-1*' && myndbm='D'
391 + fi
392 +
393 + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
394 +
395 + if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
396 + ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
397 + myconf -Ui_db -Ui_ndbm
398 + fi
399 +
400 + use ithreads && myconf -Dusethreads
401 +
402 + if use debug ; then
403 + append-cflags "-g"
404 + myconf -DDEBUGGING
405 + elif [[ ${CFLAGS} == *-g* ]] ; then
406 + myconf -DDEBUGGING=-g
407 + else
408 + myconf -DDEBUGGING=none
409 + fi
410 +
411 + if [[ -n ${PERL_OLDVERSEN} ]] ; then
412 + local inclist=$(for v in ${PERL_OLDVERSEN}; do echo -n "${v}/${myarch}${mythreading} ${v} "; done )
413 + myconf -Dinc_version_list="${inclist}"
414 + fi
415 +
416 + [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
417 +
418 + # Make sure we can do the final link #523730, need to set deployment
419 + # target to override hardcoded 10.3 which breaks on modern OSX
420 + [[ ${CHOST} == *-darwin* ]] && \
421 + myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
422 +
423 + # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
424 + # Prefix itself we don't do multilib either, so make sure perl can find
425 + # something compatible.
426 + if use prefix ; then
427 + # Set a hook to check for each detected library whether it actually works.
428 + export libscheck="
429 + ( echo 'main(){}' > '${T}'/conftest.c &&
430 + $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
431 + ) || xxx=/dev/null"
432 +
433 + # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
434 + local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
435 + myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
436 + elif [[ $(get_libdir) != "lib" ]] ; then
437 + # We need to use " and not ', as the written config.sh use ' ...
438 + myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
439 + fi
440 +
441 + # don't try building ODBM, bug #354453
442 + disabled_extensions="ODBM_File"
443 +
444 + if ! use gdbm ; then
445 + # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
446 + disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
447 + fi
448 +
449 + myconf -Dnoextensions="${disabled_extensions}"
450 +
451 + [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
452 + # allow fiddling via EXTRA_ECONF, bug 558070
453 + eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
454 +
455 + myconf \
456 + -Duseshrplib \
457 + -Darchname="${myarch}" \
458 + -Dcc="$(tc-getCC)" \
459 + -Doptimize="${CFLAGS}" \
460 + -Dldflags="${LDFLAGS}" \
461 + -Dprefix="${EPREFIX}"'/usr' \
462 + -Dsiteprefix="${EPREFIX}"'/usr/local' \
463 + -Dvendorprefix="${EPREFIX}"'/usr' \
464 + -Dscriptdir="${EPREFIX}"'/usr/bin' \
465 + -Dprivlib="${EPREFIX}${PRIV_LIB}" \
466 + -Darchlib="${EPREFIX}${ARCH_LIB}" \
467 + -Dsitelib="${EPREFIX}${SITE_LIB}" \
468 + -Dsitearch="${EPREFIX}${SITE_ARCH}" \
469 + -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
470 + -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
471 + -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
472 + -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
473 + -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
474 + -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
475 + -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
476 + -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
477 + -Dman1ext='1' \
478 + -Dman3ext='3pm' \
479 + -Dlibperl="${LIBPERL}" \
480 + -Dlocincpth="${EPREFIX}"'/usr/include ' \
481 + -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
482 + -Duselargefiles \
483 + -Dd_semctl_semun \
484 + -Dcf_by='Gentoo' \
485 + -Dmyhostname='localhost' \
486 + -Dperladmin='root@localhost' \
487 + -Ud_csh \
488 + -Dsh="${EPREFIX}"/bin/sh \
489 + -Dtargetsh="${EPREFIX}"/bin/sh \
490 + -Uusenm \
491 + "${myconf[@]}" \
492 + "${EXTRA_ECONF[@]}"
493 +
494 + if tc-is-cross-compiler; then
495 + ./configure \
496 + --target="${CHOST}" \
497 + --build="${CBUILD}" \
498 + -Dinstallprefix='' \
499 + -Dinstallusrbinperl='undef' \
500 + -Dusevendorprefix='define' \
501 + "${myconf[@]}" \
502 + || die "Unable to configure"
503 + else
504 + sh Configure \
505 + -des \
506 + -Dinstallprefix="${EPREFIX}"'/usr' \
507 + -Dinstallusrbinperl='n' \
508 + "${myconf[@]}" \
509 + || die "Unable to configure"
510 + fi
511 +}
512 +
513 +src_test() {
514 + export NO_GENTOO_NETWORK_TESTS=1;
515 + if [[ ${EUID} == 0 ]] ; then
516 + ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
517 + return 0
518 + fi
519 + use elibc_uclibc && export MAKEOPTS+=" -j1"
520 + TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
521 +}
522 +
523 +src_install() {
524 + local i
525 + local coredir="${ARCH_LIB}/CORE"
526 +
527 + emake DESTDIR="${D}" install
528 +
529 + rm -f "${ED}/usr/bin/perl${MY_PV}"
530 + ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
531 +
532 + if ! tc-is-static-only ; then
533 + dolib.so "${ED}"${coredir}/${LIBPERL}
534 + rm -f "${ED}"${coredir}/${LIBPERL}
535 + ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
536 + ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
537 + ln -sf ../../../../../$(get_libdir)/${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
538 + ln -sf ../../../../../$(get_libdir)/${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
539 + ln -sf ../../../../../$(get_libdir)/${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
540 + fi
541 +
542 + rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
543 +
544 + # This removes ${D} from Config.pm
545 + for i in $(find "${D}" -iname "Config.pm" ) ; do
546 + einfo "Removing ${D} from ${i}..."
547 + sed -i -e "s:${D}::" "${i}" || die "Sed failed"
548 + done
549 +
550 + dodoc Changes* README AUTHORS
551 +
552 + if use doc ; then
553 + # HTML Documentation
554 + # We expect errors, warnings, and such with the following.
555 +
556 + dodir /usr/share/doc/${PF}/html
557 + LD_LIBRARY_PATH=. ./perl installhtml \
558 + --podroot='.' \
559 + --podpath='lib:ext:pod:vms' \
560 + --recurse \
561 + --htmldir="${ED}/usr/share/doc/${PF}/html"
562 + fi
563 +
564 + [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
565 +
566 + dual_scripts
567 +}
568 +
569 +pkg_preinst() {
570 + check_rebuild
571 +}
572 +
573 +pkg_postinst() {
574 + dual_scripts
575 +
576 + if [[ "${ROOT}" = "/" ]] ; then
577 + local INC DIR file
578 + INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
579 + einfo "Removing old .ph files"
580 + for DIR in ${INC} ; do
581 + if [[ -d "${DIR}" ]] ; then
582 + for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
583 + rm -f "${file}"
584 + einfo "<< ${file}"
585 + done
586 + fi
587 + done
588 + # Silently remove the now empty dirs
589 + for DIR in ${INC} ; do
590 + if [[ -d "${DIR}" ]] ; then
591 + find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
592 + fi
593 + done
594 +
595 + fi
596 +}
597 +
598 +pkg_postrm(){
599 + dual_scripts
600 +}
601
602 diff --git a/profiles/package.mask b/profiles/package.mask
603 index 436cd0f5bbe..f4c1bc939a4 100644
604 --- a/profiles/package.mask
605 +++ b/profiles/package.mask
606 @@ -29,6 +29,12 @@
607
608 #--- END OF EXAMPLES ---
609
610 +# Kent Fredric <kentnl@g.o> (10 Sep 2017)
611 +# Staging block for Perl 5.24.3
612 +=dev-lang/perl-5.24.3_rc1
613 +=dev-lang/perl-5.24.3_rc2
614 +=dev-lang/perl-5.24.3_rc3
615 +
616 # Andreas Sturmlechner <asturm@g.o> (10 Sep 2017)
617 # Requires dead Qt 4. Dead upstream. Unmaintained.
618 # Use media-video/kmplayer or kde-apps/dragon instead.