rpm: Uprev to rpm-5.4.16 (pre) and rpm-5.4+cvs to current CVS head

meta/lib/oe/package_manager.py was also updated.  This ensures that any
diagnostic messages are ignored from the output of rpmresolve.

The patches have been split into bug fixes (things that belong upstream)
and local changes that are OE specific.

The following patches are obsolete and have been removed:

rpm-remove-sykcparse-decl.patch
fstack-protector-configure-check.patch
rpm-disable-Wno-override-init.patch
rpm-lua-fix-print.patch
rpm-rpmpgp-fix.patch
verify-fix-broken-logic-for-ghost-avoidance-Mark-Hat.patch

(From OE-Core rev: ee97e53fcceabc6ef4ddc68f38c5fa0e05c5d9a8)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle
2016-02-23 11:28:21 -06:00
committed by Richard Purdie
parent a27ca6da59
commit 007c284cb8
38 changed files with 2226 additions and 535 deletions

View File

@@ -418,11 +418,15 @@ class RpmPkgsList(PkgsList):
# Populate deps dictionary for better manipulation
for line in dependencies.splitlines():
pkg, dep = line.split("|")
if not pkg in deps:
deps[pkg] = list()
if not dep in deps[pkg]:
deps[pkg].append(dep)
try:
pkg, dep = line.split("|")
if not pkg in deps:
deps[pkg] = list()
if not dep in deps[pkg]:
deps[pkg].append(dep)
except:
# Ignore any other lines they're debug or errors
pass
for line in tmp_output.split('\n'):
if len(line.strip()) == 0:

View File

@@ -15,34 +15,36 @@ Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/tools/debugedit.c
Index: rpm/tools/debugedit.c
===================================================================
--- rpm-5.4.14.orig/tools/debugedit.c
+++ rpm-5.4.14/tools/debugedit.c
@@ -1445,21 +1445,24 @@ handle_build_id (DSO *dso, Elf_Data *bui
auto inline void process (const void *data, size_t size)
{
memchunk chunk = { .data = (void *) data, .size = size };
- hashFunctionContextUpdateMC (&ctx, &chunk);
+ if (data != NULL && size != 0)
+ hashFunctionContextUpdateMC (&ctx, &chunk);
}
union
{
--- rpm.orig/tools/debugedit.c
+++ rpm/tools/debugedit.c
@@ -1403,7 +1403,8 @@ static inline void process (hashFunction
const void *data, size_t size)
{
memchunk chunk = { .data = (void *) data, .size = size };
- hashFunctionContextUpdateMC (ctx, &chunk);
+ if (data != NULL && size != 0)
+ hashFunctionContextUpdateMC (ctx, &chunk);
}
/* Compute a fresh build ID bit-string from the editted file contents. */
@@ -1456,14 +1457,16 @@ handle_build_id (DSO *dso, Elf_Data *bui
GElf_Ehdr ehdr;
GElf_Phdr phdr;
GElf_Shdr shdr;
- } u;
- Elf_Data x = { .d_version = EV_CURRENT, .d_buf = &u };
+ } u1, u2;
+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 };
+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 };
-
- x.d_type = ELF_T_EHDR;
- x.d_size = sizeof u.ehdr;
- u.ehdr = dso->ehdr;
- u.ehdr.e_phoff = u.ehdr.e_shoff = 0;
- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL)
+ } u1, u2;
+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 };
+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 };
+
+ src.d_type = ELF_T_EHDR;
+ src.d_size = sizeof u1.ehdr;
+ dest.d_size = sizeof u2.ehdr;
@@ -52,7 +54,7 @@ Index: rpm-5.4.14/tools/debugedit.c
{
bad:
fprintf (stderr, "Failed to compute header checksum: %s\n",
@@ -1467,29 +1470,31 @@ handle_build_id (DSO *dso, Elf_Data *bui
@@ -1471,29 +1474,31 @@ handle_build_id (DSO *dso, Elf_Data *bui
exit (1);
}
@@ -69,8 +71,8 @@ Index: rpm-5.4.14/tools/debugedit.c
- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL)
+ if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL)
goto bad;
- process (x.d_buf, x.d_size);
+ process (dest.d_buf, dest.d_size);
- process (&ctx, x.d_buf, x.d_size);
+ process (&ctx, dest.d_buf, dest.d_size);
}
- x.d_type = ELF_T_SHDR;
@@ -88,8 +90,8 @@ Index: rpm-5.4.14/tools/debugedit.c
+ u1.shdr.sh_offset = 0;
+ if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL)
goto bad;
- process (x.d_buf, x.d_size);
+ process (dest.d_buf, dest.d_size);
- process (&ctx, x.d_buf, x.d_size);
+ process (&ctx, dest.d_buf, dest.d_size);
- if (u.shdr.sh_type != SHT_NOBITS)
+ if (u1.shdr.sh_type != SHT_NOBITS)

View File

@@ -1,21 +0,0 @@
Some options checked in this loop are needing linking to find out
if the option can be used or not e.g. -fstack-protector which needs
libssp to be staged and available for compiler to link against
Therefore we change the compile only check to compile and link check
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: rpm-5.4.14/configure.ac
===================================================================
--- rpm-5.4.14.orig/configure.ac
+++ rpm-5.4.14/configure.ac
@@ -201,7 +201,7 @@ dnl # GNU GCC (usually "gcc")
my_save_cflags="$CFLAGS"
CFLAGS=$c
AC_MSG_CHECKING([whether GCC supports $c])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
[AC_MSG_RESULT([yes])]
[my_cflags=$c],
[AC_MSG_RESULT([no])]

View File

@@ -1,5 +1,15 @@
Update two rpm headers to include other headers.
Using rpmdb.h w/o including errno.h may result in a warning.
Using rpmtag.h w/o also adding stdint.h will result in numerous failures
about unknown types on modern compilers.
Upstream-Status: Pending
Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/rpmdb/rpmdb.h
===================================================================
--- rpm-5.4.14.orig/rpmdb/rpmdb.h

View File

@@ -0,0 +1,27 @@
popt: Disable default stack protection on internal version of popt
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/popt/configure.ac
===================================================================
--- rpm-5.4.15.orig/popt/configure.ac
+++ rpm-5.4.15/popt/configure.ac
@@ -123,7 +123,6 @@ AS_IF([test "x$popt_gcc_warnings" = xyes
popt_CFLAGS_ADD([-Wjump-misses-init],[POPT_CFLAGS])
popt_CFLAGS_ADD([-Wno-format-nonliteral],[POPT_CFLAGS])
popt_CFLAGS_ADD([-Wframe-larger-than=$MAX_STACK_SIZE],[POPT_CFLAGS])
- popt_CFLAGS_ADD([-fstack-protector-all],[POPT_CFLAGS])
popt_CFLAGS_ADD([-fasynchronous-unwind-tables],[POPT_CFLAGS])
popt_CFLAGS_ADD([-fdiagnostics-show-option],[POPT_CFLAGS])
popt_CFLAGS_ADD([-funit-at-a-time],[POPT_CFLAGS])
@@ -203,7 +202,7 @@ AC_SUBST([POPT_LDFLAGS])
# -fno-delete-null-pointer as the kernel does http://patchwork.kernel.org/patch/36060/
# GNU GCC (usually "gcc")
AS_IF([test "x$GCC" != x],
- [ for c in -fno-delete-null-pointer-checks -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector -fexceptions
+ [ for c in -fno-delete-null-pointer-checks -fexceptions
do
popt_CFLAGS_ADD([$c], [POPT_CFLAGS])
done

View File

@@ -8,26 +8,24 @@ Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/python/rpmmodule.c
Index: rpm/python/rpmmodule.c
===================================================================
--- rpm-5.4.14.orig/python/rpmmodule.c
+++ rpm-5.4.14/python/rpmmodule.c
@@ -494,12 +494,16 @@ void init_rpm(void)
REGISTER_ENUM(RPMSENSE_EQUAL);
REGISTER_ENUM(RPMSENSE_NOTEQUAL);
REGISTER_ENUM(RPMSENSE_FIND_REQUIRES);
-#if defined(RPM_VENDOR_MANDRIVA)
+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
--- rpm.orig/python/rpmmodule.c
+++ rpm/python/rpmmodule.c
@@ -525,12 +525,15 @@ static int initModule(PyObject *m)
REGISTER_ENUM(RPMSENSE_PREREQ);
REGISTER_ENUM(RPMSENSE_PRETRANS);
REGISTER_ENUM(RPMSENSE_INTERP);
+#else
+ #if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
REGISTER_ENUM(RPMSENSE_SCRIPT_PRE);
REGISTER_ENUM(RPMSENSE_SCRIPT_POST);
REGISTER_ENUM(RPMSENSE_SCRIPT_PREUN);
- REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN)
+ REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN);
+#endif
+
+#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN);
REGISTER_ENUM(RPMSENSE_SCRIPT_VERIFY);
-#else
+ REGISTER_ENUM(RPMSENSE_MISSINGOK);
+ #endif
REGISTER_ENUM(RPMSENSE_NOTEQUAL);
#endif
REGISTER_ENUM(RPMDEPS_FLAG_NOUPGRADE);
REGISTER_ENUM(RPMSENSE_FIND_REQUIRES);

View File

@@ -0,0 +1,73 @@
Some architectures do not have __sync_add_and_fetch_8 implemented.
MIPS (32-bit) and some PPC systems do not have sync_add_and_fetch_8.
Provide an alternative. This alternative function is based on code from:
https://github.com/mongodb/libbson/blob/master/src/bson/bson-atomic.c
Code is under an Apache 2.0 License.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/rpmio/bson.h
===================================================================
--- rpm-5.4.15.orig/rpmio/bson.h
+++ rpm-5.4.15/rpmio/bson.h
@@ -879,10 +879,18 @@ BSON_END_DECLS
BSON_BEGIN_DECLS
+/* Some architectures do not support __sync_add_and_fetch_8 */
+#if (__mips == 32) || (defined(__PPC__) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8))
+# define __BSON_NEED_ATOMIC_64 1
+#endif
#if defined(__GNUC__)
# define bson_atomic_int_add(p, v) (__sync_add_and_fetch(p, v))
-# define bson_atomic_int64_add(p, v) (__sync_add_and_fetch_8(p, v))
+#ifndef __BSON_NEED_ATOMIC_64
+# define bson_atomic_int64_add(p, v) (__sync_add_and_fetch_8(p, v))
+# else
+ int64_t bson_atomic_int64_add (volatile int64_t *p, int64_t n);
+# endif
# define bson_memory_barrier __sync_synchronize
#elif defined(_MSC_VER) || defined(_WIN32)
# define bson_atomic_int_add(p, v) (InterlockedExchangeAdd((long int *)(p), v))
Index: rpm-5.4.15/rpmio/bson.c
===================================================================
--- rpm-5.4.15.orig/rpmio/bson.c
+++ rpm-5.4.15/rpmio/bson.c
@@ -3863,13 +3863,30 @@ _bson_context_get_oid_seq64_threadsafe (
#elif defined BSON_OS_WIN32
uint64_t seq = InterlockedIncrement64 ((int64_t *)&context->seq64);
#else
- uint64_t seq = __sync_fetch_and_add_8 (&context->seq64, 1);
+ uint64_t seq = bson_atomic_int64_add (&context->seq64, 1);
#endif
seq = BSON_UINT64_TO_BE (seq);
memcpy (&oid->bytes[4], &seq, 8);
}
+#ifdef __BSON_NEED_ATOMIC_64
+#include <pthread.h>
+static pthread_mutex_t gSync64 = PTHREAD_MUTEX_INITIALIZER;
+int64_t
+bson_atomic_int64_add (volatile int64_t *p,
+ int64_t n)
+{
+ int64_t ret;
+
+ pthread_mutex_lock (&gSync64);
+ *p += n;
+ ret = *p;
+ pthread_mutex_unlock (&gSync64);
+
+ return ret;
+}
+#endif
/**
* bson_context_new:

View File

@@ -10,20 +10,20 @@ Signed-off-by: Yuanjie Huang <Yuanjie.Huang@windriver.com>
configure.ac | 103 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 81 insertions(+), 22 deletions(-)
diff --git a/configure.ac b/configure.ac
index 02716a0..889a425 100644
--- a/configure.ac
+++ b/configure.ac
@@ -547,8 +547,6 @@ else
Index: rpm/configure.ac
===================================================================
--- rpm.orig/configure.ac
+++ rpm/configure.ac
@@ -871,8 +871,6 @@ else
MYPATH=$PATH
fi
-DBXY=db60
-DBXY=db61
-
AC_PATH_PROG(__BASH, bash, %{_bindir}/bash, $MYPATH)
AC_PATH_PROG(__BZIP2, bzip2, %{_bindir}/bzip2, $MYPATH)
AC_PATH_PROG(__CAT, cat, /bin/cat, $MYPATH)
@@ -560,22 +558,6 @@ AC_PATH_PROG(__CMAKE, cmake, %{_bindir}/cmake, $MYPATH)
@@ -884,22 +882,6 @@ AC_PATH_PROG(__CMAKE, cmake, %{_bindir}/
AC_PATH_PROG(__CPIO, cpio, /bin/cpio, $MYPATH)
AC_PATH_PROG(__CURL, curl, %{_bindir}/curl, $MYPATH)
AC_PATH_PROG(__CVS, cvs, %{_bindir}/cvs, $MYPATH)
@@ -46,7 +46,7 @@ index 02716a0..889a425 100644
AC_PATH_PROG(__DIFF, diff, /bin/diff, $MYPATH)
AC_PATH_PROG(__DITTO, ditto, %{_bindir}/ditto, $MYPATH)
AC_PATH_PROG(__FILE, file, %{_bindir}/file, $MYPATH)
@@ -1598,13 +1580,46 @@ RPM_CHECK_LIB(
@@ -2050,13 +2032,46 @@ RPM_CHECK_LIB(
dnl # Berkeley-DB & SQLite
DBLIBSRCS=""
@@ -56,7 +56,7 @@ index 02716a0..889a425 100644
-CPPFLAGS="${CPPFLAGS} -I${prefix}/include/${DBXY}"
-RPM_CHECK_LIB(
+CPPFLAGS_save="${CPPFLAGS}"
+CPPFLAGS="${CPPFLAGS_save} -I${prefix}/include/db-6.0"
+CPPFLAGS="${CPPFLAGS_save}"
+with_db_save="${with_db}"
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -69,11 +69,11 @@ index 02716a0..889a425 100644
+]])],
+[RPM_CHECK_LIB(
[Berkeley-DB], [db],
[db-6.0], [db_create], [db.h],
[db-6.1], [db_create], [db.h],
- [yes,external], [db3],
+ [yes,external], [db6],
[ DBLIBSRCS="$DBLIBSRCS db3.c"
+ DBXY=db60
+ DBXY=db61
+ AM_CONDITIONAL(WITH_DB, [ true ])
+ AM_CONDITIONAL(WITH_DB_INTERNAL, [ test ".$RPM_CHECK_LIB_LOCATION" = .internal ])
+ if test ".$RPM_CHECK_LIB_LOCATION" = .internal; then
@@ -86,7 +86,7 @@ index 02716a0..889a425 100644
+ AM_CONDITIONAL(WITH_DB_INTERNAL, [ false ])
+ ])],
+[with_db="${with_db_save}"
+ CPPFLAGS="${CPPFLAGS_save} -I${prefix}/include/db-5.3"
+ CPPFLAGS="${CPPFLAGS_save}"
+ RPM_CHECK_LIB(
+ [Berkeley-DB], [db],
+ [db-5.3], [db_create], [db.h],
@@ -96,32 +96,32 @@ index 02716a0..889a425 100644
AM_CONDITIONAL(WITH_DB, [ true ])
AM_CONDITIONAL(WITH_DB_INTERNAL, [ test ".$RPM_CHECK_LIB_LOCATION" = .internal ])
if test ".$RPM_CHECK_LIB_LOCATION" = .internal; then
@@ -1616,6 +1631,11 @@ RPM_CHECK_LIB(
@@ -2068,6 +2083,11 @@ RPM_CHECK_LIB(
[ AM_CONDITIONAL(WITH_DB, [ false ])
AM_CONDITIONAL(WITH_DB_INTERNAL, [ false ])
])
+])
+
+if test ".$ac_cv_lib_db_6_0_db_create" != .yes -a ".$ac_cv_lib_db_5_3_db_create" != .yes; then
+if test ".$ac_cv_lib_db_6_1_db_create" != .yes -a ".$ac_cv_lib_db_5_3_db_create" != .yes; then
+ CPPFLAGS="${CPPFLAGS_save}"
+fi
dnl # Sqlite external
RPM_CHECK_LIB(
@@ -1627,10 +1647,11 @@ RPM_CHECK_LIB(
@@ -2078,10 +2098,11 @@ RPM_CHECK_LIB(
[])
dnl # Sqlite 3.7.0.1 from db-5.1.19
dnl XXX error: `db3' is already registered with AC_CONFIG_SUBDIRS.
+if test ".$ac_cv_lib_db_6_0_db_create" = .yes; then
dnl # Sqlite 3.8.3.1 from db-6.1.19
+if test ".$ac_cv_lib_db_6_1_db_create" = .yes; then
RPM_CHECK_LIB(
[Berkeley-DB (+SQLite3)], [dbsql],
[db_sql-6.0], [sqlite3_open], [dbsql.h],
[db_sql-6.1], [sqlite3_open], [dbsql.h],
- [yes,external], [db3/sql],
+ [yes,external], [db6/sql],
[
AM_CONDITIONAL(WITH_DBSQL, [ true ])
AC_DEFINE(WITH_SQLITE, 1, [Define as 1 if building with SQLite library])
@@ -1644,12 +1665,50 @@ RPM_CHECK_LIB(
@@ -2095,12 +2116,50 @@ RPM_CHECK_LIB(
], [
AM_CONDITIONAL(WITH_DBSQL, [ false ])
])
@@ -172,6 +172,3 @@ index 02716a0..889a425 100644
AC_ARG_WITH(db-largefile, AS_HELP_STRING([--with-db-largefile], [build Berkeley-DB with LARGEFILE support]))
AC_ARG_WITH(db-mutex, AS_HELP_STRING([--with-db-mutex=ARG], [build Berkeley-DB with MUTEX type ARG]))
--
2.6.2

View File

@@ -0,0 +1,56 @@
Set the DB 6 version to match oe-core db 6.0.30
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/configure.ac
===================================================================
--- rpm.orig/configure.ac
+++ rpm/configure.ac
@@ -2049,10 +2049,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
]])],
[RPM_CHECK_LIB(
[Berkeley-DB], [db],
- [db-6.1], [db_create], [db.h],
+ [db-6.0], [db_create], [db.h],
[yes,external], [db6],
[ DBLIBSRCS="$DBLIBSRCS db3.c"
- DBXY=db61
+ DBXY=db60
AM_CONDITIONAL(WITH_DB, [ true ])
AM_CONDITIONAL(WITH_DB_INTERNAL, [ test ".$RPM_CHECK_LIB_LOCATION" = .internal ])
if test ".$RPM_CHECK_LIB_LOCATION" = .internal; then
@@ -2085,7 +2085,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
])
])
-if test ".$ac_cv_lib_db_6_1_db_create" != .yes -a ".$ac_cv_lib_db_5_3_db_create" != .yes; then
+if test ".$ac_cv_lib_db_6_0_db_create" != .yes -a ".$ac_cv_lib_db_5_3_db_create" != .yes; then
CPPFLAGS="${CPPFLAGS_save}"
fi
@@ -2097,11 +2097,11 @@ RPM_CHECK_LIB(
[ DBLIBSRCS="$DBLIBSRCS sqlite.c" ],
[])
-dnl # Sqlite 3.8.3.1 from db-6.1.19
-if test ".$ac_cv_lib_db_6_1_db_create" = .yes; then
+dnl # Sqlite 3.8.3.1 from db-6.0.30
+if test ".$ac_cv_lib_db_6_0_db_create" = .yes; then
RPM_CHECK_LIB(
[Berkeley-DB (+SQLite3)], [dbsql],
- [db_sql-6.1], [sqlite3_open], [dbsql.h],
+ [db_sql-6.0], [sqlite3_open], [dbsql.h],
[yes,external], [db6/sql],
[
AM_CONDITIONAL(WITH_DBSQL, [ true ])
@@ -2253,7 +2253,7 @@ AC_SUBST(WITH_RUBY_CPPFLAGS)
AC_SUBST(WITH_RUBY_SUBDIR)
AC_SUBST(WITH_RUBY_VENDORARCHDIR)
-dnl # Java prerequisites (swiped from db-6.1.19/dist/aclocal_java et al)
+dnl # Java prerequisites (swiped from db-6.0.30/dist/aclocal_java et al)
WITH_JAVA=no
AC_ARG_WITH([java],
AS_HELP_STRING([--with-java], [build RPM with java support]),

View File

@@ -1,32 +0,0 @@
From 70d881873b443c9bad502db9665595455d4f0ac9 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 8 Jul 2014 07:41:10 +0800
Subject: [PATCH] configure.ac: disable -Wno-override-init
Fixed rpm-native.do_configure error on CentOS 5.x:
cc1: error: unrecognized command line option "-Wno-override-init"
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index adeffe0..6746b4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -163,7 +163,7 @@ AC_ARG_ENABLE(build-warnings,
# XXX gcc-4.2 on Mac OS X hasn't
# CFLAGS="$CFLAGS -Wno-unused-but-set-variable"
# XXX rpmio/set.c needs this
- CFLAGS="$CFLAGS -Wno-override-init"
+# CFLAGS="$CFLAGS -Wno-override-init"
elif test ".`$CC -V 2>&1 | grep 'Sun C'`" != .; then
dnl # Sun Studio (usually "cc")
CFLAGS="$CFLAGS -v"
--
1.8.2.1

View File

@@ -0,0 +1,24 @@
Make security switches manual settings
RPM checks for the availability of the stack protector switch and
transactional-memory support. If supported it unconditionally
enables the compiler options which can cause errors if the support has
not been built into the compiler.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/configure.ac
===================================================================
--- rpm-5.4.15.orig/configure.ac
+++ rpm-5.4.15/configure.ac
@@ -425,7 +425,7 @@ dnl # rpm_CFLAGS_ADD([-fstack-arrays],[
dnl # build RPM instrumented for extra optimization/security (GCC only)
dnl # --- other optimizations
rpm_CFLAGS_ADD([-fexceptions], [RPM_CFLAGS])
- rpm_CFLAGS_ADD([-D_FORTIFY_SOURCE=2 -fstack-protector], [RPM_CFLAGS])
+dnl rpm_CFLAGS_ADD([-D_FORTIFY_SOURCE=2 -fstack-protector], [RPM_CFLAGS])
dnl # rpm_CFLAGS_ADD([-fstack-protector-all],[RPM_CFLAGS])
if test \( ".`$CC --version 2>&1 | grep 'GCC'`" != . \); then

View File

@@ -0,0 +1,28 @@
rpmio: Disable building of the tblake2 test(s).
There is some type of a dependency fault here that can occasionally result in:
gcc: error: tblake2b.o: No such file or directory
or
gcc: error: tblake2bp.o: No such file or directory
These items are simply test cases that are not packaged, so they can be
safely disabled to resolve the dependency issue.
Upstream-Status: Inappropriate [workaround]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/rpmio/Makefile.am
===================================================================
--- rpm-5.4.15.orig/rpmio/Makefile.am
+++ rpm-5.4.15/rpmio/Makefile.am
@@ -29,7 +29,7 @@ EXTRA_PROGRAMS += bsdiff bspatch pcrsed
tmire todbc toid tperl tpython tput trpmio tsexp tsvn tsw ttcl \
dumpasn1 lookup3 trel twitter github tmicrojson duk
-noinst_PROGRAMS += b2sum tset tblake2b tblake2bp tblake2s tblake2sp tgfs
+#noinst_PROGRAMS += b2sum tset tblake2b tblake2bp tblake2s tblake2sp tgfs
if WITH_LIBGIT2
noinst_PROGRAMS += tgit
else

View File

@@ -0,0 +1,27 @@
Fix an issue where parseEmbedded is not defined, but is still used.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/rpmio/macro.c
===================================================================
--- rpm.orig/rpmio/macro.c
+++ rpm/rpmio/macro.c
@@ -1616,8 +1616,6 @@ exit:
* @retval *avp invocation args
* @return script string
*/
-#if defined(WITH_AUGEAS) || defined(WITH_FICL) || defined(WITH_MOZJS) || defined(WITH_JNIEMBED) || defined(WITH_PERLEMBED) || defined(WITH_PYTHONEMBED) || defined(WITH_RUBYEMBED) || defined(WITH_MRUBY_EMBED) || defined(WITH_SQLITE) || defined(WITH_SQUIRREL) || defined(WITH_TCL)
-
static char _FIXME_embedded_interpreter_eval_returned_null[] =
"FIXME: embedded interpreter eval returned null.";
@@ -1668,7 +1666,6 @@ bingo:
script[nb] = '\0';
return script;
}
-#endif
/**
* The main macro recursion loop.

View File

@@ -0,0 +1,64 @@
configure.ac: Check if the current compiler supports the transactions
Some distributions appear to have compilers that are built without support
for transactions, even though they are GCC 4.7 or newer.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/configure.ac
===================================================================
--- rpm-5.4.15.orig/configure.ac
+++ rpm-5.4.15/configure.ac
@@ -425,9 +425,34 @@ dnl # --- other optimizations
rpm_CFLAGS_ADD([-D_FORTIFY_SOURCE=2 -fstack-protector], [RPM_CFLAGS])
dnl # rpm_CFLAGS_ADD([-fstack-protector-all],[RPM_CFLAGS])
- if test \( ".`$CC --version 2>&1 | grep 'GCC'`" != . \); then
- rpm_CFLAGS_ADD([-fgnu-tm], [RPM_CFLAGS])
- fi
+dnl # Check if the current gcc supports -fgnu-tm and __transaction_atomic
+AC_MSG_CHECKING([If the compiler supports __transaction_atomic])
+save_CFLAGS="$CFLAGS"
+save_LDFLAGS="$LDFLAGS"
+CFLAGS="${CFLAGS} -fgnu-tm -litm"
+LDFLAGS="${LDFLAGS} -litm"
+AC_LINK_IFELSE([AC_LANG_SOURCE([[
+int
+main()
+{
+#if !__clang__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 7) || (__GNUC__ > 4)) /* XXX gud enuf? */
+ int i = 0;
+ __transaction_atomic { i++; }
+#else
+# error Compiler does not support __transaction_atomic
+#endif
+ return 0;
+}
+]])], [
+ AC_DEFINE([HAVE_GNUC_TM_ATOMIC], [1],
+ [Define to 1 if the compiler supports __transaction_atomic.])
+ AC_MSG_RESULT([yes])
+], [
+ CFLAGS="$save_CFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ AC_MSG_RESULT([no])
+])
+
dnl # --- options below are added to RPM_CFLAGS but _NOT_ added to CFLAGS
CPPFLAGS="$CPPFLAGS $RPM_CPPFLAGS"
Index: rpm-5.4.15/rpmio/rpmutil.h
===================================================================
--- rpm-5.4.15.orig/rpmio/rpmutil.h
+++ rpm-5.4.15/rpmio/rpmutil.h
@@ -105,7 +105,7 @@
# define RPM_GNUC_INTERNAL
#endif
-#if !__clang__ && __GNUC__ == 4 && __GNUC_MINOR__ >= 7 /* XXX gud enuf? */
+#ifdef HAVE_GNUC_TM_ATOMIC
# define RPM_GNUC_TM_SAFE __attribute__((transaction_safe))
# define RPM_GNUC_TM_PURE __attribute__((transaction_pure))
# define RPM_GNUC_TM_CALLABLE __attribute__((transaction_callable))

View File

@@ -0,0 +1,27 @@
rpm - rpmio/keccak.c: make SSE/MMX dependent upon gcc config
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/rpmio/keccak.c
===================================================================
--- rpm-5.4.15.orig/rpmio/keccak.c
+++ rpm-5.4.15/rpmio/keccak.c
@@ -17,9 +17,13 @@ http://keccak.noekeon.org/
#if OPTIMIZED == 64
/* ===== "KeccakOpt64-settings.h" */
#define Unrolling 18
-//#define UseBebigokimisa
-#define UseSSE
-//#define UseMMX
+#if defined(__SSE2__)
+ #define UseSSE
+#elif defined(__MMX__)
+ #define UseMMX
+#else
+ #define UseBebigokimisa
+#endif
/* ===== */
#endif

View File

@@ -1,104 +0,0 @@
Lua 'print' statement is not working properly inside of RPM 5
The print statement should capture the output and send it to the script
processing engine, and not display it directly to the screen.
This patch is from: http://rpm5.org/cvs/patchset?cn=17671
Upstream-Status: backport (patchset 17671 from rpm5.org)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/CHANGES
===================================================================
--- rpm-5.4.14.orig/CHANGES
+++ rpm-5.4.14/CHANGES
@@ -1,3 +1,4 @@
+ - jbj: lua: fix: resurrect output capture with lua-5.2.
- jbj: verify: fix: broken logic for %ghost avoidance (Mark Hatle).
5.4.13 -> 5.4.14:
Index: rpm-5.4.14/rpmio/rpmlua.c
===================================================================
--- rpm-5.4.14.orig/rpmio/rpmlua.c
+++ rpm-5.4.14/rpmio/rpmlua.c
@@ -175,7 +175,7 @@ rpmlua rpmluaNew(void)
};
/*@=readonlytrans =nullassign @*/
/*@observer@*/ /*@unchecked@*/
- const luaL_Reg *lib = lualibs;
+ const luaL_Reg *lib;
char *path_buf;
char *path_next;
char *path;
@@ -190,31 +190,34 @@ rpmlua rpmluaNew(void)
luaL_openlibs(L);
- for (; lib->name; lib++) {
+ for (lib = lualibs; lib->name; lib++) {
luaL_requiref(L, lib->name, lib->func, 1);
+ lua_pop(L, 1);
}
{ const char * _lua_path = rpmGetPath(rpmluaPath, NULL);
if (_lua_path != NULL) {
+#if defined(LUA_GLOBALSINDEX)
lua_pushliteral(L, "LUA_PATH");
lua_pushstring(L, _lua_path);
+ lua_rawset(L, LUA_GLOBALSINDEX);
+#else
+ lua_pushstring(L, _lua_path);
+ lua_setglobal(L, "LUA_PATH");
+#endif
_lua_path = _free(_lua_path);
}
}
#if defined(LUA_GLOBALSINDEX)
- lua_rawset(L, LUA_GLOBALSINDEX);
-#else
- lua_pushglobaltable(L);
-#endif
lua_pushliteral(L, "print");
lua_pushcfunction(L, rpm_print);
-
-#if defined(LUA_GLOBALSINDEX)
lua_rawset(L, LUA_GLOBALSINDEX);
#else
- lua_pushglobaltable(L);
+ lua_pushcfunction(L, rpm_print);
+ lua_setglobal(L, "print");
#endif
+
rpmluaSetData(lua, "lua", lua);
/* load all standard RPM Lua script files */
@@ -351,6 +354,9 @@ void rpmluaSetVar(rpmlua _lua, rpmluav v
#if defined(LUA_GLOBALSINDEX)
if (lua->pushsize == 0)
lua_pushvalue(L, LUA_GLOBALSINDEX);
+#else
+ if (lua->pushsize == 0)
+ lua_pushglobaltable(L);
#endif
if (pushvar(L, var->keyType, &var->key) != -1) {
if (pushvar(L, var->valueType, &var->value) != -1)
@@ -1039,14 +1045,15 @@ static int rpm_print (lua_State *L)
lua_getglobal(L, "tostring");
for (i = 1; i <= n; i++) {
const char *s;
+ size_t l;
lua_pushvalue(L, -1); /* function to be called */
lua_pushvalue(L, i); /* value to print */
lua_call(L, 1, 1);
- s = lua_tostring(L, -1); /* get result */
+ s = lua_tolstring(L, -1, &l); /* get result */
if (s == NULL)
return luaL_error(L, "`tostring' must return a string to `print'");
if (lua->storeprint) {
- size_t sl = lua_rawlen(L, -1);
+ size_t sl = l;
if ((size_t)(lua->printbufused+sl+1) > lua->printbufsize) {
lua->printbufsize += sl+512;
lua->printbuf = (char *) xrealloc(lua->printbuf, lua->printbufsize);

View File

@@ -12,16 +12,20 @@ it's easy enough to do by enabling the necessary macros.
Signed-off-by: yzhu1 <yanjun.zhu@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
--- a/macros/macros.in
+++ b/macros/macros.in
@@ -546,8 +546,8 @@ $_arbitrary_tags_tests Foo:Bar
Index: rpm/macros/macros.in
===================================================================
--- rpm.orig/macros/macros.in
+++ rpm/macros/macros.in
@@ -563,10 +563,10 @@ $_arbitrary_tags_tests Foo:Bar
# Horowitz Key Protocol server configuration
#
-%_hkp_keyserver hkp://keys.rpm5.org
+#%_hkp_keyserver hkp://keys.rpm5.org
#%_hkp_keyserver hkp://keys.n3npq.net
-%_hkp_keyserver hkp://pool.sks-keyservers.net
#%_hkp_keyserver hkp://pool.sks-keyservers.net
-%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=
+#%_hkp_keyserver hkp://pool.sks-keyservers.net
+#%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=
%_nssdb_path /etc/pki/nssdb
# NSS_InitContext() parameter configuration

View File

@@ -0,0 +1,69 @@
Fix errors when building with sasl2 disabled
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/rpmio/mongoc.c
===================================================================
--- rpm.orig/rpmio/mongoc.c
+++ rpm/rpmio/mongoc.c
@@ -39,8 +39,10 @@
# include <winerror.h>
#endif
+#ifdef HAVE_LIBSASL2
#include <sasl/sasl.h>
#include <sasl/saslutil.h>
+#endif
#include <openssl/bio.h>
#include <openssl/ssl.h>
@@ -14228,6 +14230,7 @@ mongoc_read_prefs_copy (const mongoc_rea
return ret;
}
+#ifdef MONGOC_ENABLE_SASL
/*==============================================================*/
/* --- mongoc-sasl.c */
@@ -14555,6 +14558,7 @@ _mongoc_sasl_step (mongoc_sasl_t *sasl,
return true;
}
+#endif
/*==============================================================*/
/* --- mongoc-socket.c */
Index: rpm/rpmio/mongoc.h
===================================================================
--- rpm.orig/rpmio/mongoc.h
+++ rpm/rpmio/mongoc.h
@@ -38,8 +38,10 @@
# include <sys/un.h>
#endif
+#ifdef HAVE_LIBSASL2
#include <sasl/sasl.h>
#include <sasl/saslutil.h>
+#endif
#include <openssl/bio.h>
#include <openssl/ssl.h>
@@ -2455,6 +2457,8 @@ BSON_END_DECLS
/*==============================================================*/
/* --- mongoc-sasl-private.h */
+#ifdef MONGOC_ENABLE_SASL
+
BSON_BEGIN_DECLS
@@ -2498,6 +2502,7 @@ bool _mongoc_sasl_step (mong
BSON_END_DECLS
+#endif
/*==============================================================*/
/* --- mongoc-ssl-private.h */

View File

@@ -124,23 +124,3 @@ Index: rpm-5.4.14/build/files.c
}
ui32 = fl->totalFileSize;
Index: rpm-5.4.14/lib/fsm.c
===================================================================
--- rpm-5.4.14.orig/lib/fsm.c
+++ rpm-5.4.14/lib/fsm.c
@@ -904,6 +904,7 @@ int fsmMapAttrs(IOSM_t fsm)
if (fi && i >= 0 && i < (int) fi->fc) {
mode_t perms = (S_ISDIR(st->st_mode) ? fi->dperms : fi->fperms);
+ ino_t finalInode = (fi->finodes ? (ino_t)fi->finodes[i] : 0);
mode_t finalMode = (fi->fmodes ? (mode_t)fi->fmodes[i] : perms);
dev_t finalRdev = (dev_t)(fi->frdevs ? fi->frdevs[i] : 0);
rpmuint32_t finalMtime = (fi->fmtimes ? fi->fmtimes[i] : 0);
@@ -943,6 +944,7 @@ int fsmMapAttrs(IOSM_t fsm)
if ((S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode))
&& st->st_nlink == 0)
st->st_nlink = 1;
+ st->st_ino = finalInode;
st->st_rdev = finalRdev;
st->st_mtime = finalMtime;
}

View File

@@ -9,14 +9,14 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/scripts/pkgconfigdeps.sh
Index: rpm/scripts/pkgconfigdeps.sh
===================================================================
--- rpm-5.4.14.orig/scripts/pkgconfigdeps.sh
+++ rpm-5.4.14/scripts/pkgconfigdeps.sh
--- rpm.orig/scripts/pkgconfigdeps.sh
+++ rpm/scripts/pkgconfigdeps.sh
@@ -18,8 +18,8 @@ case $1 in
*.pc)
# Query the dependencies of the package.
DIR=`dirname ${filename}`
DIR=$(dirname ${filename})
- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
- export PKG_CONFIG_PATH
+ PKG_CONFIG_LIBDIR="$DIR:$DIR/../../share/pkgconfig"
@@ -27,7 +27,7 @@ Index: rpm-5.4.14/scripts/pkgconfigdeps.sh
@@ -42,8 +42,8 @@ case $1 in
[ -n "$oneshot" ] && echo "$oneshot"; oneshot=""
# Query the dependencies of the package.
DIR=`dirname ${filename}`
DIR=$(dirname ${filename})
- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
- export PKG_CONFIG_PATH
+ PKG_CONFIG_LIBDIR="$DIR:$DIR/../../share/pkgconfig"

View File

@@ -11,15 +11,17 @@ Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/python/rpmmodule.c
Index: rpm/python/rpmmodule.c
===================================================================
--- rpm-5.4.14.orig/python/rpmmodule.c
+++ rpm-5.4.14/python/rpmmodule.c
@@ -392,7 +392,8 @@ void init_rpm(void)
if (Py_AtExit(rpm_exithook) == -1)
return;
--- rpm.orig/python/rpmmodule.c
+++ rpm/python/rpmmodule.c
@@ -382,9 +382,8 @@ static int initModule(PyObject *m)
/* XXX add --noparentdirs --nolinktos to rpmtsCheck() */
global_depFlags = (RPMDEPS_FLAG_NOPARENTDIRS | RPMDEPS_FLAG_NOLINKTOS);
- rpmReadConfigFiles(NULL, NULL);
- /* failure to initialize rpm (crypto and all) is rather fatal too... */
- if (rpmReadConfigFiles(NULL, NULL) == -1)
- return 0;
+ const char *argv[1] = {"rpmmodule", 0};
+ rpmcliInit(1, argv, NULL);

View File

@@ -0,0 +1,35 @@
rpm/python: The RPM5 API requires a hdrNum to be passed in
The former behavior of passing in -1 as the hdrNum resulting in erase
operations that did not complete, but also did not error. Changing to
using the header instance resolves this problem.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/python/rpmts-py.c
===================================================================
--- rpm-5.4.15.orig/python/rpmts-py.c
+++ rpm-5.4.15/python/rpmts-py.c
@@ -241,12 +241,19 @@ static PyObject *
rpmts_AddErase(rpmtsObject * s, PyObject * args)
{
Header h;
+ uint32_t hdrNum;
if (!PyArg_ParseTuple(args, "O&:AddErase", hdrFromPyObject, &h))
return NULL;
-SPEW((stderr, "*** %s(%p,%p) ts %p\n", __FUNCTION__, s, h, s->ts));
+ hdrNum = headerGetInstance(h);
+
+SPEW((stderr, "*** %s(%p,%p) ts %p hdrNum %ld\n", __FUNCTION__, s, h, s->ts, hdrNum));
+#ifdef REFERENCE /* this doesn't work, RPM5 requires a unique hdrNum */
return PyBool_FromLong(rpmtsAddEraseElement(s->ts, h, -1) == 0);
+#else
+ return PyBool_FromLong(rpmtsAddEraseElement(s->ts, h, hdrNum) == 0);
+#endif
}
static int

View File

@@ -0,0 +1,49 @@
Fix an issue where the PACKAGEORIGIN is not properly stored.
Restore the rpmtsCallback fdSetOpen call and related code.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/python/rpmts-py.c
===================================================================
--- rpm.orig/python/rpmts-py.c
+++ rpm/python/rpmts-py.c
@@ -672,6 +672,8 @@ rpmtsCallback(const void * hd, const rpm
Header h = (Header) hd;
struct rpmtsCallbackType_s * cbInfo = data;
PyObject * pkgObj = (PyObject *) pkgKey;
+ PyObject * oh = NULL;
+ const char * origin = NULL;
PyObject * args, * result;
static FD_t fd;
@@ -693,8 +695,16 @@ rpmtsCallback(const void * hd, const rpm
pkgObj = Py_None;
Py_INCREF(pkgObj);
}
- } else
+ } else {
Py_INCREF(pkgObj);
+ /* XXX yum has (h, rpmloc) tuple as pkgKey. Extract the path. */
+ if (!(PyTuple_Check(pkgObj) && PyArg_ParseTuple(pkgObj, "|Os", &oh, &origin)))
+ origin = NULL;
+ /* XXX clean up the path, yum paths start "//..." */
+ if (origin && origin[0] == '/' && origin[1] == '/')
+ origin++;
+ }
+
PyEval_RestoreThread(cbInfo->_save);
@@ -723,6 +733,9 @@ SPEW((stderr, "\t%p = fdDup(%d)\n", fd,
fcntl(Fileno(fd), F_SETFD, FD_CLOEXEC);
+ if (origin != NULL)
+ (void) fdSetOpen(fd, origin, 0, 0);
+
return fd;
} else
if (what == RPMCALLBACK_INST_CLOSE_FILE) {

View File

@@ -0,0 +1,24 @@
rpm-python-module: Change the extension tag from PyCObject to PyInt
Use the tagValue to determine the custom PyInt value to use for the extension
tag. Without this, any custom tag extensions will be returned in a format
that the tagNumFromPyObject and related functions like hdr_subscript will
failed to process. Usually the failure is error: expected a string or integer
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/python/rpmmodule.c
===================================================================
--- rpm-5.4.15.orig/python/rpmmodule.c
+++ rpm-5.4.15/python/rpmmodule.c
@@ -316,7 +316,7 @@ static void addRpmTags(PyObject *module)
{
if (ext->name == NULL || ext->type != HEADER_EXT_TAG)
continue;
- PyDict_SetItemString(d, (char *) ext->name, to=PyCObject_FromVoidPtr((void *)ext, NULL));
+ PyDict_SetItemString(d, (char *) ext->name, to=PyInt_FromLong(tagValue(ext->name)));
Py_XDECREF(to);
PyDict_SetItem(dict, to, o=PyString_FromString(ext->name + 7));
Py_XDECREF(o);

View File

@@ -1,14 +0,0 @@
Index: rpm-5.4.14/syck/lib/syck.h
===================================================================
--- rpm-5.4.14.orig/syck/lib/syck.h
+++ rpm-5.4.14/syck/lib/syck.h
@@ -621,9 +621,6 @@ long syck_seq_count( SyckNode *seq )
*/
void syckerror( char *msg )
/*@*/;
-int syckparse( void * )
- /*@globals fileSystem @*/
- /*@modifies fileSystem @*/;
/* XXX union YYSTYPE *sycklval has issues on Mac OS X. */
int sycklex( void *_sycklval, SyckParser *parser )
/*@modifies _sycklval, parser @*/;

View File

@@ -0,0 +1,124 @@
Disable various items that do not cross compile well.
Upstream-Status: Inappropriate [Configuration]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/rpmdb/Makefile.am
===================================================================
--- rpm.orig/rpmdb/Makefile.am
+++ rpm/rpmdb/Makefile.am
@@ -34,10 +34,10 @@ EXTRA_DIST = \
db3.c sqlite.c db_emu.h librpmdb.vers bdb.sql libsqldb.c \
logio.awk logio.src logio_recover_template logio_template logio.c \
logio_rec.c logio_auto.c logio_autop.c logio_auto.h \
- qf.l qf.y qf.inp tqf.l tqf.y tqf.inp grammar.y scanner.l json1.js
+ tqf.l tqf.y tqf.inp grammar.y scanner.l json1.js
-EXTRA_PROGRAMS = qfcalc qfgraph logio tjfn tqf # tbdb
-noinst_PROGRAMS = json
+EXTRA_PROGRAMS = qfcalc qfgraph logio # tjfn tqf tbdb
+noinst_PROGRAMS = # json
RPMMISC_LDADD_COMMON = \
$(top_builddir)/misc/librpmmisc.la \
@@ -321,54 +321,39 @@ BUILT_SOURCES += .syntastic_c_config
.syntastic_c_config: Makefile
@echo $(COMPILE) | tr ' ' '\n' | sed -e '1d' > $@
-tjfn_SOURCES = tjfn.c
-tjfn_LDADD = $(mylibs)
-
-LEX = flex
-LFLAGS= -d -T -v -8 -b --yylineno --reentrant --bison-bridge --perf-report
-YACC = bison
-YFLAGS= -Dapi.pure -t -d -v --report=all
-
-BUILT_SOURCES += Jgrammar.c Jgrammar.h Jscanner.c
-Jgrammar.c: grammar.y
- $(YACC) $(YFLAGS) -o $@ $<
-Jscanner.c: scanner.l
- $(LEX) -R -o $@ $<
-json_SOURCES = Jgrammar.c Jscanner.c json.c
-
-testjson: json1.js json
- ./json json1.js
-
-BUILT_SOURCES += Qgrammar.c Qgrammar.h Qscanner.c
-Qgrammar.c: qf.y
- $(YACC) $(YFLAGS) -o $@ $<
-Qscanner.c: qf.l
- $(LEX) -R -o $@ $<
-qfcalc_SOURCES = Qgrammar.c Qscanner.c interpreter.c
-qfgraph_SOURCES = Qgrammar.c Qscanner.c graph.c
-
-testqf: qfcalc qfgraph
- ./qfcalc < qf.inp
- ./qfgraph < qf.inp
-
-BUILT_SOURCES += Tgrammar.c Tgrammar.h Tscanner.c
-Tgrammar.c Tgrammar.h: tqf.y
- $(YACC) $(YFLAGS) -o $@ $<
-Tscanner.c Tscanner.h: tqf.l
- $(LEX) --prefix="Tyy" $(LFLAGS) -o $@ $<
-tqf_SOURCES = Tgrammar.c Tscanner.c tgraph.c
-tqf_CFLAGS = $(CFLAGS) -fsanitize=address # -DTSCANNER_MAIN
-tqf_LDADD = ../lib/librpm.la \
- ./librpmdb.la \
- ../popt/libpopt.la
-
-testdir = $(abs_top_builddir)/tests
-foo: tqf
- -../libtool --mode=execute \
- ./tqf \
- --dbpath=$(testdir) \
- -r $(testdir)/fodder/*.rpm \
- $(testdir)/fodder/fmtmod.qf
+#tjfn_SOURCES = tjfn.c
+#tjfn_LDADD = $(mylibs)
+#
+#LFLAGS= -d -T -v -8 -b --yylineno --reentrant --bison-bridge --perf-report
+#
+#BUILT_SOURCES += Jgrammar.c Jgrammar.h Jscanner.c
+#Jgrammar.c Jgrammar.h: grammar.y
+# $(YACC) $(YFLAGS) -t -d -v -o $@ $<
+#Jscanner.c: scanner.l
+# $(LEX) -R -o $@ $<
+#json_SOURCES = Jgrammar.c Jscanner.c json.c
+#
+#testjson: json1.js json
+# ./json json1.js
+#
+#BUILT_SOURCES += Tgrammar.c Tgrammar.h Tscanner.c
+#Tgrammar.c Tgrammar.h: tqf.y
+# $(YACC) $(YFLAGS) -t -d -v -o $@ $<
+#Tscanner.c Tscanner.h: tqf.l
+# $(LEX) --prefix="Tyy" $(LFLAGS) -o $@ $<
+#tqf_SOURCES = Tgrammar.c Tscanner.c tgraph.c
+#tqf_CFLAGS = $(CFLAGS) -fsanitize=address # -DTSCANNER_MAIN
+#tqf_LDADD = ../lib/librpm.la \
+# ./librpmdb.la \
+# ../popt/libpopt.la
+
+#testdir = $(abs_top_builddir)/tests
+#foo: tqf
+# -../libtool --mode=execute \
+# ./tqf \
+# --dbpath=$(testdir) \
+# -r $(testdir)/fodder/*.rpm \
+# $(testdir)/fodder/fmtmod.qf
#tbdb_SOURCES = tbdb.c bdb.c
#tbdb_LDADD = $(mylibs)
Index: rpm/configure.ac
===================================================================
--- rpm.orig/configure.ac
+++ rpm/configure.ac
@@ -119,6 +119,7 @@ AC_PROG_MAKE_SET
AC_PROG_LIBTOOL
AC_PROG_RANLIB
AC_PROG_YACC
+AM_PROG_LEX
AC_PATH_PROG(AS, as, as)

View File

@@ -0,0 +1,19 @@
Fix a typo in the rpmio Makefile.am
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/rpmio/Makefile.am
===================================================================
--- rpm.orig/rpmio/Makefile.am
+++ rpm/rpmio/Makefile.am
@@ -121,7 +121,7 @@ luaLPATHdir = ${pkgsharedir)/lua
pkgincdir = $(pkgincludedir)$(WITH_PATH_VERSIONED_SUFFIX)
pkginc_HEADERS = argv.h mire.h rpmzlog.h yarn.h \
- rpmbf.h rpmcb.h rpmio.h rpmlog.h rpmiotypes.h rpmmacro.h
+ rpmbf.h rpmcb.h rpmio.h rpmlog.h rpmiotypes.h rpmmacro.h \
rpmpgp.h rpmsw.h rpmutil.h
noinst_HEADERS = \
ar.h bcon.h bson.h cpio.h crc.h envvar.h fnmatch.h fts.h glob.h iosm.h \

View File

@@ -1,67 +0,0 @@
rpmpgp.c: Add missing if defs around crypto implementations
Without these, the system will error trying to find the correct crypto
library to use.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/rpmio/rpmpgp.c
===================================================================
--- rpm.orig/rpmio/rpmpgp.c
+++ rpm/rpmio/rpmpgp.c
@@ -1339,16 +1339,26 @@ int pgpExportPubkey(pgpDig dig)
{
int rc = 0; /* assume failure */
+#if defined(WITH_BEECRYPT)
if (pgpImplVecs == &rpmbcImplVecs)
rc = rpmbcExportPubkey(dig);
+#endif
+#if defined(WITH_SSL)
if (pgpImplVecs == &rpmsslImplVecs)
rc = rpmsslExportPubkey(dig);
+#endif
+#if defined(WITH_NSS)
if (pgpImplVecs == &rpmnssImplVecs)
rc = rpmnssExportPubkey(dig);
+#endif
+#if defined(WITH_GCRYPT)
if (pgpImplVecs == &rpmgcImplVecs)
rc = rpmgcExportPubkey(dig);
+#endif
+#if defined(WITH_TOMCRYPT)
if (pgpImplVecs == &rpmltcImplVecs)
rc = rpmltcExportPubkey(dig);
+#endif
return rc;
}
@@ -1356,16 +1366,26 @@ int pgpExportSignature(pgpDig dig, DIGES
{
int rc = 0; /* assume failure */
+#if defined(WITH_BEECRYPT)
if (pgpImplVecs == &rpmbcImplVecs)
rc = rpmbcExportSignature(dig, ctx);
+#endif
+#if defined(WITH_SSL)
if (pgpImplVecs == &rpmsslImplVecs)
rc = rpmsslExportSignature(dig, ctx);
+#endif
+#if defined(WITH_NSS)
if (pgpImplVecs == &rpmnssImplVecs)
rc = rpmnssExportSignature(dig, ctx);
+#endif
+#if defined(WITH_GCRYPT)
if (pgpImplVecs == &rpmgcImplVecs)
rc = rpmgcExportSignature(dig, ctx);
+#endif
+#if defined(WITH_TOMCRYPT)
if (pgpImplVecs == &rpmltcImplVecs)
rc = rpmltcExportSignature(dig, ctx);
+#endif
return rc;
}

View File

@@ -0,0 +1,26 @@
rpmpgp.h: We do not require the popt header in order to use rpmpgp functions
This can cause failures if the internal libpopt is used, as it's header is
not exported.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/rpmio/rpmpgp.h
===================================================================
--- rpm-5.4.14.orig/rpmio/rpmpgp.h
+++ rpm-5.4.14/rpmio/rpmpgp.h
@@ -11,11 +11,11 @@
*/
#include <string.h>
-#include <popt.h>
#include <rpmiotypes.h>
#include <yarn.h>
#if defined(_RPMPGP_INTERNAL)
+#include <popt.h>
#include <rpmsw.h>
/*@unchecked@*/

View File

@@ -12,22 +12,21 @@ Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.14/lib/psm.c
Index: rpm/lib/psm.c
===================================================================
--- rpm-5.4.14.orig/lib/psm.c
+++ rpm-5.4.14/lib/psm.c
@@ -806,6 +806,10 @@ static rpmRC runScript(rpmpsm psm, Heade
--- rpm.orig/lib/psm.c
+++ rpm/lib/psm.c
@@ -846,6 +846,9 @@ static rpmRC runScript(rpmpsm psm, Heade
pid_t pid;
int xx;
int i;
+#ifdef RPM_VENDOR_OE
+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
+#endif
+
if (psm->sstates != NULL && ix >= 0 && ix < RPMSCRIPT_MAX)
ssp = psm->sstates + ix;
if (ssp != NULL)
@@ -872,14 +876,29 @@ assert(he->p.str != NULL);
#ifdef __clang__
#pragma clang diagnostic push
@@ -923,14 +926,29 @@ assert(he->p.str != NULL);
(F_ISSET(psm, UNORDERED) ? "a" : ""));
if (Phe->p.argv == NULL) {
@@ -63,7 +62,7 @@ Index: rpm-5.4.14/lib/psm.c
ldconfig_done = (ldconfig_path && !strcmp(argv[0], ldconfig_path)
? 1 : 0);
}
@@ -930,7 +949,12 @@ assert(he->p.str != NULL);
@@ -981,7 +999,12 @@ assert(he->p.str != NULL);
goto exit;
if (rpmIsDebug() &&
@@ -77,7 +76,7 @@ Index: rpm-5.4.14/lib/psm.c
{
static const char set_x[] = "set -x\n";
nw = Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd);
@@ -1065,12 +1089,22 @@ assert(he->p.str != NULL);
@@ -1116,12 +1139,22 @@ assert(he->p.str != NULL);
{ const char * rootDir = rpmtsRootDir(ts);
if (!rpmtsChrootDone(ts) && rootDir != NULL &&
@@ -100,7 +99,7 @@ Index: rpm-5.4.14/lib/psm.c
xx = Chdir("/");
rpmlog(RPMLOG_DEBUG, D_("%s: %s(%s)\texecv(%s) pid %d\n"),
psm->stepName, sln, NVRA,
@@ -2985,6 +3019,13 @@ assert(psm->te != NULL);
@@ -3052,6 +3085,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);
@@ -114,7 +113,7 @@ Index: rpm-5.4.14/lib/psm.c
xx = rpmtxnBegin(rpmtsGetRdb(ts), _parent, NULL);
rc = runInstScript(psm);
if (rc)
@@ -2992,11 +3033,24 @@ assert(psm->te != NULL);
@@ -3059,11 +3099,24 @@ assert(psm->te != NULL);
else
xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn);
rpmtsGetRdb(ts)->db_txn = NULL;
@@ -139,7 +138,7 @@ Index: rpm-5.4.14/lib/psm.c
break;
case PSM_IMMED_TRIGGERS:
/* Run triggers in this package other package(s) set off. */
@@ -3006,7 +3060,18 @@ assert(psm->te != NULL);
@@ -3073,7 +3126,18 @@ assert(psm->te != NULL);
F_SET(psm, GOTTRIGGERS);
}
if (psm->triggers != NULL)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,25 @@
rpmdb/tagname.c: Add the 0x54aafb71 (filenames) type to rpmTagGetType
There is already a workaround in the _tagName function to show that the
special 'filenames' item is value. This adds a similar patch to the
_tagType to return the proper type, otherwise it comes back as a simple
RPM_STRING_ARRAY_TYPE which limits the response to the first element.
Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm-5.4.15/rpmdb/tagname.c
===================================================================
--- rpm-5.4.15.orig/rpmdb/tagname.c
+++ rpm-5.4.15/rpmdb/tagname.c
@@ -353,6 +353,9 @@ static unsigned int _tagType(rpmTag tag)
case RPMDBI_RECNO:
case RPMDBI_HEAP:
break;
+ /* XXX make sure that h.['filenames'] in python "works". */
+ case 0x54aafb71:
+ return (RPM_STRING_ARRAY_TYPE + RPM_ARRAY_RETURN_TYPE);
default:
if (_rpmTags.byValue == NULL)
break;

View File

@@ -1,5 +1,6 @@
Add configure check for rpmatch() and
creates a compatable macro if it is not provided by the C library.
Create a compatable macro if rpmatch() is not provided by the C library.
This uses an existing configure check.
This is needed for uclibc since it does not have the above function
implemented.
@@ -8,24 +9,15 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: rpm-5.4.14/configure.ac
Updated to rpm 5.4.15+.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: rpm/system.h
===================================================================
--- rpm-5.4.14.orig/configure.ac
+++ rpm-5.4.14/configure.ac
@@ -943,7 +943,7 @@ AC_CHECK_FUNCS([dnl
ftok getaddrinfo getattrlist getcwd getdelim getline getmode getnameinfo dnl
getpassphrase getxattr getwd iconv inet_aton lchflags lchmod lchown dnl
lgetxattr lsetxattr lutimes madvise mempcpy mkdtemp mkstemp mtrace dnl
- posix_fadvise posix_fallocate putenv realpath regcomp secure_getenv __secure_getenv dnl
+ posix_fadvise posix_fallocate putenv realpath regcomp rpmatch secure_getenv __secure_getenv dnl
setattrlist setenv setlocale setmode setxattr dnl
sigaddset sigdelset sigemptyset sighold sigrelse sigpause dnl
sigprocmask sigsuspend sigaction dnl
Index: rpm-5.4.14/system.h
===================================================================
--- rpm-5.4.14.orig/system.h
+++ rpm-5.4.14/system.h
@@ -353,6 +353,14 @@ extern int _tolower(int) __THROW /*@*/;
--- rpm.orig/system.h
+++ rpm/system.h
@@ -358,6 +358,14 @@ extern int _tolower(int) __THROW /*@*/;
#include <libgen.h>
#endif

View File

@@ -1,4 +1,7 @@
rpm: compile rpmqv.c instead of rpmqv.cc
From e8bae261615e19ff8a28683765c9539cfb22a086 Mon Sep 17 00:00:00 2001
From: Joe Slater <jslater@windriver.com>
Date: Thu, 17 Jul 2014 18:14:54 -0700
Subject: [PATCH 1/9] rpm: compile rpmqv.c instead of rpmqv.cc
Some versions of gcc, 4.4.5 for example, will put a reference to __gxx_personality_v0
into rpm.o and rpmbuild.o. This means we must link with g++, and the Makefile we
@@ -10,23 +13,38 @@ Upstream-Status: Inappropriate [other]
When linking with g++ is really necessary, the upstream package will do that.
Signed-off-by: Joe Slater <joe.slater@windriver.com>
Also instead of symlinking files in two places, which can and does race in
parallel builds, simply refer to the file's full location [RB]
Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
Makefile.am | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 1dade0a..55f8669 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -127,13 +127,13 @@ rpm_SOURCES = build.c
@@ -201,15 +201,13 @@ rpm_SOURCES = build.c
rpm_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS)
rpm_LDADD = rpm.o $(myLDADD)
rpm.o: $(top_srcdir)/rpmqv.c
- $(COMPILE) -DIAM_RPMBT -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c $(top_srcdir)/rpmqv.cc
+ $(COMPILE) -DIAM_RPMBT -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c $(top_srcdir)/rpmqv.c
- ln -sf $< rpmqv.cc
- $(COMPILE) -DIAM_RPMBT -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c rpmqv.cc
+ $(COMPILE) -DIAM_RPMBT -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c $^
rpmbuild_SOURCES = build.c
rpmbuild_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS)
rpmbuild_LDADD = rpmbuild.o $(myLDADD)
rpmbuild.o: $(top_srcdir)/rpmqv.c
- $(COMPILE) -DIAM_RPMBT -o $@ -c $(top_srcdir)/rpmqv.cc
+ $(COMPILE) -DIAM_RPMBT -o $@ -c $(top_srcdir)/rpmqv.c
rpmbuild.o: $(top_srcdir)/rpmqv.c
- ln -sf $< rpmqv.cc
- $(COMPILE) -DIAM_RPMBT -o $@ -c rpmqv.cc
+ $(COMPILE) -DIAM_RPMBT -o $@ -c $^
.PHONY: splint
splint:
.syntastic_c_config: Makefile
@echo $(COMPILE) | tr ' ' '\n' | sed -e '1d' > $@
--
2.7.0

View File

@@ -4,10 +4,10 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: rpm-5.4.14/rpmio/rpmio.h
Index: rpm/rpmio/rpmio.h
===================================================================
--- rpm-5.4.14.orig/rpmio/rpmio.h
+++ rpm-5.4.14/rpmio/rpmio.h
--- rpm.orig/rpmio/rpmio.h
+++ rpm/rpmio/rpmio.h
@@ -23,7 +23,8 @@
*/
/*@{*/
@@ -18,11 +18,11 @@ Index: rpm-5.4.14/rpmio/rpmio.h
#define USE_COOKIE_SEEK_POINTER 1
typedef _IO_off64_t _libio_off_t;
typedef _libio_off_t * _libio_pos_t;
Index: rpm-5.4.14/system.h
Index: rpm/system.h
===================================================================
--- rpm-5.4.14.orig/system.h
+++ rpm-5.4.14/system.h
@@ -481,7 +481,7 @@ extern void muntrace (void)
--- rpm.orig/system.h
+++ rpm/system.h
@@ -489,7 +489,7 @@ extern void muntrace (void)
#endif /* defined(__LCLINT__) */
/* Memory allocation via macro defs to get meaningful locations from mtrace() */
@@ -31,11 +31,11 @@ Index: rpm-5.4.14/system.h
#define xmalloc(_size) (malloc(_size) ? : vmefail(_size))
#define xcalloc(_nmemb, _size) (calloc((_nmemb), (_size)) ? : vmefail(_size))
#define xrealloc(_ptr, _size) (realloc((_ptr), (_size)) ? : vmefail(_size))
Index: rpm-5.4.14/lib/librpm.vers
Index: rpm/lib/librpm.vers
===================================================================
--- rpm-5.4.14.orig/lib/librpm.vers
+++ rpm-5.4.14/lib/librpm.vers
@@ -405,6 +405,10 @@ LIBRPM_0
--- rpm.orig/lib/librpm.vers
+++ rpm/lib/librpm.vers
@@ -406,6 +406,10 @@ LIBRPM_0
specedit;
strict_erasures;
XrpmtsiInit;
@@ -46,14 +46,14 @@ Index: rpm-5.4.14/lib/librpm.vers
local:
*;
};
Index: rpm-5.4.14/rpmio/librpmio.vers
Index: rpm/rpmio/librpmio.vers
===================================================================
--- rpm-5.4.14.orig/rpmio/librpmio.vers
+++ rpm-5.4.14/rpmio/librpmio.vers
@@ -1056,6 +1056,10 @@ LIBRPMIO_0
mongo_write_concern_set_mode;
mongo_write_concern_set_w;
mongo_write_concern_set_wtimeout;
--- rpm.orig/rpmio/librpmio.vers
+++ rpm/rpmio/librpmio.vers
@@ -1455,6 +1455,10 @@ LIBRPMIO_0
_mongoc_write_result_init;
_mongoc_write_result_merge;
_mongoc_write_result_merge_legacy;
+ xmalloc;
+ xrealloc;
+ xcalloc;

View File

@@ -1,38 +0,0 @@
From 9e7b72ee0c994609975981e135fc18d0387aefb6 Mon Sep 17 00:00:00 2001
From: jbj <jbj>
Date: Wed, 14 May 2014 21:19:41 +0000
Subject: [PATCH] - verify: fix: broken logic for %ghost avoidance (Mark
Hatle).
Upstream-Status: Backport
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
CHANGES | 1 +
lib/verify.c | 3 +--
2 files changed, 2 insertions(+), 2 deletions(-)
Index: rpm-5.4.14/CHANGES
===================================================================
--- rpm-5.4.14.orig/CHANGES
+++ rpm-5.4.14/CHANGES
@@ -1,3 +1,5 @@
+ - jbj: verify: fix: broken logic for %ghost avoidance (Mark Hatle).
+
5.4.13 -> 5.4.14:
- mooney: use __sun instead of __sun__ in #define (lp#1243472).
- mooney: rpmconstant: ensure linkage w Oracle Studio 12.3 (lp#1243469).
Index: rpm-5.4.14/lib/verify.c
===================================================================
--- rpm-5.4.14.orig/lib/verify.c
+++ rpm-5.4.14/lib/verify.c
@@ -588,8 +588,7 @@ uint32_t fc = rpmfiFC(fi);
continue;
/* If not verifying %ghost, skip ghost files. */
- /* XXX the broken!!! logic disables %ghost queries always. */
- if (!(FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST)))
+ if (!FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST))
continue;
/* Gather per-file data into a carrier. */

View File

@@ -34,24 +34,22 @@ DESCRIPTION_perl-modules-rpm = "The perl-modules-rpm package contains a module t
written in the Perl programming language to use the interface \
supplied by the RPM Package Manager libraries."
SUMMARY_perl-module-rpm-dev = "Development components for perl bindings"
DESCRIPTION_perl-modules-rpm-dev = "Development items such as man pages for use with the Perl \
language bindings."
HOMEPAGE = "http://rpm5.org/"
LICENSE = "LGPLv2.1"
LICENSE = "LGPLv2.1 & Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
LIC_FILES_CHKSUM += "file://rpmio/mongo.c;begin=5;end=18;md5=d8327ba2c71664c059143e6d333b8901"
DEPENDS = "libpcre attr acl popt ossp-uuid file byacc-native"
# We must have gettext-native, we need gettextize, which may not be provided
DEPENDS = "libpcre attr acl ossp-uuid file byacc-native gettext-native"
DEPENDS_append_class-native = " file-replacement-native"
S = "${WORKDIR}/rpm"
# Apply various fixups that are unique to the CVS environment
do_fixup_unpack () {
ln -sf ../syck ${S}/syck || :
ln -sf ../lua ${S}/lua || :
ln ${S}/rpmqv.c ${S}/rpmqv.cc || :
# 'ln' isn't reliable, and 'mv' could break later builds
rm -rf ${S}/syck ; cp -r ${WORKDIR}/syck ${S}/.
rm -rf ${S}/lua ; cp -r ${WORKDIR}/lua ${S}/.
rm -rf ${S}/popt ; cp -r ${WORKDIR}/popt ${S}/.
rm -rf ${S}/beecrypt ; cp -r ${WORKDIR}/beecrypt ${S}/.
}
addtask fixup_unpack after do_unpack before do_patch
@@ -60,45 +58,34 @@ addtask fixup_unpack after do_unpack before do_patch
# community work in progress.
DEFAULT_PREFERENCE = "-1"
S = "${WORKDIR}/rpm"
# 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 = "cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=rpm \
cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=syck \
cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=lua \
file://rpm-log-auto-rm.patch \
file://rpm-db-reduce.patch \
cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=popt \
cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=beecrypt \
file://perfile_rpmdeps.sh \
file://rpm-autogen.patch \
file://rpm-libsql-fix.patch \
file://pythondeps.sh \
"
# Bug fixes
SRC_URI += " \
file://header-include-fix.patch \
file://rpm-libsql-fix.patch \
file://rpm-platform.patch \
file://rpm-showrc.patch \
file://rpm-platform2.patch \
file://rpm-tools-mtree-LDFLAGS.patch \
file://rpm-fileclass.patch \
file://rpm-canonarch.patch \
file://rpm-no-loopmsg.patch \
file://rpm-scriptletexechelper.patch \
file://pythondeps.sh \
file://rpmdeps-oecore.patch \
file://rpm-resolvedep.patch \
file://rpm-no-perl-urpm.patch \
file://rpm-macros.patch \
file://rpm-lua.patch \
file://rpm-ossp-uuid.patch \
file://rpm-packageorigin.patch \
file://rpm-pkgconfigdeps.patch \
file://uclibc-support.patch \
file://rpmatch.patch \
file://fstack-protector-configure-check.patch \
file://dbconvert.patch \
file://rpm-uuid-include.patch \
file://makefile-am-exec-hook.patch \
file://rpm-db_buffer_small.patch \
file://rpm-py-init.patch \
file://python-rpm-rpmsense.patch \
file://rpm-reloc-macros.patch \
file://rpm-platform2.patch \
file://rpm-remove-sykcparse-decl.patch \
file://debugedit-segv.patch \
file://debugedit-valid-file-to-fix-segment-fault.patch \
file://rpm-platform-file-fix.patch \
@@ -107,13 +94,61 @@ SRC_URI = "cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=rpm \
file://rpm-hardlink-segfault-fix.patch \
file://rpm-payload-use-hashed-inode.patch \
file://rpm-fix-logio-cp.patch \
file://rpm-db5-or-db6.patch \
file://rpm-rpmpgp-fix.patch \
file://rpm-disable-Wno-override-init.patch \
file://rpm-realpath.patch \
file://0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch \
file://rpm-opendb-before-verifyscript-to-avoid-null-point.patch \
file://0001-define-EM_AARCH64.patch \
file://rpm-rpmfc.c-fix-for-N32-MIPS64.patch \
"
file://rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch \
file://rpm-mongodb-sasl.patch \
file://rpm-fix-parseEmbedded.patch \
file://rpm-rpmio-headers.patch \
file://rpm-python-restore-origin.patch \
file://rpm-keccak-sse-intrin.patch \
file://rpm-atomic-ops.patch \
file://rpm-gnu-atomic.patch \
file://rpm-tagname-type.patch \
file://rpm-python-tagname.patch \
file://rpm-python-AddErase.patch \
file://rpm-rpmpgp-popt.patch \
"
# OE specific changes
SRC_URI += " \
file://rpm-log-auto-rm.patch \
file://rpm-db-reduce.patch \
file://rpm-autogen.patch \
file://rpm-showrc.patch \
file://rpm-fileclass.patch \
file://rpm-scriptletexechelper.patch \
file://rpmdeps-oecore.patch \
file://rpm-no-perl-urpm.patch \
file://rpm-macros.patch \
file://rpm-lua.patch \
file://rpm-ossp-uuid.patch \
file://rpm-uuid-include.patch \
file://rpm-pkgconfigdeps.patch \
file://no-ldflags-in-pkgconfig.patch \
file://dbconvert.patch \
file://rpm-db_buffer_small.patch \
file://rpm-py-init.patch \
file://rpm-reloc-macros.patch \
file://rpm-db5-or-db6.patch \
file://rpm-db60.patch \
file://rpmqv_cc_b_gone.patch \
file://rpm-realpath.patch \
file://rpm-check-rootpath-reasonableness.patch \
file://rpm-macros.in-disable-external-key-server.patch \
file://configure.ac-check-for-both-gpg2-and-gpg.patch \
file://rpm-disable-auto-stack-protector.patch \
file://popt-disable-auto-stack-protector.patch \
file://rpm-syck-fix-gram.patch \
file://rpm-rpmdb-grammar.patch \
file://rpm-disable-blaketest.patch \
"
SRC_URI_append_libc-musl = "\
file://0001-rpm-Fix-build-on-musl.patch \
"
# Uncomment the following line to enable platform score debugging
# This is useful when identifying issues with Smart being unable
# to process certain package feeds.
@@ -123,16 +158,25 @@ inherit autotools gettext
acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
# The local distribution macro directory
distromacrodir = "${libdir}/rpm/poky"
# Specify the default rpm macros in terms of adjustable variables
rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros"
rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:~/.oerpmmacros"
rpm_macros_class-nativesdk = "%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:~/.oerpmmacros"
rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros"
rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros"
rpm_macros_class-nativesdk = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros"
# sqlite lua tcl augeas nss gcrypt neon xz xar keyutils perl selinux
# Note: perl and sqlite w/o db specified does not currently work.
# tcl, augeas, nss, gcrypt, xar and keyutils support is untested.
PACKAGECONFIG ??= "db bzip2 zlib beecrypt openssl libelf python"
PACKAGECONFIG ??= "db bzip2 zlib popt openssl libelf python"
# Note: switching to internal popt may not work, as it will generate
# a shared library which will intentionally not be packaged.
#
# If you intend to use the internal version, additional work may be required.
PACKAGECONFIG[popt] = "--with-popt=external,--with-popt=internal,popt,"
PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2,"
PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz,"
@@ -193,7 +237,6 @@ EXTRA_OECONF += "--verbose \
--with-uuid \
--with-attr \
--with-acl \
--with-popt=external \
--with-pthreads \
--without-cudf \
--without-ficl \
@@ -205,6 +248,7 @@ EXTRA_OECONF += "--verbose \
--without-gpsee \
--without-ruby \
--without-squirrel \
--without-sasl2 \
--with-build-extlibdep \
--with-build-maxextlibdep \
--without-valgrind \
@@ -224,7 +268,7 @@ CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE"
LDFLAGS_append_libc-uclibc = "-lrt -lpthread"
PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-staticdev python-rpm-dev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale"
PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm perl-module-rpm ${PN}-locale"
SOLIBS = "5.4.so"
@@ -342,24 +386,21 @@ FILES_${PN}-build = "${prefix}/src/rpm \
${libdir}/rpm/vpkg-provides.sh \
${libdir}/rpm/vpkg-provides2.sh \
${libdir}/rpm/perfile_rpmdeps.sh \
${distromacrodir} \
"
RDEPENDS_${PN} = "base-files run-postinsts"
RDEPENDS_${PN}_class-native = ""
RDEPENDS_${PN}_class-nativesdk = ""
RDEPENDS_${PN}-build = "file bash perl"
RDEPENDS_python-rpm = "${PN}"
RDEPENDS_python-rpm = "${PN} python"
FILES_python-rpm-dev = "${libdir}/python*/site-packages/rpm/*.la"
FILES_python-rpm-staticdev = "${libdir}/python*/site-packages/rpm/*.a"
FILES_python-rpm = "${libdir}/python*/site-packages/rpm"
PROVIDES += "python-rpm"
FILES_perl-module-rpm = "${libdir}/perl/*/* \
"
FILES_perl-module-rpm-dev = "${prefix}/share/man/man3/RPM* \
"
RDEPENDS_${PN}-dev += "bash"
FILES_${PN}-dev = "${includedir}/rpm \
@@ -388,6 +429,7 @@ FILES_${PN}-staticdev = " \
${libdir}/librpmmisc.a \
${libdir}/librpmbuild.a \
${libdir}/rpm/lib/liblua.a \
${libdir}/python*/site-packages/rpm/*.a \
"
do_configure() {
@@ -408,12 +450,18 @@ do_configure() {
}
do_install_append() {
# Preserve the previous default of DSA self-signed pkgs
sed -i -e 's,%_build_sign.*,%_build_sign DSA,' ${D}/${libdir}/rpm/macros.rpmbuild
sed -i -e 's,%__scriptlet_requires,#%%__scriptlet_requires,' ${D}/${libdir}/rpm/macros
sed -i -e 's,%__perl_provides,#%%__perl_provides,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/*
sed -i -e 's,%__perl_requires,#%%__perl_requires,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/*
sed -i -e 's,%_repackage_all_erasures[^_].*,%_repackage_all_erasures 0,' ${D}/${libdir}/rpm/macros
sed -i -e 's,^#%_openall_before_chroot.*,%_openall_before_chroot\t1,' ${D}/${libdir}/rpm/macros
# Enable MIPS64 N32 transactions. (This is a no-op on non-MIPS targets.)
sed -i -e 's,%_transaction_color[^_].*,%_transaction_color 7,' ${D}/${libdir}/rpm/macros
# Enable Debian style arbitrary tags...
sed -i -e 's,%_arbitrary_tags[^_].*,%_arbitrary_tags %{_arbitrary_tags_debian},' ${D}/${libdir}/rpm/macros
@@ -485,6 +533,83 @@ do_install_append() {
}
do_install_append_class-target() {
# Create and install distribution specific macros
mkdir -p ${D}/${distromacrodir}
cat << EOF > ${D}/${distromacrodir}/macros
%_defaultdocdir ${docdir}
%_prefix ${prefix}
%_exec_prefix ${exec_prefix}
%_datarootdir ${datadir}
%_bindir ${bindir}
%_sbindir ${sbindir}
%_libexecdir %{_libdir}/%{name}
%_datadir ${datadir}
%_sysconfdir ${sysconfdir}
%_sharedstatedir ${sharedstatedir}
%_localstatedir ${localstatedir}
%_lib lib
%_libdir %{_exec_prefix}/%{_lib}
%_includedir ${includedir}
%_oldincludedir ${oldincludedir}
%_infodir ${infodir}
%_mandir ${mandir}
%_localedir %{_libdir}/locale
EOF
# Create and install multilib specific macros
${@multilib_rpmmacros(d)}
}
def multilib_rpmmacros(d):
localdata = d.createCopy()
# We need to clear the TOOLCHAIN_OPTIONS (--sysroot)
localdata.delVar('TOOLCHAIN_OPTIONS')
# Set 'localdata' values to be consistent with 'd' values.
localdata.setVar('distromacrodir', d.getVar('distromacrodir', True))
localdata.setVar('WORKDIR', d.getVar('WORKDIR', True))
ret = gen_arch_macro(localdata)
variants = d.getVar("MULTILIB_VARIANTS", True) or ""
for item in variants.split():
# Load overrides from 'd' to avoid having to reset the value...
localdata = d.createCopy()
overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
localdata.setVar("OVERRIDES", overrides)
localdata.setVar("MLPREFIX", item + "-")
bb.data.update_data(localdata)
ret += gen_arch_macro(localdata)
return ret
def gen_arch_macro(d):
# Generate shell script to produce the file as part of do_install
val = "mkdir -p ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}\n"
val += "cat << EOF > ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}/macros\n"
val += "%_lib ${baselib}\n"
val += "%_libdir ${libdir}\n"
val += "%_localedir ${localedir}\n"
val += "\n"
val += "# Toolchain configuration\n"
val += "%TOOLCHAIN_OPTIONS %{nil}\n"
val += "%__ar ${@d.getVar('AR', True).replace('$','%')}\n"
val += "%__as ${@d.getVar('AS', True).replace('$','%')}\n"
val += "%__cc ${@d.getVar('CC', True).replace('$','%')}\n"
val += "%__cpp ${@d.getVar('CPP', True).replace('$','%')}\n"
val += "%__cxx ${@d.getVar('CXX', True).replace('$','%')}\n"
val += "%__ld ${@d.getVar('LD', True).replace('$','%')}\n"
val += "%__nm ${@d.getVar('NM', True).replace('$','%')}\n"
val += "%__objcopy ${@d.getVar('OBJCOPY', True).replace('$','%')}\n"
val += "%__objdump ${@d.getVar('OBJDUMP', True).replace('$','%')}\n"
val += "%__ranlib ${@d.getVar('RANLIB', True).replace('$','%')}\n"
val += "%__strip ${@d.getVar('STRIP', True).replace('$','%')}\n"
val += "EOF\n"
val += "\n"
return d.expand(val)
add_native_wrapper() {
create_wrapper ${D}/${bindir}/rpm \
RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \

View File

@@ -5,8 +5,6 @@ verifying, querying, and updating software packages. Each software \
package consists of an archive of files along with information about \
the package like its version, a description, etc."
RECIPE_NO_UPDATE_REASON = "5.4.15 has a package database issue: http://lists.openembedded.org/pipermail/openembedded-core/2015-August/109187.html"
SUMMARY_${PN}-libs = "Libraries for manipulating RPM packages"
DESCRIPTION_${PN}-libs = "This package contains the RPM shared libraries."
@@ -37,72 +35,118 @@ written in the Perl programming language to use the interface \
supplied by the RPM Package Manager libraries."
HOMEPAGE = "http://rpm5.org/"
LICENSE = "LGPLv2.1"
LICENSE = "LGPLv2.1 & Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
LIC_FILES_CHKSUM += "file://rpmio/mongo.c;begin=5;end=18;md5=d8327ba2c71664c059143e6d333b8901"
DEPENDS = "libpcre attr acl popt ossp-uuid file byacc-native"
# We must have gettext-native, we need gettextize, which may not be provided
DEPENDS = "libpcre attr acl ossp-uuid file byacc-native gettext-native"
DEPENDS_append_class-native = " file-replacement-native"
# 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.14-0.20131024.src.rpm;extract=rpm-5.4.14.tar.gz \
file://rpm-log-auto-rm.patch \
file://rpm-db-reduce.patch \
# There is no official 5.4.16 release yet, so start w/ 5.4.15 and patch it
# based on CVS
S = "${WORKDIR}/rpm-5.4.15"
SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm;name=srpm;extract=rpm-5.4.15.tar.gz \
http://downloads.yoctoproject.org/releases/rpm5/rpm-5.4.15-to-5.4.16-20160225.patch.gz;name=rpm-patch \
http://downloads.yoctoproject.org/releases/rpm5/syck-5.4.15-to-5.4.16-20160225.patch.gz;name=syck-patch \
http://downloads.yoctoproject.org/releases/rpm5/beecrypt-5.4.15-to-5.4.16-20160225.patch.gz;name=beecrypt-patch \
http://downloads.yoctoproject.org/releases/rpm5/lua-5.4.15-to-5.4.16-20160225.patch.gz;name=lua-patch \
file://perfile_rpmdeps.sh \
file://rpm-autogen.patch \
file://rpm-libsql-fix.patch \
file://pythondeps.sh \
"
SRC_URI[srpm.md5sum] = "d53782842ac11b3100a43fb2958c9bc0"
SRC_URI[srpm.sha256sum] = "d4ae5e9ed5df8ab9931b660f491418d20ab5c4d72eb17ed9055b80b71ef6c4ee"
SRC_URI[rpm-patch.md5sum] = "8b7deb1c9574d3d47ed8ba8c690fd8bf"
SRC_URI[rpm-patch.sha256sum] = "1c1983d001b04eaa23eb2c8d9598b9d0899acb0a89f54a2d4c4e974086fd17a5"
SRC_URI[syck-patch.md5sum] = "f31d7a32105a364688354419ec3559e4"
SRC_URI[syck-patch.sha256sum] = "4dd1d04489206d8b5d1970f2a8d143a002f2895cefbe15d73459785096545e8a"
SRC_URI[beecrypt-patch.md5sum] = "9e71ee3ccb0a52985a071dd250279132"
SRC_URI[beecrypt-patch.sha256sum] ="df7c0708a7fab9bdf6d46194519b42e736f99cb0599dcc1c3c1bf1b228705cde"
SRC_URI[lua-patch.md5sum] = "ca10d03d83b1fc1c31a0b50819534cd7"
SRC_URI[lua-patch.sha256sum] = "6bde435cc827a7d4b2520e8f3e1c9bd2ca74375de0a4402aa99ef4d48eab9a7e"
# Bug fixes
SRC_URI += " \
file://header-include-fix.patch \
file://rpm-libsql-fix.patch \
file://rpm-platform.patch \
file://rpm-showrc.patch \
file://rpm-platform2.patch \
file://rpm-tools-mtree-LDFLAGS.patch \
file://rpm-fileclass.patch \
file://rpm-canonarch.patch \
file://rpm-no-loopmsg.patch \
file://rpm-scriptletexechelper.patch \
file://pythondeps.sh \
file://rpmdeps-oecore.patch \
file://rpm-resolvedep.patch \
file://rpm-no-perl-urpm.patch \
file://rpm-macros.patch \
file://rpm-lua.patch \
file://rpm-ossp-uuid.patch \
file://rpm-packageorigin.patch \
file://rpm-pkgconfigdeps.patch \
file://uclibc-support.patch \
file://rpmatch.patch \
file://fstack-protector-configure-check.patch \
file://dbconvert.patch \
file://rpm-uuid-include.patch \
file://makefile-am-exec-hook.patch \
file://rpm-db_buffer_small.patch \
file://rpm-py-init.patch \
file://python-rpm-rpmsense.patch \
file://rpm-reloc-macros.patch \
file://rpm-platform2.patch \
file://rpm-remove-sykcparse-decl.patch \
file://debugedit-segv.patch \
file://debugedit-valid-file-to-fix-segment-fault.patch \
file://rpm-platform-file-fix.patch \
file://rpm-lsb-compatibility.patch \
file://rpm-tag-generate-endian-conversion-fix.patch \
file://verify-fix-broken-logic-for-ghost-avoidance-Mark-Hat.patch \
file://rpm-hardlink-segfault-fix.patch \
file://rpm-payload-use-hashed-inode.patch \
file://rpm-fix-logio-cp.patch \
file://rpm-db5-or-db6.patch \
file://rpm-disable-Wno-override-init.patch \
file://rpmqv_cc_b_gone.patch \
file://rpm-realpath.patch \
file://0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch \
file://no-ldflags-in-pkgconfig.patch \
file://rpm-lua-fix-print.patch \
file://rpm-check-rootpath-reasonableness.patch \
file://rpm-macros.in-disable-external-key-server.patch \
file://rpm-opendb-before-verifyscript-to-avoid-null-point.patch \
file://configure.ac-check-for-both-gpg2-and-gpg.patch \
file://0001-define-EM_AARCH64.patch \
file://rpm-rpmfc.c-fix-for-N32-MIPS64.patch \
file://rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch \
file://rpm-mongodb-sasl.patch \
file://rpm-fix-parseEmbedded.patch \
file://rpm-rpmio-headers.patch \
file://rpm-python-restore-origin.patch \
file://rpm-keccak-sse-intrin.patch \
file://rpm-atomic-ops.patch \
file://rpm-gnu-atomic.patch \
file://rpm-tagname-type.patch \
file://rpm-python-tagname.patch \
file://rpm-python-AddErase.patch \
file://rpm-rpmpgp-popt.patch \
"
# OE specific changes
SRC_URI += " \
file://rpm-log-auto-rm.patch \
file://rpm-db-reduce.patch \
file://rpm-autogen.patch \
file://rpm-showrc.patch \
file://rpm-fileclass.patch \
file://rpm-scriptletexechelper.patch \
file://rpmdeps-oecore.patch \
file://rpm-no-perl-urpm.patch \
file://rpm-macros.patch \
file://rpm-lua.patch \
file://rpm-ossp-uuid.patch \
file://rpm-uuid-include.patch \
file://rpm-pkgconfigdeps.patch \
file://no-ldflags-in-pkgconfig.patch \
file://dbconvert.patch \
file://rpm-db_buffer_small.patch \
file://rpm-py-init.patch \
file://rpm-reloc-macros.patch \
file://rpm-db5-or-db6.patch \
file://rpm-db60.patch \
file://rpmqv_cc_b_gone.patch \
file://rpm-realpath.patch \
file://rpm-check-rootpath-reasonableness.patch \
file://rpm-macros.in-disable-external-key-server.patch \
file://configure.ac-check-for-both-gpg2-and-gpg.patch \
file://rpm-disable-auto-stack-protector.patch \
file://popt-disable-auto-stack-protector.patch \
file://rpm-syck-fix-gram.patch \
file://rpm-rpmdb-grammar.patch \
file://rpm-disable-blaketest.patch \
"
SRC_URI_append_libc-musl = "\
@@ -113,9 +157,6 @@ SRC_URI_append_libc-musl = "\
# to process certain package feeds.
#SRC_URI += "file://rpm-debug-platform.patch"
SRC_URI[md5sum] = "25093d399a0b5d1342d24900a91b347d"
SRC_URI[sha256sum] = "676e3ab41f72e3b504e04109cfb565a300742f56a7da084f202013b30eeae467"
UPSTREAM_CHECK_REGEX = "rpm-(?P<pver>(\d+[\.\-_]*)+)-.*$"
inherit autotools gettext
@@ -134,7 +175,13 @@ rpm_macros_class-nativesdk = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macro
# Note: perl and sqlite w/o db specified does not currently work.
# tcl, augeas, nss, gcrypt, xar and keyutils support is untested.
PACKAGECONFIG ??= "db bzip2 zlib beecrypt openssl libelf python"
PACKAGECONFIG ??= "db bzip2 zlib popt openssl libelf python"
# Note: switching to internal popt may not work, as it will generate
# a shared library which will intentionally not be packaged.
#
# If you intend to use the internal version, additional work may be required.
PACKAGECONFIG[popt] = "--with-popt=external,--with-popt=internal,popt,"
PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2,"
PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz,"
@@ -195,7 +242,6 @@ EXTRA_OECONF += "--verbose \
--with-uuid \
--with-attr \
--with-acl \
--with-popt=external \
--with-pthreads \
--without-cudf \
--without-ficl \
@@ -207,6 +253,7 @@ EXTRA_OECONF += "--verbose \
--without-gpsee \
--without-ruby \
--without-squirrel \
--without-sasl2 \
--with-build-extlibdep \
--with-build-maxextlibdep \
--without-valgrind \
@@ -351,7 +398,7 @@ RDEPENDS_${PN}_class-native = ""
RDEPENDS_${PN}_class-nativesdk = ""
RDEPENDS_${PN}-build = "file bash perl"
RDEPENDS_python-rpm = "${PN}"
RDEPENDS_python-rpm = "${PN} python"
FILES_python-rpm = "${libdir}/python*/site-packages/rpm"
PROVIDES += "python-rpm"
@@ -408,6 +455,9 @@ do_configure() {
}
do_install_append() {
# Preserve the previous default of DSA self-signed pkgs
sed -i -e 's,%_build_sign.*,%_build_sign DSA,' ${D}/${libdir}/rpm/macros.rpmbuild
sed -i -e 's,%__scriptlet_requires,#%%__scriptlet_requires,' ${D}/${libdir}/rpm/macros
sed -i -e 's,%__perl_provides,#%%__perl_provides,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/*
sed -i -e 's,%__perl_requires,#%%__perl_requires,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/*
@@ -517,6 +567,14 @@ EOF
${@multilib_rpmmacros(d)}
}
do_install_append_class-native () {
sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env nativepython|' ${D}/${libdir}/python2.7/site-packages/rpm/transaction.py
}
do_install_append_class-nativesdk () {
sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env python|' ${D}/${libdir}/python2.7/site-packages/rpm/transaction.py
}
def multilib_rpmmacros(d):
localdata = d.createCopy()
# We need to clear the TOOLCHAIN_OPTIONS (--sysroot)