generic-poky/meta/recipes-devtools/perl/perl-native_5.24.0.bb

128 lines
4.1 KiB
BlitzBasic
Raw Normal View History

require perl.inc
EXTRA_OEMAKE = "-e MAKEFLAGS="
SRC_URI += "\
file://Configure-multilib.patch \
file://perl-configpm-switch.patch \
file://native-nopacklist.patch \
file://native-perlinc.patch \
file://MM_Unix.pm.patch \
file://debian/errno_ver.diff \
file://dynaloaderhack.patch \
file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \
"
perl: Upgrade to 5.24.0 Configuration changes, Simple changes was made to bump version and api version, related to floating point handling now the configuration needs the inf, mantisa and nan bytes. The new version comes with the support of API calls like memmem and {new,free,use}locale also structure for handle siginfo supported by glibc and musl. Finally use64bit{int, all} was disable because the previous configure_args don't come with them and cases some tests to fail related to bignum's and shared memory respectively. This doesn't means that perl couldn't use 64-bit data types, it means that don't stores by default into a 64 bit that is good for embedded space purposes. Modules changes, Some core modules are now deprecated in order to use the core ones like version-vpp and version-regex inside module-extutils-makemaker. For full review see perl-rdepends.inc file. Patches rebased, - perl/debian/errno_ver.diff - perl/dynaloaderhack.patch - perl/Makefile.SH.patch - perl/config.s - perl/dynaloaderhack.patch - perl/perl-test-customized.patch Patches removed, comes with the upgrade now: - perl/perl-remove-nm-from-libswanted.patch - perl/perl-fix-CVE-2015-8607.patch - perl/perl-fix-CVE-2016-2381.patch Test, The upgrade was test using ptest the suite is fixed now. The pod2man and pod2text installation required now for some tests. Buildhistory was use to review the changes and only diff changes related to modules commented above. (From OE-Core rev: add5e5982f010e13e3ad25690f01d5e4e391daf9) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-24 21:06:04 +00:00
SRC_URI[md5sum] = "59456ae4bd4b06cb6e57cb19a3b2d349"
SRC_URI[sha256sum] = "a9a37c0860380ecd7b23aa06d61c20fc5bc6d95198029f3684c44a9d7e2952f2"
inherit native
NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
export LD="${CCLD}"
do_configure () {
./Configure \
-Dcc="${CC}" \
-Dcflags="${CFLAGS}" \
-Dldflags="${LDFLAGS}" \
-Dcf_by="Open Embedded" \
-Dprefix=${prefix} \
-Dvendorprefix=${prefix} \
-Dsiteprefix=${prefix} \
\
-Dbin=${STAGING_BINDIR}/${PN} \
-Dprivlib=${STAGING_LIBDIR}/perl/${PV} \
-Darchlib=${STAGING_LIBDIR}/perl/${PV} \
-Dvendorlib=${STAGING_LIBDIR}/perl/vendor_perl/${PV} \
-Dvendorarch=${STAGING_LIBDIR}/perl/vendor_perl/${PV} \
-Dsitelib=${STAGING_LIBDIR}/perl/site_perl/${PV} \
-Dsitearch=${STAGING_LIBDIR}/perl/site_perl/${PV} \
\
-Duseshrplib \
-Dusethreads \
-Duseithreads \
-Duselargefiles \
-Dnoextensions=ODBM_File \
-Ud_dosuid \
-Ui_db \
-Ui_ndbm \
-Ui_gdbm \
-Ui_gdbm_ndbm \
-Ui_gdbmndbm \
-Di_shadow \
-Di_syslog \
-Duseperlio \
-Dman3ext=3pm \
-Dsed=/bin/sed \
-Uafs \
-Ud_csh \
-Uusesfio \
-Uusenm -des
}
do_install () {
oe_runmake 'DESTDIR=${D}' install
# We need a hostperl link for building perl
ln -sf perl${PV} ${D}${bindir}/hostperl
perl, perl-native: upgrade from 5.8.8 to 5.12.2 Deleted these patches as they are part of the upstream code now. deleted: files/perl-5.8.8-gcc-4.2.patch deleted: perl-5.12.2/makedepend-dash.patch deleted: perl-5.12.2/native-no-gdbminc.patch deleted: perl-5.12.2/54_debian_perldoc-r.patch And rebased these patches to the newer source code modified: files/letgcc-find-errno.patch modified: perl-5.12.2/Makefile.patch modified: perl-5.12.2/asm-pageh-fix.patch modified: perl-5.12.2/native-nopacklist.patch modified: perl-5.12.2/native-perlinc.patch modified: perl-5.12.2/Makefile.SH.patch modified: perl-5.12.2/installperl.patch modified: perl-5.12.2/perl-dynloader.patch modified: perl-5.12.2/09_fix_installperl.patch get patches from debian perl ver 5.12.2-2 the fakeroot.diff patch from debian is conflicting with our Makefile.SH.patch, hence disabling the fakeroot patch use newly created config files Created with current milestone branch on qemu machines modified: config.sh modified: config.sh-32 modified: config.sh-64 get some changes from oe's perl 5.10.1 recipe fix the Makefile.SH.patch use miniperl instead of perl import a OE 5.10.1 patch: uudmap_cross fix install issues add /usr in the destdir, so that perl gets installed in /usr/bin/perl and not in /bin/perl link /usr/lib/perl to /usr/lib/perl5 so that operations with /usr/lib/perl path in them keep on working. Fix/Improve perl packaging avoid perl-module-module-* kind of packages recreate perl-rdepends_5.12.2.inc file with new set of packages import from oe perl-rprovide_5.12.2.inc combine all unicore perl scripts in one package simplify perl-lib reduce no of perl recipe packages greatly. Add zlib to depedancy fix buildtime host contamination This also fixes [BUGID #384] Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-12-22 17:26:07 +00:00
ln -sf perl ${D}${libdir}/perl5
install -d ${D}${libdir}/perl/${PV}/CORE \
${D}${datadir}/perl/${PV}/ExtUtils
# Save native config
install config.sh ${D}${libdir}/perl
install lib/Config.pm ${D}${libdir}/perl/${PV}/
perl, perl-native: upgrade from 5.8.8 to 5.12.2 Deleted these patches as they are part of the upstream code now. deleted: files/perl-5.8.8-gcc-4.2.patch deleted: perl-5.12.2/makedepend-dash.patch deleted: perl-5.12.2/native-no-gdbminc.patch deleted: perl-5.12.2/54_debian_perldoc-r.patch And rebased these patches to the newer source code modified: files/letgcc-find-errno.patch modified: perl-5.12.2/Makefile.patch modified: perl-5.12.2/asm-pageh-fix.patch modified: perl-5.12.2/native-nopacklist.patch modified: perl-5.12.2/native-perlinc.patch modified: perl-5.12.2/Makefile.SH.patch modified: perl-5.12.2/installperl.patch modified: perl-5.12.2/perl-dynloader.patch modified: perl-5.12.2/09_fix_installperl.patch get patches from debian perl ver 5.12.2-2 the fakeroot.diff patch from debian is conflicting with our Makefile.SH.patch, hence disabling the fakeroot patch use newly created config files Created with current milestone branch on qemu machines modified: config.sh modified: config.sh-32 modified: config.sh-64 get some changes from oe's perl 5.10.1 recipe fix the Makefile.SH.patch use miniperl instead of perl import a OE 5.10.1 patch: uudmap_cross fix install issues add /usr in the destdir, so that perl gets installed in /usr/bin/perl and not in /bin/perl link /usr/lib/perl to /usr/lib/perl5 so that operations with /usr/lib/perl path in them keep on working. Fix/Improve perl packaging avoid perl-module-module-* kind of packages recreate perl-rdepends_5.12.2.inc file with new set of packages import from oe perl-rprovide_5.12.2.inc combine all unicore perl scripts in one package simplify perl-lib reduce no of perl recipe packages greatly. Add zlib to depedancy fix buildtime host contamination This also fixes [BUGID #384] Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-12-22 17:26:07 +00:00
install lib/ExtUtils/typemap ${D}${libdir}/perl/${PV}/ExtUtils/
# perl shared library headers
perl, perl-native, perl-ptest: upgrade from 5.14.3 to 5.20.0 Changed: - The Copying has no change, except the company address. - pick patches from debian http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.20.0-1.debian.tar.xz - Not used by oe: deprecate-with-apt.diff patchlevel.diff fakeroot.diff - Create/Update perl-rdepends_${PV}.inc by the hardcode script; - Update config.sh by: 1) Copy the Perl 5.20.0 source code onto your TARGET machine linux qemuarm 3.14.5-yocto-standard from OE-Core rev: f506d0660c9949485268a92724ac770b5457b0ca 2) Execute sh Configure as normal and configure as required, do not "make"; 3) Compare with the old config.sh files, and update; - perl-ptest.inc 1) Copy the souce code to ptest since almost 112 test cases failed with the reason that no souce code found; 2) Add two patches to fix test case issue; - perl-native Reference perl (5.20.0-1) in debian to update perl shared library headers https://packages.debian.org/experimental/i386/perl/filelist Obsolete: - 09_fix_installperl.patch The dead code was removed from installperl http://perl5.git.perl.org/perl.git/commit/236818e0b9d9fe874831086b4d0b94dc6f245dfd - perl-build-in-t-dir.patch The upstream has fix it. The issue description: Perl cannot cross build in a path containing a directory that has the name of "t". As an example, you can make the perl build fail with "mkdir -p /tmp/build/t", go to the directory, unpack the sources, configure and cross build. - 0001-Fix-misparsing-of-maketext-strings.patch as they are part of the upstream code now: http://perl5.git.perl.org/perl.git/commit/1735f6f53ca19f99c6e9e39496c486af323ba6a8 - 0001-Prevent-premature-hsplit-calls-and-only-trigger-REHA.patch the hash function changed: http://perl5.git.perl.org/perl.git/commit/7dc8663964c66a698d31bbdc8e8abed69bddeec3 (From OE-Core rev: c7ac82415efc42ff7a93c6df163f88f2dde00d26) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-01 07:51:53 +00:00
# reference perl 5.20.0-1 in debian:
# https://packages.debian.org/experimental/i386/perl/filelist
for i in av.h bitcount.h charclass_invlists.h config.h cop.h cv.h dosish.h \
embed.h embedvar.h EXTERN.h fakesdio.h feature.h form.h git_version.h \
gv.h handy.h hv_func.h hv.h inline.h INTERN.h intrpvar.h iperlsys.h \
keywords.h l1_char_class_tab.h malloc_ctl.h metaconfig.h mg_data.h \
mg.h mg_raw.h mg_vtable.h mydtrace.h nostdio.h opcode.h op.h \
opnames.h op_reg_common.h overload.h pad.h parser.h patchlevel.h \
perlapi.h perl.h perlio.h perliol.h perlsdio.h perlvars.h perly.h \
pp.h pp_proto.h proto.h reentr.h regcharclass.h regcomp.h regexp.h \
regnodes.h scope.h sv.h thread.h time64_config.h time64.h uconfig.h \
unicode_constants.h unixish.h utf8.h utfebcdic.h util.h uudmap.h \
vutil.h warnings.h XSUB.h
do
install $i ${D}${libdir}/perl/${PV}/CORE
done
# Those wrappers mean that perl installed from sstate (which may change
# path location) works and that in the nativesdk case, the SDK can be
# installed to a different location from the one it was built for.
create_wrapper ${D}${bindir}/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/site_perl/${PV}:${STAGING_LIBDIR}/perl/vendor_perl/${PV}:${STAGING_LIBDIR}/perl/${PV}'
create_wrapper ${D}${bindir}/perl${PV} PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/site_perl/${PV}:${STAGING_LIBDIR}/perl/vendor_perl/${PV}:${STAGING_LIBDIR}/perl/${PV}'
# Use /usr/bin/env nativeperl for the perl script.
for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do
sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f
done
}
SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper"
perl_sysroot_create_wrapper () {
mkdir -p ${SYSROOT_DESTDIR}${bindir}
# Create a wrapper that /usr/bin/env perl will use to get perl-native.
# This MUST live in the normal bindir.
cat > ${SYSROOT_DESTDIR}${bindir}/../nativeperl << EOF
#!/bin/sh
realpath=\`readlink -fn \$0\`
exec \`dirname \$realpath\`/perl-native/perl "\$@"
EOF
chmod 0755 ${SYSROOT_DESTDIR}${bindir}/../nativeperl
cat ${SYSROOT_DESTDIR}${bindir}/../nativeperl
}
# Fix the path in sstate
SSTATE_SCAN_FILES += "*.pm *.pod *.h *.pl *.sh"