diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2010-09-03 12:43:41 -0500 |
---|---|---|
committer | Saul Wold <Saul.Wold@intel.com> | 2010-09-03 18:30:47 -0700 |
commit | c849ec75e718d1095bd7d25d05f57e25d5d94589 (patch) | |
tree | ddcc642d7b5ea9db6cebcd419d779d3bf2f095e5 | |
parent | a9b715736f96e3a4ac3fa99737ae412c1ac4f01e (diff) | |
download | openembedded-core-c849ec75e718d1095bd7d25d05f57e25d5d94589.tar.gz openembedded-core-c849ec75e718d1095bd7d25d05f57e25d5d94589.tar.bz2 openembedded-core-c849ec75e718d1095bd7d25d05f57e25d5d94589.zip |
rpm: Fix autoconf/libtool usage
In order to resolve a host-contamination problem, we re-work the way that
autoconf and friends are invoked during the compilation of RPM.
This has a side effect of fixing another bug where RPM was being renamed
HOST_ARCH-HOST_OS-rpm. So we remove the "fixes" for that behavior as well.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-rw-r--r-- | meta/classes/package.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/package_rpm.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/rootfs_rpm.bbclass | 2 | ||||
-rw-r--r-- | meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch | 20 | ||||
-rw-r--r-- | meta/recipes-devtools/rpm/rpm_5.1.10.bb | 124 |
5 files changed, 102 insertions, 50 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index f0a8748023..4951220cba 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -558,7 +558,7 @@ if [ x"$D" = "x" ]; then fi } -RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/${BUILD_ARCH}-${BUILD_OS}-rpmdeps" +RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps" # Collect perfile run-time dependency metadata # Output: diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 3967ae294e..b70575cea0 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -2,8 +2,8 @@ inherit package IMAGE_PKGTYPE ?= "rpm" -RPM="${BUILD_ARCH}-${BUILD_OS}-rpm" -RPMBUILD="${BUILD_ARCH}-${BUILD_OS}-rpmbuild" +RPM="rpm" +RPMBUILD="rpmbuild" PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms" diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 09afa58103..55c851c463 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -26,7 +26,7 @@ rpmlibdir = "/var/lib/rpm" opkglibdir = "${localstatedir}/lib/opkg" RPMOPTS="--dbpath ${rpmlibdir} --define='_openall_before_chroot 1'" -RPM="${BUILD_ARCH}-${BUILD_OS}-rpm ${RPMOPTS}" +RPM="rpm ${RPMOPTS}" fakeroot rootfs_rpm_do_rootfs () { set +x diff --git a/meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch b/meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch new file mode 100644 index 0000000000..30c5f7b183 --- /dev/null +++ b/meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch @@ -0,0 +1,20 @@ +Using the version of autoconf in poky results in: + +configure.ac:11: error: m4_divert_push: cannot change diversion to `GROW' inside m4_expand + +without this patch. + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> + +diff -ur rpm-5.1.10.orig/configure.ac rpm-5.1.10/configure.ac +--- rpm-5.1.10.orig/configure.ac 2010-08-20 17:12:16.000000000 -0500 ++++ rpm-5.1.10/configure.ac 2010-09-03 11:34:44.722097327 -0500 +@@ -8,7 +8,7 @@ + + AC_PREREQ(2.60) + AC_DEFUN([PACKAGE_BUGREPORT_DEFAULT], [rpm-devel@rpm5.org]) +-AC_INIT(rpm, [5.1.10], [PACKAGE_BUGREPORT_DEFAULT]) ++AC_INIT(rpm, [5.1.10]) + PACKAGE_TIMESTAMP="2008" dnl # YYYY[-MM[-DD[ HH[:MM]]]] + AC_MSG_TITLE([RPM Package Manager (RPM)], [$PACKAGE_VERSION]) + diff --git a/meta/recipes-devtools/rpm/rpm_5.1.10.bb b/meta/recipes-devtools/rpm/rpm_5.1.10.bb index 4cf0fd8777..e5ccf8e99d 100644 --- a/meta/recipes-devtools/rpm/rpm_5.1.10.bb +++ b/meta/recipes-devtools/rpm/rpm_5.1.10.bb @@ -3,12 +3,13 @@ DESCRIPTION_rpm-build = "The RPM Package Manager rpmbuild and related commands." HOMEPAGE = "http://rpm5.org/" LICENSE = "LGPL 2.1" DEPENDS = "zlib perl popt beecrypt python libpcre elfutils" -PR = "r4" +PR = "r5" SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.1/SNAPSHOT/${BPN}-${PV}.tar.gz \ file://hdraddorappend.patch \ file://export-rpmbag-h.patch \ file://rpm-nrescan.patch \ + file://rpm-autoconf.patch \ file://remove-compiled-tests.patch;apply=no \ file://perfile_rpmdeps.sh \ " @@ -67,64 +68,95 @@ FILES_python-rpm-dbg = "${libdir}/python*/rpm/.debug/_*" EXTRA_OECONF += "--with-mutex=POSIX/pthreads/library" do_configure() { - rm ${S}/db/dist/configure.in -f - for i in `find ${S} -name *.ac`; do - j=`echo $i | sed 's/.ac/.m4/g'` - mv $i $j - done + # Manually run through the steps of the autogen.sh + ( cd pcre + libtoolize --quiet --copy --force --install + aclocal + autoheader + automake -Wall -Wno-override -a -c + autoconf + ) + + ( cd xz + autopoint -f + rm -f \ + codeset.m4 \ + glibc2.m4 \ + glibc21.m4 \ + intdiv0.m4 \ + intl.m4 \ + intldir.m4 \ + intmax.m4 \ + inttypes-pri.m4 \ + inttypes_h.m4 \ + lcmessage.m4 \ + lock.m4 \ + longdouble.m4 \ + longlong.m4 \ + printf-posix.m4 \ + size_max.m4 \ + stdint_h.m4 \ + uintmax_t.m4 \ + ulonglong.m4 \ + visibility.m4 \ + wchar_t.m4 \ + wint_t.m4 \ + xsize.m4 + libtoolize -c -f || glibtoolize -c -f + aclocal -I m4 + autoconf + autoheader + automake -acf --foreign + ) + + ( cd file + libtoolize --quiet --copy --force --install + aclocal + autoheader + automake -Wall -Wno-override -a -c + autoconf + ) + + (cd syck + libtoolize --quiet --copy --force --install + aclocal + autoheader + automake -Wall -Wno-override -a -c + autoconf + ) + + (cd xar + libtoolize --quiet --copy --force --install + aclocal + autoheader + automake -Wall -Wno-override -a -c + autoconf + ) + + rm -rf autom4te.cache || true + libtoolize --quiet --copy --force --install + autopoint --force + rm -f aclocal.m4 + aclocal -I m4 + autoheader -I m4 + automake -Wall -Wno-override -a -c + autoconf -I m4 + # end of autogen.sh steps + export ac_cv_va_copy=C99 - autotools_do_configure - cd ${S}/db3 - ${S}/db3/configure \ - --build=${BUILD_SYS} \ - --host=${HOST_SYS} \ - --target=${TARGET_SYS} \ - --prefix=${prefix} \ - --exec_prefix=${exec_prefix} \ - --bindir=${bindir} \ - --sbindir=${sbindir} \ - --libexecdir=${libexecdir} \ - --datadir=${datadir} \ - --sysconfdir=${sysconfdir} \ - --sharedstatedir=${sharedstatedir} \ - --localstatedir=${localstatedir} \ - --libdir=${libdir} \ - --includedir=${includedir} \ - --oldincludedir=${oldincludedir} \ - --infodir=${infodir} \ - --mandir=${mandir} \ - ${EXTRA_OECONF} + oe_runconf } -INSTALL_ACTIONS="" - -# When installing the native version, the rpm components are renamed with a -# naming transform. We need to adjust the rpmpopt file with the same transform -INSTALL_ACTIONS_virtclass-native="sed -i -e 's,rpm,${HOST_SYS}-rpm,' ${D}/${libdir}/rpm/rpmpopt" - do_install_append() { - ${INSTALL_ACTIONS} sed -i -e 's,%__check_files,#%%__check_files,' ${D}/${libdir}/rpm/macros sed -i -e 's,%__scriptlet_requires,#%%__scriptlet_requires,' ${D}/${libdir}/rpm/macros sed -i -e 's,%__perl_provides,#%%__perl_provides,' ${D}/${libdir}/rpm/macros sed -i -e 's,%__perl_requires,#%%__perl_requires,' ${D}/${libdir}/rpm/macros - sed -i -e 's,pythondeps.sh,${HOST_SYS}-pythondeps.sh,' ${D}/${libdir}/rpm/macros - sed -i -e 's,phpdeps.sh,${HOST_SYS}-phpdeps.sh,' ${D}/${libdir}/rpm/macros - sed -i -e 's,javadeps.sh,${HOST_SYS}-javadeps.sh,' ${D}/${libdir}/rpm/macros - sed -i -e 's,libtooldeps.sh,${HOST_SYS}-libtooldeps.sh,' ${D}/${libdir}/rpm/macros - sed -i -e 's,pkgconfigdeps.sh,${HOST_SYS}-pkgconfigdeps.sh,' ${D}/${libdir}/rpm/macros - sed -i -e 's,executabledeps.sh,${HOST_SYS}-executabledeps.sh,' ${D}/${libdir}/rpm/macros - sed -i -e 's,perl.prov,${HOST_SYS}-perl.prov,' ${D}/${libdir}/rpm/macros - sed -i -e 's,perl.req,${HOST_SYS}-perl.req,' ${D}/${libdir}/rpm/macros # Enable Debian style arbitrary tags... sed -i -e 's,%_arbitrary_tags[^_].*,%_arbitrary_tags %{_arbitrary_tags_debian},' ${D}/${libdir}/rpm/macros install -m 0755 ${WORKDIR}/perfile_rpmdeps.sh ${D}/${libdir}/rpm/perfile_rpmdeps.sh - - mv ${D}/${libdir}/python${PYTHON_BASEVERSION}/rpm/${HOST_SYS}-__init__.py \ - ${D}/${libdir}/python${PYTHON_BASEVERSION}/rpm/__init__.py - } BBCLASSEXTEND = "native" |