[Buildroot] [PATCH v3 1/4] package/rpm: bump to version 4.12.0.1

Vicente Olivert Riera Vincent.Riera at imgtec.com
Fri Sep 4 11:22:31 UTC 2015


Dear James Knight,
On 09/03/2015 04:23 PM, James Knight wrote:
> The provided "bump" (suggested by Baruch Siach) switches from the rpm5
> implementation to rpm.org's more active stream.
> 
> Signed-off-by: James Knight <james.knight at rockwellcollins.com>
> ---
> Changes v2 -> v3:
>   - Cleanup configuration dependency to beecrypt/libnss; following
>      convention (suggested by Baruch Siach).
> 
> Changes v1 -> v2:
>   - Package change introduced in change set 2.
> ---
>  package/rpm/0002-depends-fix.patch           |  19 ---
>  package/rpm/0003-exclude-some-tools.patch    |  30 ----
>  package/rpm/0004-ignore-shared-mutexes.patch |  12 --
>  package/rpm/0005-no-parentdirs.patch         |  14 --
>  package/rpm/0006-ordering-fix.patch          |  45 -----
>  package/rpm/0007-parentdir-vs-requires.patch |  37 -----
>  package/rpm/0008-short-circuit-c99.patch     | 235 ---------------------------
>  package/rpm/Config.in                        |  23 ++-
>  package/rpm/rpm.hash                         |   2 +-
>  package/rpm/rpm.mk                           |  93 ++++++-----
>  10 files changed, 70 insertions(+), 440 deletions(-)
>  delete mode 100644 package/rpm/0002-depends-fix.patch
>  delete mode 100644 package/rpm/0003-exclude-some-tools.patch
>  delete mode 100644 package/rpm/0004-ignore-shared-mutexes.patch
>  delete mode 100644 package/rpm/0005-no-parentdirs.patch
>  delete mode 100644 package/rpm/0006-ordering-fix.patch
>  delete mode 100644 package/rpm/0007-parentdir-vs-requires.patch
>  delete mode 100644 package/rpm/0008-short-circuit-c99.patch
> 
> diff --git a/package/rpm/0002-depends-fix.patch b/package/rpm/0002-depends-fix.patch
> deleted file mode 100644
> index 4a92775..0000000
> --- a/package/rpm/0002-depends-fix.patch
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -Bugfix included upstream
> -
> -diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_depends-fix/lib/depends.c
> ---- rpm-5.2.0_vanilla/lib/depends.c	2009-05-23 01:23:46.000000000 +0000
> -+++ rpm-5.2.0_depends-fix/lib/depends.c	2009-09-22 06:33:37.950783501 +0000
> -@@ -2371,11 +2371,11 @@
> - 
> - 	memset(selected, 0, sizeof(*selected) * ts->orderCount);
> - 
> --      if ((requires = rpmteDS(p, RPMTAG_REQUIRENAME)) != NULL) {
> --
> - 	/* Avoid narcisstic relations. */
> - 	selected[rpmtsiOc(pi)] = 1;
> - 
> -+      if ((requires = rpmteDS(p, RPMTAG_REQUIRENAME)) != NULL) {
> -+
> - 	/* T2. Next "q <- p" relation. */
> - 
> - 	/* First, do pre-requisites. */
> diff --git a/package/rpm/0003-exclude-some-tools.patch b/package/rpm/0003-exclude-some-tools.patch
> deleted file mode 100644
> index 2cbc7cb..0000000
> --- a/package/rpm/0003-exclude-some-tools.patch
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -diff -ru rpm-5.2.0_vanilla/tools/Makefile.am rpm-5.2.0_exclude-some-tools/tools/Makefile.am
> ---- rpm-5.2.0_vanilla/tools/Makefile.am	2009-06-03 01:24:42.000000000 +0000
> -+++ rpm-5.2.0_exclude-some-tools/tools/Makefile.am	2009-12-20 07:47:13.000000000 +0000
> -@@ -45,9 +45,7 @@
> - bin_PROGRAMS =		rpm2cpio
> - 
> - pkgbindir =		@USRLIBRPM@/bin
> --pkgbin_PROGRAMS =	\
> --	rpmcache rpmdigest grep mtree rpmrepo rpmspecdump wget \
> --	rpmcmp rpmdeps @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@
> -+pkgbin_PROGRAMS =	
> - dist_man_MANS =		rpmgrep.1
> - 
> - debugedit_SOURCES =	debugedit.c hashtab.c
> -diff -ru rpm-5.2.0_vanilla/tools/Makefile.in rpm-5.2.0_exclude-some-tools/tools/Makefile.in
> ---- rpm-5.2.0_vanilla/tools/Makefile.in	2009-07-07 21:14:06.000000000 +0000
> -+++ rpm-5.2.0_exclude-some-tools/tools/Makefile.in	2009-12-20 07:47:37.000000000 +0000
> -@@ -39,11 +39,7 @@
> - target_triplet = @target@
> - EXTRA_PROGRAMS = rpmkey$(EXEEXT) debugedit$(EXEEXT)
> - bin_PROGRAMS = rpm2cpio$(EXEEXT)
> --pkgbin_PROGRAMS = rpmcache$(EXEEXT) rpmdigest$(EXEEXT) grep$(EXEEXT) \
> --	mtree$(EXEEXT) rpmrepo$(EXEEXT) rpmspecdump$(EXEEXT) \
> --	wget$(EXEEXT) rpmcmp$(EXEEXT) rpmdeps$(EXEEXT) \
> --	@WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ $(am__EXEEXT_1) \
> --	$(am__EXEEXT_2)
> -+pkgbin_PROGRAMS = 
> - @WITH_XAR_TRUE at am__append_1 = txar
> - @WITH_DB_INTERNAL_TRUE@@WITH_DB_TOOLS_INTEGRATED_TRUE at am__append_2 = db_tool
> - @WITH_DB_INTERNAL_TRUE@@WITH_DB_RPC_TRUE@@WITH_DB_TOOLS_INTEGRATED_TRUE at am__append_3 = \
> diff --git a/package/rpm/0004-ignore-shared-mutexes.patch b/package/rpm/0004-ignore-shared-mutexes.patch
> deleted file mode 100644
> index f19d6b6..0000000
> --- a/package/rpm/0004-ignore-shared-mutexes.patch
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -diff -ru rpm-5.2.0_vanilla/db/env/env_open.c rpm-5.2.0_test/db/env/env_open.c
> ---- rpm-5.2.0_vanilla/db/env/env_open.c	2008-05-28 01:23:27.000000000 +0000
> -+++ rpm-5.2.0_test/db/env/env_open.c	2009-12-24 14:54:55.000000000 +0000
> -@@ -124,7 +124,7 @@
> - 		}
> - 	}
> - 
> --#ifdef HAVE_MUTEX_THREAD_ONLY
> -+#ifdef NK_HAVE_MUTEX_THREAD_ONLY
> - 	/*
> - 	 * Currently we support one kind of mutex that is intra-process only,
> - 	 * POSIX 1003.1 pthreads, because a variety of systems don't support
> diff --git a/package/rpm/0005-no-parentdirs.patch b/package/rpm/0005-no-parentdirs.patch
> deleted file mode 100644
> index d05c99a..0000000
> --- a/package/rpm/0005-no-parentdirs.patch
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -Reduce parentdirs we use, parentdirs are used for ordering
> -Included upstream
> -diff -u --new-file --recursive rpm-5.1.9_vanilla/lib/depends.c rpm-5.1.9_no-parentdirs/lib/depends.c
> ---- rpm-5.1.9_vanilla/lib/depends.c	2009-04-12 19:46:17.000000000 +0000
> -+++ rpm-5.1.9_no-parentdirs/lib/depends.c	2009-06-13 15:21:43.504999639 +0000
> -@@ -2257,7 +2257,7 @@
> - #define isAuto(_x)	((_x) & _autobits)
> - 
> - /*@unchecked@*/
> --static int slashDepth = 100;	/* #slashes pemitted in parentdir deps. */
> -+static int slashDepth = 2;	/* #slashes pemitted in parentdir deps. */
> - 
> - static int countSlashes(const char * dn)
> - 	/*@*/
> diff --git a/package/rpm/0006-ordering-fix.patch b/package/rpm/0006-ordering-fix.patch
> deleted file mode 100644
> index a618e1f..0000000
> --- a/package/rpm/0006-ordering-fix.patch
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -Included upstream
> ---- x/lib/depends.c	2009/05/15 13:40:58	1.445
> -+++ y/lib/depends.c	2009/08/22 22:12:02	1.446
> -@@ -2216,9 +2216,6 @@
> - {
> -     rpmte q, qprev;
> - 
> --    /* Mark the package as queued. */
> --    rpmteTSI(p)->tsi_queued = 1;
> --
> -     if ((*rp) == NULL) {	/* 1st element */
> - 	/*@-dependenttrans@*/ /* FIX: double indirection */
> - 	(*rp) = (*qp) = p;
> -@@ -2238,6 +2235,12 @@
> - 	/* XXX Insure removed after added. */
> - 	if (rpmteType(p) == TR_REMOVED && rpmteType(p) != rpmteType(q))
> - 	    continue;
> -+
> -+	/* XXX Follow all previous generations in the queue. */
> -+	if (rpmteTSI(p)->tsi_queued > rpmteTSI(q)->tsi_queued)
> -+	    continue;
> -+
> -+	/* XXX Within a generation, queue behind more "important". */
> - 	if (rpmteTSI(q)->tsi_qcnt <= rpmteTSI(p)->tsi_qcnt)
> - 	    break;
> -     }
> -@@ -2521,6 +2524,9 @@
> - 
> - 	if (rpmteTSI(p)->tsi_count != 0)
> - 	    continue;
> -+
> -+	/* Mark the package as queued. */
> -+	rpmteTSI(p)->tsi_queued = orderingCount + 1;
> - 	rpmteTSI(p)->tsi_suc = NULL;
> - 	addQ(p, &q, &r, prefcolor);
> - 	qlen++;
> -@@ -2584,6 +2590,8 @@
> - 		(void) rpmteSetParent(p, q);
> - 		(void) rpmteSetDegree(q, rpmteDegree(q)+1);
> - 
> -+		/* Mark the package as queued. */
> -+		rpmteTSI(p)->tsi_queued = orderingCount + 1;
> - 		/* XXX TODO: add control bit. */
> - 		rpmteTSI(p)->tsi_suc = NULL;
> - /*@-nullstate@*/	/* XXX FIX: rpmteTSI(q)->tsi_suc can be NULL. */
> diff --git a/package/rpm/0007-parentdir-vs-requires.patch b/package/rpm/0007-parentdir-vs-requires.patch
> deleted file mode 100644
> index 309ab25..0000000
> --- a/package/rpm/0007-parentdir-vs-requires.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -Avoid looking up files or directories that this package provides
> -Included upstream
> -diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_parentdir-vs-requires/lib/depends.c
> ---- rpm-5.2.0_vanilla/lib/depends.c	2009-05-23 01:23:46.000000000 +0000
> -+++ rpm-5.2.0_parentdir-vs-requires/lib/depends.c	2009-09-22 17:00:24.880956271 +0000
> -@@ -2095,6 +2095,7 @@
> -     rpmtsi qi; rpmte q;
> -     tsortInfo tsi;
> -     nsType NSType = rpmdsNSType(requires);
> -+    const char * N = rpmdsN(requires);
> -     fnpyKey key;
> -     int teType = rpmteType(p);
> -     alKey pkgKey;
> -@@ -2128,6 +2129,23 @@
> - 	break;
> -     }
> - 
> -+    /* Avoid looking up files/directories that are "owned" by _THIS_ package. */
> -+    if (*N == '/') {
> -+    rpmfi fi = rpmteFI(p, RPMTAG_BASENAMES);
> -+    int bingo = 0;
> -+
> -+    fi = rpmfiInit(fi, 0);
> -+    while (rpmfiNext(fi) >= 0) {
> -+        const char * fn = rpmfiFN(fi);
> -+        if (strcmp(N, fn))
> -+        continue;
> -+        bingo = 1;
> -+        break;
> -+    }
> -+    if (bingo)
> -+        return 0;
> -+    }
> -+
> -     pkgKey = RPMAL_NOMATCH;
> -     key = rpmalSatisfiesDepend(al, requires, &pkgKey);
> - 
> diff --git a/package/rpm/0008-short-circuit-c99.patch b/package/rpm/0008-short-circuit-c99.patch
> deleted file mode 100644
> index 5d7b53a..0000000
> --- a/package/rpm/0008-short-circuit-c99.patch
> +++ /dev/null
> @@ -1,235 +0,0 @@
> -Buildroot specific
> -diff -ru rpm-5.1.9_vanilla/xz/configure rpm-5.1.9_short-circuit-c99/xz/configure
> ---- rpm-5.1.9_vanilla/xz/configure	2009-04-18 16:47:23.000000000 +0000
> -+++ rpm-5.1.9_short-circuit-c99/xz/configure	2009-08-04 08:25:59.000000000 +0000
> -@@ -4970,214 +4970,7 @@
> -   am__fastdepCC_FALSE=
> - fi
> - 
> --
> --   { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
> --$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
> --if test "${ac_cv_prog_cc_c99+set}" = set; then
> --  $as_echo_n "(cached) " >&6
> --else
> --  ac_cv_prog_cc_c99=no
> --ac_save_CC=$CC
> --cat >conftest.$ac_ext <<_ACEOF
> --/* confdefs.h.  */
> --_ACEOF
> --cat confdefs.h >>conftest.$ac_ext
> --cat >>conftest.$ac_ext <<_ACEOF
> --/* end confdefs.h.  */
> --#include <stdarg.h>
> --#include <stdbool.h>
> --#include <stdlib.h>
> --#include <wchar.h>
> --#include <stdio.h>
> --
> --// Check varargs macros.  These examples are taken from C99 6.10.3.5.
> --#define debug(...) fprintf (stderr, __VA_ARGS__)
> --#define showlist(...) puts (#__VA_ARGS__)
> --#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
> --static void
> --test_varargs_macros (void)
> --{
> --  int x = 1234;
> --  int y = 5678;
> --  debug ("Flag");
> --  debug ("X = %d\n", x);
> --  showlist (The first, second, and third items.);
> --  report (x>y, "x is %d but y is %d", x, y);
> --}
> --
> --// Check long long types.
> --#define BIG64 18446744073709551615ull
> --#define BIG32 4294967295ul
> --#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
> --#if !BIG_OK
> --  your preprocessor is broken;
> --#endif
> --#if BIG_OK
> --#else
> --  your preprocessor is broken;
> --#endif
> --static long long int bignum = -9223372036854775807LL;
> --static unsigned long long int ubignum = BIG64;
> --
> --struct incomplete_array
> --{
> --  int datasize;
> --  double data[];
> --};
> --
> --struct named_init {
> --  int number;
> --  const wchar_t *name;
> --  double average;
> --};
> --
> --typedef const char *ccp;
> --
> --static inline int
> --test_restrict (ccp restrict text)
> --{
> --  // See if C++-style comments work.
> --  // Iterate through items via the restricted pointer.
> --  // Also check for declarations in for loops.
> --  for (unsigned int i = 0; *(text+i) != '\0'; ++i)
> --    continue;
> --  return 0;
> --}
> --
> --// Check varargs and va_copy.
> --static void
> --test_varargs (const char *format, ...)
> --{
> --  va_list args;
> --  va_start (args, format);
> --  va_list args_copy;
> --  va_copy (args_copy, args);
> --
> --  const char *str;
> --  int number;
> --  float fnumber;
> --
> --  while (*format)
> --    {
> --      switch (*format++)
> --	{
> --	case 's': // string
> --	  str = va_arg (args_copy, const char *);
> --	  break;
> --	case 'd': // int
> --	  number = va_arg (args_copy, int);
> --	  break;
> --	case 'f': // float
> --	  fnumber = va_arg (args_copy, double);
> --	  break;
> --	default:
> --	  break;
> --	}
> --    }
> --  va_end (args_copy);
> --  va_end (args);
> --}
> --
> --int
> --main ()
> --{
> --
> --  // Check bool.
> --  _Bool success = false;
> --
> --  // Check restrict.
> --  if (test_restrict ("String literal") == 0)
> --    success = true;
> --  char *restrict newvar = "Another string";
> --
> --  // Check varargs.
> --  test_varargs ("s, d' f .", "string", 65, 34.234);
> --  test_varargs_macros ();
> --
> --  // Check flexible array members.
> --  struct incomplete_array *ia =
> --    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
> --  ia->datasize = 10;
> --  for (int i = 0; i < ia->datasize; ++i)
> --    ia->data[i] = i * 1.234;
> --
> --  // Check named initializers.
> --  struct named_init ni = {
> --    .number = 34,
> --    .name = L"Test wide string",
> --    .average = 543.34343,
> --  };
> --
> --  ni.number = 58;
> --
> --  int dynamic_array[ni.number];
> --  dynamic_array[ni.number - 1] = 543;
> --
> --  // work around unused variable warnings
> --  return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
> --	  || dynamic_array[ni.number - 1] != 543);
> --
> --  ;
> --  return 0;
> --}
> --_ACEOF
> --for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
> --do
> --  CC="$ac_save_CC $ac_arg"
> --  rm -f conftest.$ac_objext
> --if { (ac_try="$ac_compile"
> --case "(($ac_try" in
> --  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> --  *) ac_try_echo=$ac_try;;
> --esac
> --eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
> --$as_echo "$ac_try_echo") >&5
> --  (eval "$ac_compile") 2>conftest.er1
> --  ac_status=$?
> --  grep -v '^ *+' conftest.er1 >conftest.err
> --  rm -f conftest.er1
> --  cat conftest.err >&5
> --  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
> --  (exit $ac_status); } && {
> --	 test -z "$ac_c_werror_flag" ||
> --	 test ! -s conftest.err
> --       } && test -s conftest.$ac_objext; then
> --  ac_cv_prog_cc_c99=$ac_arg
> --else
> --  $as_echo "$as_me: failed program was:" >&5
> --sed 's/^/| /' conftest.$ac_ext >&5
> --
> --
> --fi
> --
> --rm -f core conftest.err conftest.$ac_objext
> --  test "x$ac_cv_prog_cc_c99" != "xno" && break
> --done
> --rm -f conftest.$ac_ext
> --CC=$ac_save_CC
> --
> --fi
> --# AC_CACHE_VAL
> --case "x$ac_cv_prog_cc_c99" in
> --  x)
> --    { $as_echo "$as_me:$LINENO: result: none needed" >&5
> --$as_echo "none needed" >&6; } ;;
> --  xno)
> --    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
> --$as_echo "unsupported" >&6; } ;;
> --  *)
> --    CC="$CC $ac_cv_prog_cc_c99"
> --    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5
> --$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
> --esac
> --
> --
> --
> --if test x$ac_cv_prog_cc_c99 = xno ; then
> --	{ { $as_echo "$as_me:$LINENO: error: No C99 compiler was found." >&5
> --$as_echo "$as_me: error: No C99 compiler was found." >&2;}
> --   { (exit 1); exit 1; }; }
> --fi
> -+CC="$CC -std=c99"
> - 
> - if test "x$CC" != xcc; then
> -   { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
> -diff -ru rpm-5.1.9_vanilla/xz/configure.ac rpm-5.1.9_short-circuit-c99/xz/configure.ac
> ---- rpm-5.1.9_vanilla/xz/configure.ac	2009-02-16 17:07:46.000000000 +0000
> -+++ rpm-5.1.9_short-circuit-c99/xz/configure.ac	2009-08-04 08:25:28.000000000 +0000
> -@@ -402,10 +402,7 @@
> - AM_INIT_AUTOMAKE([1.10 foreign tar-v7 filename-length-max=99])
> - AC_PROG_LN_S
> - 
> --AC_PROG_CC_C99
> --if test x$ac_cv_prog_cc_c99 = xno ; then
> --	AC_MSG_ERROR([No C99 compiler was found.])
> --fi
> -+CC="$CC -std=c99"
> - 
> - AM_PROG_CC_C_O
> - AM_PROG_AS
> diff --git a/package/rpm/Config.in b/package/rpm/Config.in
> index c6fc3b7..eee4c30 100644
> --- a/package/rpm/Config.in
> +++ b/package/rpm/Config.in
> @@ -6,16 +6,23 @@ config BR2_PACKAGE_RPM
>  	bool "rpm"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # beecrypt
>  	depends on BR2_USE_MMU # fork()
> -	select BR2_PACKAGE_BEECRYPT
> +	select BR2_PACKAGE_BEECRYPT if !BR2_PACKAGE_LIBNSS
> +	select BR2_PACKAGE_BERKELEYDB
> +	select BR2_PACKAGE_FILE
>  	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
> -	select BR2_PACKAGE_NEON
> -	select BR2_PACKAGE_NEON_SSL
> -	select BR2_PACKAGE_NEON_XML
> -	select BR2_PACKAGE_NEON_ZLIB
> -	select BR2_PACKAGE_OPENSSL
>  	select BR2_PACKAGE_POPT
>  	select BR2_PACKAGE_ZLIB
>  	help
> -	  The RPM package management system.
> +	  The RPM Package Manager (RPM).
>  
> -	  http://rpm5.org
> +	  http://www.rpm.org/
> +
> +if BR2_PACKAGE_RPM
> +
> +config BR2_PACKAGE_RPM_LUA
> +	bool "lua support"
> +	select BR2_PACKAGE_LUA
> +	help
> +	  Enable Lua support.
> +
> +endif
> diff --git a/package/rpm/rpm.hash b/package/rpm/rpm.hash
> index 0665746..b69fcef 100644
> --- a/package/rpm/rpm.hash
> +++ b/package/rpm/rpm.hash
> @@ -1,2 +1,2 @@
>  # Locally calculated
> -sha256	34a959c0ed670cadcdc52c6025e822fac6f5d1015e3b75123f53ebe53b923e98	rpm-5.2.0.tar.gz
> +sha256	77ddd228fc332193c874aa0b424f41db1ff8b7edbb6a338703ef747851f50229	rpm-4.12.0.1.tar.bz2
> diff --git a/package/rpm/rpm.mk b/package/rpm/rpm.mk
> index 7f346b2..adf408e 100644
> --- a/package/rpm/rpm.mk
> +++ b/package/rpm/rpm.mk
> @@ -4,61 +4,76 @@
>  #
>  ################################################################################
>  
> -RPM_VERSION_MAJOR = 5.2
> -RPM_VERSION = $(RPM_VERSION_MAJOR).0
> -RPM_SITE = http://rpm5.org/files/rpm/rpm-$(RPM_VERSION_MAJOR)
> -RPM_DEPENDENCIES = host-pkgconf zlib beecrypt neon popt openssl
> -RPM_LICENSE = LGPLv2.1
> -RPM_LICENSE_FILES = COPYING.LIB
> +RPM_VERSION_MAJOR = 4.12
> +RPM_VERSION = $(RPM_VERSION_MAJOR).0.1
> +RPM_SOURCE = rpm-$(RPM_VERSION).tar.bz2
> +RPM_SITE = http://rpm.org/releases/rpm-$(RPM_VERSION_MAJOR).x
> +RPM_DEPENDENCIES = host-pkgconf berkeleydb file popt zlib
> +RPM_LICENSE = GPLv2
> +RPM_LICENSE_FILES = COPYING
>  
> -RPM_CONF_ENV = \
> -	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/beecrypt -I$(STAGING_DIR)/usr/include/neon -DHAVE_MUTEX_THREAD_ONLY" \
> -	ac_cv_va_copy=yes
> -
> -RPM_CONF_OPTS = \
> -	--disable-build-versionscript \
> +RPM_CONF_OPTS += \
> +	--disable-largefile \
>  	--disable-rpath \
> -	--without-selinux \
> -	--without-python \
> -	--without-perl \
> -	--with-openssl=external \
> -	--with-zlib=external \
> -	--with-libbeecrypt=$(STAGING_DIR) \
> -	--with-popt=external
> +	--enable-python=no \
> +	--with-external-db \
> +	--with-gnu-ld \
> +	--without-hackingdocs
>  
> -ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
> -RPM_DEPENDENCIES += gettext
> +ifeq ($(BR2_PACKAGE_ACL),y)
> +RPM_DEPENDENCIES += acl
> +RPM_CONF_OPTS += --with-acl
> +else
> +RPM_CONF_OPTS += --without-acl
>  endif
>  
> -ifeq ($(BR2_PACKAGE_PCRE),y)
> -RPM_DEPENDENCIES += pcre
> -RPM_CONF_OPTS += --with-pcre=external
> +ifeq ($(BR2_PACKAGE_BEECRYPT),y)
> +RPM_DEPENDENCIES += beecrypt
> +RPM_CONF_OPTS += --with-beecrypt
> +RPM_CONFIGURATION += -I$(STAGING_DIR)/usr/include/beecrypt
>  else
> -RPM_CONF_OPTS += --with-pcre=none
> +RPM_DEPENDENCIES += libnss
> +RPM_CONF_OPTS += --without-beecrypt
> +RPM_CONFIGURATION += \
> +	-I$(STAGING_DIR)/usr/include/nss -I$(STAGING_DIR)/usr/include/nspr
>  endif
>  
> -ifeq ($(BR2_PACKAGE_FILE),y)
> -RPM_DEPENDENCIES += file
> -RPM_CONF_OPTS += --with-file=external
> +ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
> +RPM_DEPENDENCIES += gettext
> +RPM_CONF_OPTS += --with-libintl-prefix=$(STAGING_DIR)/usr
>  else
> -RPM_CONF_OPTS += --with-file=none
> +RPM_CONF_OPTS += --without-libintl-prefix
>  endif
>  
> -# xz payload support needs a toolchain w/ C++
> -ifeq ($(BR2_PACKAGE_XZ)$(BR2_INSTALL_LIBSTDCPP),yy)
> -RPM_DEPENDENCIES += xz
> -RPM_CONF_OPTS += --with-xz=external
> +ifeq ($(BR2_PACKAGE_LIBARCHIVE),y)
> +RPM_DEPENDENCIES += libarchive
> +RPM_CONF_OPTS += --with-archive
>  else
> -RPM_CONF_OPTS += --with-xz=none
> +RPM_CONF_OPTS += --without-archive
>  endif
>  
> -ifeq ($(BR2_PACKAGE_BZIP2),y)
> -RPM_CONF_OPTS += --with-bzip2
> -RPM_DEPENDENCIES += bzip2
> +#ifeq ($(BR2_PACKAGE_LIBCAP),y)
> +RPM_DEPENDENCIES += libcap
> +RPM_CONF_OPTS += --with-cap
> +#else
> +RPM_CONF_OPTS += --without-cap
> +#endif
> +
> +ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
> +RPM_DEPENDENCIES += libselinux
> +RPM_CONF_OPTS += --with-selinux
> +else
> +RPM_CONF_OPTS += --without-selinux
>  endif
>  
> -RPM_MAKE = $(MAKE1)
> +ifeq ($(BR2_PACKAGE_RPM_LUA),y)
> +RPM_DEPENDENCIES += lua
> +RPM_CONF_OPTS += --with-lua
> +else
> +RPM_CONF_OPTS += --without-lua
> +endif
>  
> -RPM_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) program_transform_name= install
> +RPM_CONF_ENV += \
> +	CFLAGS="$(TARGET_CFLAGS) $(RPM_CONFIGURATION)"
>  
>  $(eval $(autotools-package))
> 

Tested-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>

Compile test for MIPS architecture:

$ grep ^RPM_VERSION package/rpm/rpm.mk
RPM_VERSION_MAJOR = 4.12
RPM_VERSION = $(RPM_VERSION_MAJOR).0.1

$ file output/target/bin/rpm
output/target/bin/rpm: ELF 32-bit MSB executable, MIPS, MIPS32 rel2
version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux
2.6.32, with unknown capability 0x41000000 = 0xf676e75, with unknown
capability 0x10000 = 0x70401, stripped

Regards,

Vincent.


More information about the buildroot mailing list