[OE-core] [PATCH 2/9] rpm: Upgrade RPM to 5.4.9

Khem Raj raj.khem at gmail.com
Mon Jun 11 19:53:35 UTC 2012


On Monday, June 11, 2012, Mark Hatle <mark.hatle at windriver.com> wrote:
> Beside upreving RPM, add necessary integration pathces to libzypp.

Typo there I guess you wanted "patches" there


>
> Also change the configuration of RPM to support PACKAGECONFIG flags.
> RPM is highly configurable, the default configuration is good for
> minimal OE-Core use.
>
> Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
> ---
>  meta/recipes-devtools/rpm/rpm/rpm-lua.patch        |   29 +++++
>  .../rpm/rpm/rpm-scriptletexechelper.patch          |   33 +++---
>  meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch |   26 ++---
>  .../rpm/{rpm_5.4.8.bb => rpm_5.4.9.bb}             |  122
+++++++++-----------
>  .../libzypp/libzypp/libzypp-rpm549.patch           |   28 +++++
>  meta/recipes-extended/libzypp/libzypp_git.bb       |    3 +-
>  6 files changed, 141 insertions(+), 100 deletions(-)
>  create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch
>  rename meta/recipes-devtools/rpm/{rpm_5.4.8.bb => rpm_5.4.9.bb} (82%)
>  create mode 100644
meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patch
>
> diff --git a/meta/recipes-devtools/rpm/rpm/rpm-lua.patch
b/meta/recipes-devtools/rpm/rpm/rpm-lua.patch
> new file mode 100644
> index 0000000..980e1b1
> --- /dev/null
> +++ b/meta/recipes-devtools/rpm/rpm/rpm-lua.patch
> @@ -0,0 +1,29 @@
> +Add support for cross compiling lua
> +
> +Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
> +
> +diff -ur rpm-5.4.9.orig/configure.ac rpm-5.4.9/configure.ac
> +--- rpm-5.4.9.orig/configure.ac        2012-05-16 12:16:36.589813548
-0500
> ++++ rpm-5.4.9/configure.ac     2012-05-16 12:26:01.070813518 -0500
> +@@ -120,6 +120,9 @@
> +
> + AC_PATH_PROG(AS, as, as)
> +
> ++CC_FOR_BUILD=${CC_FOR_BUILD-\$(CC)}
> ++AC_SUBST(CC_FOR_BUILD)
> ++
> + dnl # GCC specifics
> + AC_PROG_GCC_TRADITIONAL
> + AC_ARG_ENABLE(build-pic,
> +diff -ur rpm-5.4.9.orig/lua/Makefile.am rpm-5.4.9/lua/Makefile.am
> +--- rpm-5.4.9.orig/lua/Makefile.am     2012-04-07 19:15:25.000000000
-0500
> ++++ rpm-5.4.9/lua/Makefile.am  2012-05-16 12:26:19.556856688 -0500
> +@@ -40,7 +40,7 @@
> +
> + # --- bin2c doesn't need anything but a compiler
> + bin2c$(EXEEXT):  bin2c.c
> +-      $(CC) -o $@ $<
> ++      $(CC_FOR_BUILD) -o $@ $<
> +
> + liblua_la_SOURCES =
> + liblua_la_CFLAGS = @WITH_LUA_SUBDIR_DEF@
> diff --git a/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
b/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
> index e4db0e4..8a9e712 100644
> --- a/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
> +++ b/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
> @@ -12,10 +12,11 @@ Upstream-Status: Pending
>
>  Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
>
> -diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
> ---- rpm-5.4.0.orig/lib/psm.c   2010-12-29 07:42:11.000000000 -0600
> -+++ rpm-5.4.0/lib/psm.c        2011-11-08 13:38:48.132791154 -0600
> -@@ -792,6 +792,10 @@
> +Index: rpm-5.4.9/lib/psm.c
> +===================================================================
> +--- rpm-5.4.9.orig/lib/psm.c
> ++++ rpm-5.4.9/lib/psm.c
> +@@ -801,6 +801,10 @@ static rpmRC runScript(rpmpsm psm, Heade
>      int xx;
>      int i;
>
> @@ -26,23 +27,23 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>      if (psm->sstates != NULL && ix >= 0 && ix < RPMSCRIPT_MAX)
>        ssp = psm->sstates + ix;
>      if (ssp != NULL)
> -@@ -858,14 +862,29 @@
> +@@ -867,14 +871,29 @@ assert(he->p.str != NULL);
>                (F_ISSET(psm, UNORDERED) ? "a" : ""));
>
>      if (Phe->p.argv == NULL) {
> --      argv = alloca(5 * sizeof(*argv));
> +-      argv = (const char **) alloca(5 * sizeof(*argv));
>  -      argv[0] = "/bin/sh";
>  -      argc = 1;
> -+      argv = alloca(7 * sizeof(*argv));
> ++      argv = (const char **) alloca(7 * sizeof(*argv));
>  +      argc = 0;
>  +    } else {
> -+      argv = alloca((Phe->c + 6) * sizeof(*argv));
> ++      argv = (const char **) alloca((Phe->c + 6) * sizeof(*argv));
>  +      argc = 0;
>  +    }
>  +
>  +#ifdef RPM_VENDOR_POKY
>  +    if (scriptletWrapper && *scriptletWrapper) {
> -+        argv[argc++] = scriptletWrapper;
> ++      argv[argc++] = scriptletWrapper;
>  +      argv[argc] = rpmtsRootDir(ts);
>  +      if (!argv[argc] || !*argv[argc])
>  +         argv[argc] = "/";
> @@ -51,10 +52,10 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>  +#endif
>  +
>  +    if (Phe->p.argv == NULL) {
> -+        argv[argc++] = "/bin/sh";
> ++      argv[argc++] = "/bin/sh";
>        ldconfig_done = 0;
>      } else {
> --      argv = alloca((Phe->c + 4) * sizeof(*argv));
> +-      argv = (const char **) alloca((Phe->c + 4) * sizeof(*argv));
>  -      memcpy(argv, Phe->p.argv, Phe->c * sizeof(*argv));
>  -      argc = Phe->c;
>  +      memcpy((argv + argc), Phe->p.argv, Phe->c * sizeof(*argv));
> @@ -62,7 +63,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>        ldconfig_done = (ldconfig_path && !strcmp(argv[0], ldconfig_path)
>                ? 1 : 0);
>      }
> -@@ -916,7 +935,12 @@
> +@@ -925,7 +944,12 @@ assert(he->p.str != NULL);
>            goto exit;
>
>        if (rpmIsDebug() &&
> @@ -76,7 +77,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>        {
>            static const char set_x[] = "set -x\n";
>            nw = Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd);
> -@@ -1051,12 +1075,22 @@
> +@@ -1060,12 +1084,22 @@ assert(he->p.str != NULL);
>
>        {   const char * rootDir = rpmtsRootDir(ts);
>            if (!rpmtsChrootDone(ts) && rootDir != NULL &&
> @@ -99,7 +100,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>            xx = Chdir("/");
>            rpmlog(RPMLOG_DEBUG, D_("%s: %s(%s)\texecv(%s) pid %d\n"),
>                        psm->stepName, sln, NVRA,
> -@@ -2961,6 +2995,13 @@
> +@@ -2977,6 +3011,13 @@ assert(psm->te != NULL);
>      case PSM_SCRIPT:  /* Run current package scriptlets. */
>        /* XXX running %verifyscript/%sanitycheck doesn't have psm->te */
>      { rpmtxn _parent = (psm && psm->te ? psm->te->txn : NULL);
> @@ -113,7 +114,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>        xx = rpmtxnBegin(rpmtsGetRdb(ts), _parent, NULL);
>        rc = runInstScript(psm);
>        if (rc)
> -@@ -2968,11 +3009,24 @@
> +@@ -2984,11 +3025,24 @@ assert(psm->te != NULL);
>        else
>             xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn);
>        rpmtsGetRdb(ts)->db_txn = NULL;
> @@ -138,7 +139,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c
>        break;
>      case PSM_IMMED_TRIGGERS:
>        /* Run triggers in this package other package(s) set off. */
> -@@ -2982,7 +3036,18 @@
> +@@ -2998,7 +3052,18 @@ assert(psm->te != NULL);
>            F_SET(psm, GOTTRIGGERS);
>        }
>        if (psm->triggers != NULL)
> diff --git a/meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch
b/meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch
> index 1667901..f29866b 100644
> --- a/meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch
> +++ b/meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch
> @@ -16,20 +16,20 @@ RP 2012/2/7
>  2 files changed, 152 insertions(+), 1 deletions(-)
>  create mode 100644 tools/rpmdeps-oecore.c
>
> -diff --git a/tools/Makefile.am b/tools/Makefile.am
> -index f520843..2eba9bf 100644
> ---- a/tools/Makefile.am
> -+++ b/tools/Makefile.am
> +Index: rpm-5.4.9/tools/Makefile.am
> +===================================================================
> +--- rpm-5.4.9.orig/tools/Makefile.am
> ++++ rpm-5.4.9/tools/Makefile.am
>  @@ -58,7 +58,7 @@ pkgbin_PROGRAMS =    \
>        @WITH_AUGEAS_AUGTOOL@ chroot cp @WITH_CUDF_CUDFTOOL@ find mtree \
>        @WITH_SEMANAGE_SEMODULE@ wget \
>        rpmcache rpmdigest rpmrepo rpmspecdump \
>  -      rpmcmp rpmdeps sqlite3 @WITH_KEYUTILS_RPMKEY@@WITH_LIBELF_DEBUGEDIT@
>  +      rpmcmp rpmdeps rpmdeps-oecore sqlite3 @WITH_KEYUTILS_RPMKEY@@WITH_LIBELF_DEBUGEDIT@
> - dist_man_MANS =               rpmgrep.1
> -
> - augtool_SOURCES =     augtool.c
> -@@ -155,6 +155,10 @@ rpmdeps_SOURCES = rpmdeps.c
> + if WITH_DB
> + pkgbin_PROGRAMS +=    dbconvert
> + endif
> +@@ -168,6 +168,10 @@ rpmdeps_SOURCES = rpmdeps.c
>  rpmdeps_LDFLAGS =     @LDFLAGS_STATIC@ $(LDFLAGS)
>  rpmdeps_LDADD =               $(RPM_LDADD_COMMON)
>
> @@ -40,11 +40,10 @@ index f520843..2eba9bf 100644
>  rpmdigest_SOURCES =   rpmdigest.c
>  rpmdigest_LDFLAGS =   @LDFLAGS_STATIC@ $(LDFLAGS)
>  rpmdigest_LDADD =     $(RPMIO_LDADD_COMMON)
> -diff --git a/tools/rpmdeps-oecore.c b/tools/rpmdeps-oecore.c
> -new file mode 100644
> -index 0000000..e646da9
> +Index: rpm-5.4.9/tools/rpmdeps-oecore.c
> +===================================================================
>  --- /dev/null
> -+++ b/tools/rpmdeps-oecore.c
> ++++ rpm-5.4.9/tools/rpmdeps-oecore.c
>  @@ -0,0 +1,147 @@
>  +#include "system.h"
>  +const char *__progname;
> @@ -193,6 +192,3 @@ index 0000000..e646da9
>  +    optCon = rpmcliFini(optCon);
>  +    return ec;
>  +}
> ---
> -1.7.4.1
> -
> diff --git a/meta/recipes-devtools/rpm/rpm_5.4.8.bbb/meta/recipes-devtools/rpm/
rpm_5.4.9.bb
> similarity index 82%
> rename from meta/recipes-devtools/rpm/rpm_5.4.8.bb
> rename to meta/recipes-devtools/rpm/rpm_5.4.9.bb
> index ac86ff3..6eba802 100644
> --- a/meta/recipes-devtools/rpm/rpm_5.4.8.bb
> +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> @@ -42,14 +42,12 @@ HOMEPAGE = "http://rpm5.org/"
>  LICENSE = "LGPLv2.1"
>  LIC_FILES_CHKSUM =
"file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
>
> -DEPENDS = "beecrypt bzip2 zlib db openssl elfutils expat libpcre attr
acl popt ${extrarpmdeps}"
> -extrarpmdeps = "python perl file"
> -extrarpmdeps_virtclass-native = "python-native file-native"
> -PR = "r39"
> +DEPENDS = "libpcre attr acl popt file"
> +PR = "r40"
>
>  # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It is
needed
>  # in order to extract the distribution SRPM into a format we can
extract...
> -SRC_URI = "
http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.8-0.20120401.src.rpm;extract=rpm-5.4.8.tar.gz\
> +SRC_URI = "
http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;extract=rpm-5.4.9.tar.gz\
>           file://rpm-log-auto-rm.patch \
>           file://rpm-db-reduce.patch \
>           file://perfile_rpmdeps.sh \
> @@ -70,10 +68,11 @@ SRC_URI = "
http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.8-0.20120401.src.rpm;ex
>           file://rpm-respect-arch.patch \
>           file://rpm-no-perl-urpm.patch \
>           file://rpm-macros.patch \
> +          file://rpm-lua.patch \
>          "
>
> -SRC_URI[md5sum] = "424b60bf2e0a624a218440d943861644"
> -SRC_URI[sha256sum] =
"56eb5033d4de98c217475fb34d466d551f8912959389e7854a806e2bd9e13380"
> +SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768"
> +SRC_URI[sha256sum] =
"bac7cc5bd9d0e8262fdc0099349924608da8f680f5cb243751f696552239dde8"
>
>  inherit autotools gettext
>
> @@ -83,63 +82,74 @@ acpaths = "-I ${S}/db/dist/aclocal -I
${S}/db/dist/aclocal_java"
>  rpm_macros =
"%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros"
>  rpm_macros_virtclass-native =
"%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:~/.oerpmmacros"
>
> -# Configure values taken from rpm.spec
> -WITH_BZIP2 = "--with-bzip2"
> +# sqlite lua tcl augeas nss gcrypt neon xz xar keyutils perl selinux
>
> -WITH_XZ = "--with-xz=none"
> +# Note: perl and sqlite w/o db specified does not currently work.
> +#       tcl, augeas, nss, gcrypt, xar and keyutils support is untested.
> +PACKAGECONFIG_virtclass-native ??= "db bzip2 zlib beecrypt openssl
libelf python"
> +PACKAGECONFIG ??= "db bzip2 zlib beecrypt openssl libelf python"
>
> -WITH_Z = "--with-zlib $WITH_BZIP2 $WITH_XZ"
> +PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2,"
> +PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz,"
> +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib,"
> +PACKAGECONFIG[xar] = "--with-xar,--without-xar,xar,"
>
> -WITH_PYTHON = "        --with-python=${PYTHON_BASEVERSION} \
> +WITH_PYTHON = " --with-python=${PYTHON_BASEVERSION} \
>
 --with-python-inc-dir=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \
>
 --with-python-lib-dir=${libdir}/python${PYTHON_BASEVERSION} \
> -               --without-pythonembed \
> -             "
> +               --without-pythonembed"
> +PACKAGECONFIG[python] = "${WITH_PYTHON},--without-python,python,"
>
>  # Perl modules are not built, but they could be enabled fairly easily
>  # the perl module creation and installation would need to be patched.
>  # (currently has host perl contamination issues)
> -#WITH_PERL = " --with-perl --without-perlembed"
> -WITH_PERL = "  --without-perl --without-perl-urpm"
> +WITH_PERL = "--with-perl --without-perlembed --without-perl-urpm"
> +WITHOUT_PERL = "--without-perl --without-perl-urpm"
> +PACKAGECONFIG[perl] = "${WITH_PERL},${WITHOUT_PERL},perl,"
>
> -WITH_PERL_virtclass-native = " --without-perl --without-perl-urpm"
> +# The --with-dbsql will only tell RPM to check for support, db
> +# may or may not be built w/ the dbsql support.
> +WITH_DB = "--with-db --with-dbsql --without-db-tools-integrated"
> +PACKAGECONFIG[db] = "${WITH_DB},--without-db,db,"
>
> -WITH_DB = "--with-db --with-dbsql --without-db-tools-integrated
--without-sqlite"
> +PACKAGECONFIG[sqlite] = "--with-sqlite,--without-sqlite,sqlite3,"
>
> -WITH_CRYPTO = "--with-beecrypt --with-openssl --without-nss
--without-gcrypt"
> +PACKAGECONFIG[beecrypt] = "--with-beecrypt,--without-beecrypt,beecrypt,"
> +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
> +PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss,"
> +PACKAGECONFIG[gcrypt] = "--with-gcrypt,--without-gcrypt,gcrypt,"
> +PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils,"
> +PACKAGECONFIG[libelf] = "--with-libelf,--without-libelf,elfutils,"
>
> -WITH_KEYUTILS = "--without-keyutils"
> -WITH_LIBELF = "--with-libelf"
> -WITH_SELINUX =--
> 1.7.3.4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20120611/96f5d784/attachment-0002.html>


More information about the Openembedded-core mailing list