diff --git a/SOURCES/rpm-4.11.3-update-config.guess.patch b/SOURCES/rpm-4.11.3-update-config.guess.patch new file mode 100644 index 0000000..bdaef03 --- /dev/null +++ b/SOURCES/rpm-4.11.3-update-config.guess.patch @@ -0,0 +1,364 @@ +--- rpm-4.11.3/config.guess.orig 2012-11-07 13:55:52.000000000 +0100 ++++ rpm-4.11.3/config.guess 2013-12-27 18:11:24.000000000 +0100 +@@ -1,14 +1,12 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +-# 2011, 2012 Free Software Foundation, Inc. ++# Copyright 1992-2013 Free Software Foundation, Inc. + +-timestamp='2012-02-10' ++timestamp='2013-06-10' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -22,19 +20,17 @@ + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +- +-# Originally written by Per Bothner. Please send patches (context +-# diff format) to and include a ChangeLog +-# entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# Originally written by Per Bothner. + # + # You can get the latest version of this script from: + # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++# ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++ + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -54,9 +50,7 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +-Free Software Foundation, Inc. ++Copyright 1992-2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -138,6 +132,27 @@ + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=gnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include ++ #if defined(__UCLIBC__) ++ LIBC=uclibc ++ #elif defined(__dietlibc__) ++ LIBC=dietlibc ++ #else ++ LIBC=gnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ ;; ++esac ++ + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +@@ -200,6 +215,10 @@ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -302,7 +321,7 @@ + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -801,6 +820,9 @@ + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; +@@ -852,21 +874,21 @@ + exit ;; + *:GNU:*:*) + # the GNU system +- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland +- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +@@ -879,59 +901,54 @@ + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) +- echo ${UNAME_MACHINE}-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) +- echo ${UNAME_MACHINE}-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) +- LIBC=gnu +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build +@@ -950,54 +967,63 @@ + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; ++ or1k:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + or32:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) +- echo sparc-unknown-linux-gnu ++ echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-unknown-linux-gnu ;; +- PA8*) echo hppa2.0-unknown-linux-gnu ;; +- *) echo hppa-unknown-linux-gnu ;; ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu ++ echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu ++ echo powerpc-unknown-linux-${LIBC} ++ exit ;; ++ ppc64le:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; ++ ppcle:Linux:*:*) ++ echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) +- echo ${UNAME_MACHINE}-ibm-linux ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) +- echo ${UNAME_MACHINE}-dec-linux-gnu ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. +@@ -1201,6 +1227,9 @@ + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1227,19 +1256,21 @@ + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown +- case $UNAME_PROCESSOR in +- i386) +- eval $set_cc_for_build +- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +- grep IS_64BIT_ARCH >/dev/null +- then +- UNAME_PROCESSOR="x86_64" +- fi +- fi ;; +- unknown) UNAME_PROCESSOR=powerpc ;; +- esac ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" = unknown ; then ++ UNAME_PROCESSOR=powerpc ++ fi ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=x86_64 ;; ++ powerpc) UNAME_PROCESSOR=powerpc64 ;; ++ esac ++ fi ++ fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) +@@ -1256,7 +1287,7 @@ + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1330,9 +1361,6 @@ + exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c < +Date: Tue, 24 Jun 2014 15:11:32 +0300 +Subject: [PATCH] Add disabler flag + --noplugins cli switch for plugins + +- Always knew we'd need a plugin disabler flag sooner than later but + didn't realize enabled plugins would fail basically the entire + test-suite :) +- Enable --noplugins for entire test-suite for now, but eventually + we'll need to come up with ways to test plugins as well +--- + lib/poptALL.c | 5 +++++ + lib/rpmts.h | 2 +- + lib/transaction.c | 2 +- + python/rpmmodule.c | 1 + + tests/atlocal.in | 2 +- + 5 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/lib/poptALL.c b/lib/poptALL.c +index 31e1210..2e894e0 100644 +--- a/lib/poptALL.c ++++ b/lib/poptALL.c +@@ -187,6 +187,11 @@ struct poptOption rpmcliAllPoptTable[] = { + N_("read instead of default file(s)"), + N_("") }, + ++ /* XXX this is a bit out of place here but kinda unavoidable... */ ++ { "noplugins", '\0', POPT_BIT_SET, ++ &rpmIArgs.transFlags, RPMTRANS_FLAG_NOPLUGINS, ++ N_("don't enable any plugins"), NULL }, ++ + { "nodigest", '\0', 0, 0, RPMCLI_POPT_NODIGEST, + N_("don't verify package digest(s)"), NULL }, + { "nohdrchk", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0, RPMCLI_POPT_NOHDRCHK, +diff --git a/lib/rpmts.h b/lib/rpmts.h +index e1b260d..5231c80 100644 +--- a/lib/rpmts.h ++++ b/lib/rpmts.h +@@ -34,7 +34,7 @@ enum rpmtransFlags_e { + RPMTRANS_FLAG_NOTRIGGERS = (1 << 4), /*!< from --notriggers */ + RPMTRANS_FLAG_NODOCS = (1 << 5), /*!< from --excludedocs */ + RPMTRANS_FLAG_ALLFILES = (1 << 6), /*!< from --allfiles */ +- /* bit 7 unused */ ++ RPMTRANS_FLAG_NOPLUGINS = (1 << 7), /*!< from --noplugins */ + RPMTRANS_FLAG_NOCONTEXTS = (1 << 8), /*!< from --nocontexts */ + /* bits 9-15 unused */ + RPMTRANS_FLAG_NOTRIGGERPREIN= (1 << 16), /*!< from --notriggerprein */ +diff --git a/lib/transaction.c b/lib/transaction.c +index 0317c1e..736f64d 100644 +--- a/lib/transaction.c ++++ b/lib/transaction.c +@@ -1361,6 +1361,9 @@ rpmRC rpmtsSetupTransactionPlugins(rpmts ts) + * (verification of non-installed package) where this is not true + * currently but that's not a new issue. + */ ++ ++ if (rpmtsFlags(ts) & RPMTRANS_FLAG_NOPLUGINS) ++ return RPMRC_OK; + + dsoPath = rpmExpand("%{__plugindir}/*.so", NULL); + if (rpmGlob(dsoPath, &nfiles, &files) == 0) { +diff --git a/python/rpmmodule.c b/python/rpmmodule.c +index e0fcef0..4e6fe27 100644 +--- a/python/rpmmodule.c ++++ b/python/rpmmodule.c +@@ -428,6 +428,7 @@ static int initModule(PyObject *m) + REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERS); + REGISTER_ENUM(RPMTRANS_FLAG_NODOCS); + REGISTER_ENUM(RPMTRANS_FLAG_ALLFILES); ++ REGISTER_ENUM(RPMTRANS_FLAG_NOPLUGINS); + REGISTER_ENUM(RPMTRANS_FLAG_KEEPOBSOLETE); + REGISTER_ENUM(RPMTRANS_FLAG_NOCONTEXTS); + REGISTER_ENUM(RPMTRANS_FLAG_REPACKAGE); +diff --git a/tests/atlocal.in b/tests/atlocal.in +index 10ff27a..c2a07d5 100644 +--- a/tests/atlocal.in ++++ b/tests/atlocal.in +@@ -30,6 +30,6 @@ function run() + function runroot() + { + (cd ${RPMTEST} && \ +- MAGIC="/magic/magic" FAKECHROOT_BASE="${RPMTEST}" fakechroot "$@" --define "_topdir /build" ++ MAGIC="/magic/magic" FAKECHROOT_BASE="${RPMTEST}" fakechroot "$@" --define "_topdir /build" --noplugins + ) + } +-- +2.5.5 + +--- current/doc/rpm.8.orig 2016-07-14 14:34:14.286125290 +0200 ++++ current/doc/rpm.8 2016-07-14 14:36:29.715481426 +0200 +@@ -86,7 +86,7 @@ + [\fB--excludedocs\fR] [\fB--force\fR] [\fB-h,--hash\fR] + [\fB--ignoresize\fR] [\fB--ignorearch\fR] [\fB--ignoreos\fR] + [\fB--includedocs\fR] [\fB--justdb\fR] [\fB--nocollections\fR] +- [\fB--nodeps\fR] [\fB--nodigest\fR] [\fB--nosignature\fR] ++ [\fB--nodeps\fR] [\fB--nodigest\fR] [\fB--nosignature\fR] [\fB--noplugins\fR] + [\fB--noorder\fR] [\fB--noscripts\fR] [\fB--notriggers\fR] + [\fB--oldpackage\fR] [\fB--percent\fR] [\fB--prefix \fINEWPATH\fB\fR] + [\fB--relocate \fIOLDPATH\fB=\fINEWPATH\fB\fR] +@@ -269,6 +269,9 @@ + Don't reorder the packages for an install. The list of + packages would normally be reordered to satisfy dependencies. + .TP ++\fB--noplugins\fR ++Do not load and execute plugins. ++.TP + \fB--noscripts\fR + .TP + \fB--nopre\fR diff --git a/SOURCES/rpm-4.11.x-bdb-warings.patch b/SOURCES/rpm-4.11.x-bdb-warings.patch new file mode 100644 index 0000000..9241194 --- /dev/null +++ b/SOURCES/rpm-4.11.x-bdb-warings.patch @@ -0,0 +1,10 @@ +--- rpm-4.11.3/lib/backend/db3.c.orig 2016-04-22 09:16:15.019084419 +0200 ++++ rpm-4.11.3/lib/backend/db3.c 2016-04-22 09:17:16.448291533 +0200 +@@ -190,6 +190,7 @@ + dbenv->set_alloc(dbenv, rmalloc, rrealloc, NULL); + dbenv->set_errcall(dbenv, NULL); + dbenv->set_errpfx(dbenv, _errpfx); ++ dbenv->set_msgfile(dbenv, stderr); + + /* + * These enable automatic stale lock removal. diff --git a/SOURCES/rpm-4.11.x-define-PY_SSIZE_T_CLEAN.patch b/SOURCES/rpm-4.11.x-define-PY_SSIZE_T_CLEAN.patch new file mode 100644 index 0000000..b96d58c --- /dev/null +++ b/SOURCES/rpm-4.11.x-define-PY_SSIZE_T_CLEAN.patch @@ -0,0 +1,32 @@ +From f0a58d1dced6215b7caaa70db17d54834e0cd44e Mon Sep 17 00:00:00 2001 +From: Lubos Kardos +Date: Fri, 18 Sep 2015 15:29:25 +0200 +Subject: [PATCH] Define PY_SSIZE_T_CLEAN + +When PyArg_ParseTupleAndKeywords() is used with format argument "s#" +that means get a string and his length then the length is returned as +as a Py_ssize_t in python3 but as an int in python2, which casues +a problem because rpmfd_write() that uses PyArg_ParseTupleAndKeywords() +expects the length as a Py_ssize_t always. This problem affects big +endian systems with python2 as default. If PY_SSIZE_T_CLEAN is defined +then PyArg_ParseTupleAndKeywords() returns the length as a Py_ssize_t +in both python2 and python3. +--- + python/rpmsystem-py.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/python/rpmsystem-py.h b/python/rpmsystem-py.h +index 50e8770..c8423e3 100644 +--- a/python/rpmsystem-py.h ++++ b/python/rpmsystem-py.h +@@ -5,6 +5,7 @@ + #include + #endif + ++#define PY_SSIZE_T_CLEAN + #include + #include + +-- +1.9.3 + diff --git a/SOURCES/rpm-4.11.x-man-systemd-inhibit.patch b/SOURCES/rpm-4.11.x-man-systemd-inhibit.patch new file mode 100644 index 0000000..50e0af3 --- /dev/null +++ b/SOURCES/rpm-4.11.x-man-systemd-inhibit.patch @@ -0,0 +1,68 @@ +From 4a2c311bfe21eda9472f52795db1c9f883e6c194 Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Mon, 4 Jul 2016 17:45:33 +0200 +Subject: [PATCH] Add man page for systemd-inhibit plugin + +--- + doc/Makefile.am | 1 + + doc/rpm-plugin-systemd-inhibit.8 | 36 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+) + create mode 100644 doc/rpm-plugin-systemd-inhibit.8 + +diff --git a/doc/Makefile.am b/doc/Makefile.am +index f7940b9..d2f520d 100644 +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -9,6 +9,7 @@ EXTRA_DIST += $(man_man1_DATA) + man_man8dir = $(mandir)/man8 + man_man8_DATA = rpm.8 rpmbuild.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8 + man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 ++man_man8_DATA += rpm-plugin-systemd-inhibit.8 + EXTRA_DIST += $(man_man8_DATA) + + man_fr_man8dir = $(mandir)/fr/man8 +diff --git a/doc/rpm-plugin-systemd-inhibit.8 b/doc/rpm-plugin-systemd-inhibit.8 +new file mode 100644 +index 0000000..b49e8ef +--- /dev/null ++++ b/doc/rpm-plugin-systemd-inhibit.8 +@@ -0,0 +1,36 @@ ++.TH "RPM-SYSTEMD-INHIBIT" "8" "14 Apr 2016" "Red Hat, Inc." ++.SH NAME ++rpm-plugin-systemd-inhibit \- Plugin for the RPM Package Manager ++ ++.SH Description ++ ++This plugin for RPM prevents the system to enter shutdown, sleep or idle ++mode while there is a rpm transaction running to prevent system corruption ++that can occur if the transaction is interrupted by a reboot. ++ ++This is achieved by using the inhibit DBUS interface of systemd. The call is ++roughly equivalent to executing ++ ++\fBsystemd-inhibit --mode=block --what=idle:sleep:shutdown --who=RPM --why="Transaction running"\fR ++ ++See \fBsystemd-inhibit(1)\fR for the details of this mechanism. ++ ++It is strongly advised to have the plugin installed on all systemd ++based systems. ++ ++.SH Prerequisites ++ ++For the plugin to work systemd has to be used as init system and ++though the DBUS system bus must be available. If the plugin cannot access the ++interface it gives a warning but does not stop the transaction. ++ ++.SH Configuration ++ ++The plugin currently does not have any configuration option other than ++turning it on and off. It can be disabled by commenting out the ++\fI%__transaction_systemd_inhibit\fR macro in main macros file ++(typically located at \fI/usr/lib/rpm/macros\fR) or otherwise change ++the value of the macro. ++ ++Another option is to remove the plugin from the system if it is ++packaged in its own sub package. +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-move-rename.patch b/SOURCES/rpm-4.11.x-move-rename.patch new file mode 100644 index 0000000..1f38432 --- /dev/null +++ b/SOURCES/rpm-4.11.x-move-rename.patch @@ -0,0 +1,89 @@ +From d519580bd638ceb48829ae66557ca3c5941b4a5f Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Wed, 4 May 2016 14:05:06 +0200 +Subject: [PATCH] Set permissions before moving new files to their final place + +--- + lib/fsm.c | 37 ++++++++++++++++++++----------------- + 1 file changed, 20 insertions(+), 17 deletions(-) + +diff --git a/lib/fsm.c b/lib/fsm.c +index 1ee7e67..3bb23a4 100644 +--- a/lib/fsm.c ++++ b/lib/fsm.c +@@ -621,14 +621,15 @@ static FSM_t fsmFree(FSM_t fsm) + + /* Find and set file security context */ + static int fsmSetSELabel(struct selabel_handle *sehandle, +- const char *path, mode_t mode) ++ const char *path, const char * nominalpath, ++ mode_t mode) + { + int rc = 0; + #if WITH_SELINUX + if (sehandle) { + security_context_t scon = NULL; + +- if (selabel_lookup_raw(sehandle, &scon, path, mode) == 0) { ++ if (selabel_lookup_raw(sehandle, &scon, nominalpath, mode) == 0) { + rc = lsetfilecon(path, scon); + + if (_fsm_debug) { +@@ -1215,7 +1216,7 @@ static int fsmMkdirs(rpmfi fi, rpmfs fs, struct selabel_handle *sehandle) + mode_t mode = S_IFDIR | (_dirPerms & 07777); + rc = fsmMkdir(dn, mode); + if (!rc) { +- rc = fsmSetSELabel(sehandle, dn, mode); ++ rc = fsmSetSELabel(sehandle, dn, dn, mode); + + rpmlog(RPMLOG_DEBUG, + "%s directory created with perms %04o\n", +@@ -1534,22 +1535,11 @@ static int fsmCommit(FSM_t fsm, int ix) + /* Backup on-disk file if needed. Directories are handled earlier */ + if (!S_ISDIR(st->st_mode)) + rc = fsmBackup(fsm); +- /* Rename temporary to final file name. */ +- if (!S_ISDIR(st->st_mode) && (fsm->suffix || fsm->nsuffix)) { +- char *npath = fsmFsPath(fsm, 0, fsm->nsuffix); +- rc = fsmRename(fsm->path, npath, fsm->mapFlags); +- if (!rc && fsm->nsuffix) { +- char * opath = fsmFsPath(fsm, 0, NULL); +- rpmlog(RPMLOG_WARNING, _("%s created as %s\n"), +- opath, npath); +- free(opath); +- } +- free(fsm->path); +- fsm->path = npath; +- } + /* Set file security context (if enabled) */ + if (!rc && !getuid()) { +- rc = fsmSetSELabel(fsm->sehandle, fsm->path, fsm->sb.st_mode); ++ char * opath = fsmFsPath(fsm, 0, NULL); ++ rc = fsmSetSELabel(fsm->sehandle, fsm->path, opath, fsm->sb.st_mode); ++ opath = _free(opath); + } + if (S_ISLNK(st->st_mode)) { + if (!rc && !getuid()) +@@ -1571,6 +1561,19 @@ static int fsmCommit(FSM_t fsm, int ix) + rc = fsmSetFCaps(fsm->path, rpmfiFCapsIndex(fi, ix)); + } + } ++ /* Rename temporary to final file name. */ ++ if (!rc && !S_ISDIR(st->st_mode) && (fsm->suffix || fsm->nsuffix)) { ++ char *npath = fsmFsPath(fsm, 0, fsm->nsuffix); ++ rc = fsmRename(fsm->path, npath, fsm->mapFlags); ++ if (!rc && fsm->nsuffix) { ++ char * opath = fsmFsPath(fsm, 0, NULL); ++ rpmlog(RPMLOG_WARNING, _("%s created as %s\n"), ++ opath, npath); ++ free(opath); ++ } ++ free(fsm->path); ++ fsm->path = npath; ++ } + } + + if (rc && fsm->failedFile && *fsm->failedFile == NULL) { +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-multitheaded_xz.patch b/SOURCES/rpm-4.11.x-multitheaded_xz.patch new file mode 100644 index 0000000..cb84970 --- /dev/null +++ b/SOURCES/rpm-4.11.x-multitheaded_xz.patch @@ -0,0 +1,111 @@ +diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c +index cd223e8..f23fc11 100644 +--- a/rpmio/rpmio.c ++++ b/rpmio/rpmio.c +@@ -5,6 +5,7 @@ + #include "system.h" + #include + #include ++#include + + #include + #include +@@ -873,7 +874,12 @@ static const char * getFdErrstr (FD_t fd) + + #include + #include ++#define LZMA_UNSTABLE + #include ++/* Multithreading support in stable API since xz 5.2.0 */ ++#if LZMA_VERSION >= 50010020 ++#define HAVE_LZMA_MT ++#endif + + #define kBufferSize (1 << 15) + +@@ -897,7 +902,10 @@ static LZFILE *lzopen_internal(const char *path, const char *mode, int fd, int x + LZFILE *lzfile; + lzma_ret ret; + lzma_stream init_strm = LZMA_STREAM_INIT; +- ++ uint64_t mem_limit = rpmExpandNumeric("%{_xz_memlimit}"); ++#ifdef HAVE_LZMA_MT ++ int threads = 0; ++#endif + for (; *mode; mode++) { + if (*mode == 'w') + encoding = 1; +@@ -905,6 +913,21 @@ static LZFILE *lzopen_internal(const char *path, const char *mode, int fd, int x + encoding = 0; + else if (*mode >= '1' && *mode <= '9') + level = *mode - '0'; ++ else if (*mode == 'T') { ++ if (isdigit(*(mode+1))) { ++#ifdef HAVE_LZMA_MT ++ threads = atoi(++mode); ++#endif ++ /* skip past rest of digits in string that atoi() ++ * should've processed ++ * */ ++ while(isdigit(*++mode)); ++ } ++#ifdef HAVE_LZMA_MT ++ else ++ threads = -1; ++#endif ++ } + } + if (fd != -1) + fp = fdopen(fd, encoding ? "w" : "r"); +@@ -924,16 +947,48 @@ static LZFILE *lzopen_internal(const char *path, const char *mode, int fd, int x + lzfile->strm = init_strm; + if (encoding) { + if (xz) { +- ret = lzma_easy_encoder(&lzfile->strm, level, LZMA_CHECK_SHA256); ++#ifdef HAVE_LZMA_MT ++ if (!threads) { ++#endif ++ ret = lzma_easy_encoder(&lzfile->strm, level, LZMA_CHECK_SHA256); ++#ifdef HAVE_LZMA_MT ++ } else { ++ if (threads == -1) ++ threads = sysconf(_SC_NPROCESSORS_ONLN); ++ lzma_mt mt_options = { ++ .flags = 0, ++ .threads = threads, ++ .block_size = 0, ++ .timeout = 0, ++ .preset = level, ++ .filters = NULL, ++ .check = LZMA_CHECK_SHA256 }; ++ ++ ret = lzma_stream_encoder_mt(&lzfile->strm, &mt_options); ++ } ++#endif + } else { + lzma_options_lzma options; + lzma_lzma_preset(&options, level); + ret = lzma_alone_encoder(&lzfile->strm, &options); + } +- } else { /* lzma_easy_decoder_memusage(level) is not ready yet, use hardcoded limit for now */ +- ret = lzma_auto_decoder(&lzfile->strm, 100<<20, 0); ++ } else { /* lzma_easy_decoder_memusage(level) is not ready yet, use hardcoded limit for now */ ++ ret = lzma_auto_decoder(&lzfile->strm, mem_limit ? mem_limit : 100<<20, 0); + } + if (ret != LZMA_OK) { ++ switch (ret) { ++ case LZMA_MEM_ERROR: ++ rpmlog(RPMLOG_ERR, "liblzma: Memory allocation failed"); ++ break; ++ ++ case LZMA_DATA_ERROR: ++ rpmlog(RPMLOG_ERR, "liblzma: File size limits exceeded"); ++ break; ++ ++ default: ++ rpmlog(RPMLOG_ERR, "liblzma: +Date: Wed, 21 Oct 2015 15:25:47 +0200 +Subject: [PATCH] Overwrite a file if it is not marked as config any more. + +If a file was marked as config in the previous version of a package but +it is not marked as config in currently being installed version of +the package then backup the old file as .rpmsave and overwrite it with +the new file. (rhbz:1263859) +--- + lib/rpmfi.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/lib/rpmfi.c b/lib/rpmfi.c +index 924ff4b..28a697e 100644 +--- a/lib/rpmfi.c ++++ b/lib/rpmfi.c +@@ -1040,6 +1040,12 @@ rpmFileAction rpmfilesDecideFate(rpmfiles ofi, int oix, + goto exit; /* file identical in new, replace. */ + } + ++ /* if new file is no longer config, backup it and replace it */ ++ if (!(newFlags & RPMFILE_CONFIG)) { ++ action = FA_SAVE; ++ goto exit; ++ } ++ + /* If file can be determined identical in old and new pkg, let it be */ + if (newWhat == REG && oalgo == nalgo && odiglen == ndiglen) { + if (odigest && ndigest && memcmp(odigest, ndigest, odiglen) == 0) { +@@ -1071,6 +1077,12 @@ rpmFileAction rpmfilesDecideFate(rpmfiles ofi, int oix, + goto exit; /* unmodified config file, replace. */ + } + ++ /* if new file is no longer config, backup it and replace it */ ++ if (!(newFlags & RPMFILE_CONFIG)) { ++ action = FA_SAVE; ++ goto exit; ++ } ++ + /* If link is identical in old and new pkg, let it be */ + if (newWhat == LINK && oFLink && nFLink && rstreq(oFLink, nFLink)) { + action = FA_SKIP; /* identical file, don't bother. */ +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-perl.req-1.patch b/SOURCES/rpm-4.11.x-perl.req-1.patch new file mode 100644 index 0000000..0d4b142 --- /dev/null +++ b/SOURCES/rpm-4.11.x-perl.req-1.patch @@ -0,0 +1,30 @@ +From 4f05fa0e15bcb66d29f89e28829ea43107f6382b Mon Sep 17 00:00:00 2001 +From: Lubos Kardos +Date: Mon, 1 Dec 2014 16:04:32 +0100 +Subject: [PATCH 1/2] Fix parsing multi-line print statement with unquoted tag + +- script perl.req was able to parse only multi-line print statements + with quoted tag e.g. 'print <<"tag"' or "print <<'tag'". Now it can + also parse "print <) { + chomp; + ( $_ eq $tag ) && last; +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-perl.req-2.patch b/SOURCES/rpm-4.11.x-perl.req-2.patch new file mode 100644 index 0000000..1159477 --- /dev/null +++ b/SOURCES/rpm-4.11.x-perl.req-2.patch @@ -0,0 +1,41 @@ +From 4c621e97776a47c2b4e7f17c1cd2a7961453babf Mon Sep 17 00:00:00 2001 +From: Lubos Kardos +Date: Wed, 3 Dec 2014 14:01:14 +0100 +Subject: [PATCH 2/2] Ignore "use" or "requires" within multi-line print or + assign statement + +- Now script perl.req ignores "use" and "requires" on lines that are + part of printing or assigning multi-line string i. e. string that + hasn't starting and ending quote on the same line. + (RhBug:1024517) +--- + scripts/perl.req | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/scripts/perl.req b/scripts/perl.req +index e17ad5a..6e53c91 100755 +--- a/scripts/perl.req ++++ b/scripts/perl.req +@@ -174,6 +174,19 @@ sub process_file { + $_ = ; + } + ++ # Skip multiline print and assign statements ++ if ( m/\$\S+\s*=\s*(")([^"\\]|(\\.))*$/ || ++ m/\$\S+\s*=\s*(')([^'\\]|(\\.))*$/ || ++ m/print\s+(")([^"\\]|(\\.))*$/ || ++ m/print\s+(')([^'\\]|(\\.))*$/ ) { ++ ++ my $quote = $1; ++ while () { ++ m/^([^\\$quote]|(\\.))*$quote/ && last; ++ } ++ $_ = ; ++ } ++ + if ( + + # ouch could be in a eval, perhaps we do not want these since we catch +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-perl.req-3.patch b/SOURCES/rpm-4.11.x-perl.req-3.patch new file mode 100644 index 0000000..5b85e10 --- /dev/null +++ b/SOURCES/rpm-4.11.x-perl.req-3.patch @@ -0,0 +1,37 @@ +From 1d9a0018f9cde8fc5c59df9af70a2164e672210f Mon Sep 17 00:00:00 2001 +From: Lubos Kardos +Date: Wed, 25 Nov 2015 13:49:01 +0100 +Subject: [PATCH] Improve perl.req script + +This commit 0d5929ba5eabadec49273bb090ba9158dfccc30c tries to ignore +"use" and "require" within multi-line print statements that start with +line like this "print <) { + chomp; + ( $_ eq $tag ) && last; +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-perl.req-4.patch b/SOURCES/rpm-4.11.x-perl.req-4.patch new file mode 100644 index 0000000..f154ceb --- /dev/null +++ b/SOURCES/rpm-4.11.x-perl.req-4.patch @@ -0,0 +1,32 @@ +From 6a8754b2153e0e4305ef2bc5a789bfe02f65e889 Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Tue, 14 Jun 2016 15:01:16 +0200 +Subject: [PATCH] perl.req: Skip over multi line return statements See + Rhbz#1275551 + +--- + scripts/perl.req | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/scripts/perl.req b/scripts/perl.req +index f1000c8..7155518 100755 +--- a/scripts/perl.req ++++ b/scripts/perl.req +@@ -160,11 +160,12 @@ sub process_file { + + # + # The (require|use) match further down in this subroutine will match lines +- # within a multi-line print statement. So, let's skip over such print ++ # within a multi-line print or return statements. So, let's skip over such + # statements whose content should not be loading modules anyway. -BEF- + # + if (m/print(?:\s+|\s+\S+\s+)\<\<\s*(["'`])(.+?)\1/ || +- m/print(\s+|\s+\S+\s+)\<\<(\w+)/) { ++ m/print(\s+|\s+\S+\s+)\<\<(\w+)/ || ++ m/return(\s+)\<\<(\w+)/ ) { + + my $tag = $2; + while () { +-- +2.5.5 + diff --git a/SOURCES/rpm-4.11.x-python-binding-test-case.patch b/SOURCES/rpm-4.11.x-python-binding-test-case.patch new file mode 100644 index 0000000..05c1682 --- /dev/null +++ b/SOURCES/rpm-4.11.x-python-binding-test-case.patch @@ -0,0 +1,25 @@ +From 3c74e34e8d8c5b3db024dbe04a352e807ed2b627 Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Wed, 23 Sep 2015 11:30:12 +0200 +Subject: [PATCH] Fix error handling in rpmio Python binding test case + +--- + tests/rpmpython.at | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/rpmpython.at b/tests/rpmpython.at +index 949673b..eac31b2 100644 +--- a/tests/rpmpython.at ++++ b/tests/rpmpython.at +@@ -53,7 +53,7 @@ for iot in [ 'fpio', 'fdio', 'ufdio', 'gzdio' ]: + fd = rpm.fd(fn, 'r', iot) + rdata = fd.read() + if rdata != data: +- myprint('%s read fail (got %d bytes)' % (iot, len(rdata), rdata)) ++ myprint('%s read fail (got %d bytes)\n%s' % (iot, len(rdata), rdata)) + # compressed io types can't seek + if iot == 'ufdio': + fd.seek(0) +-- +1.9.3 + diff --git a/SOURCES/rpm-4.11.x-quiet-signing.patch b/SOURCES/rpm-4.11.x-quiet-signing.patch new file mode 100644 index 0000000..6000b89 --- /dev/null +++ b/SOURCES/rpm-4.11.x-quiet-signing.patch @@ -0,0 +1,63 @@ +From 4a3d73081cb7db6673fa6775fbf5f6655f846241 Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Mon, 4 Jul 2016 18:34:44 +0200 +Subject: [PATCH] Fix rpmbuild --sign --quiet which relies on the output of + rpmbuild + +by reproducing the output of the librpmbuild in the rpmbuild tool. +--- + rpmbuild.c | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +diff --git a/rpmbuild.c b/rpmbuild.c +index 02d2655..aa63f97 100644 +--- a/rpmbuild.c ++++ b/rpmbuild.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include "build/rpmbuild_internal.h" + #include "lib/signature.h" + #include "cliutils.h" + +@@ -517,6 +518,36 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba) + if (rpmSpecBuild(spec, ba)) { + goto exit; + } ++ /* Output generated package files for the --sign alias */ ++ if (quiet && rpmcliPipeOutput && ++ strncmp(rpmcliPipeOutput, "rpm --addsign", 13)) { ++ rpmSetVerbosity(RPMLOG_INFO); ++ if (buildAmount&RPMBUILD_PACKAGESOURCE) { ++ char *fn = rpmGetPath("%{_srcrpmdir}/", spec->sourceRpmName,NULL); ++ rpmlog(RPMLOG_INFO, _("Wrote: %s\n"), fn); ++ fn = _free(fn); ++ } ++ if (buildAmount&RPMBUILD_PACKAGEBINARY) { ++ rpmSpecPkgIter pkgiter = rpmSpecPkgIterInit(spec); ++ for (rpmSpecPkg pkg = rpmSpecPkgIterNext(pkgiter); ++ pkg; ++ pkg = rpmSpecPkgIterNext(pkgiter)) { ++ char *binFormat = rpmGetPath("%{_rpmfilename}", NULL); ++ char *binRpm, *fn; ++ const char *errorString; ++ Header h = rpmSpecPkgHeader(pkg); ++ if (h) { ++ binRpm = headerFormat(h, binFormat, &errorString); ++ fn = rpmGetPath("%{_rpmdir}/", binRpm, NULL); ++ free(binRpm); ++ rpmlog(RPMLOG_INFO, _("Wrote: %s\n"), fn); ++ free(fn); ++ } ++ free(binFormat); ++ } ++ } ++ rpmSetVerbosity(RPMLOG_WARNING); ++ } + + if (buildMode == 't') + (void) unlink(specFile); +-- +2.5.5 + diff --git a/SOURCES/rpm-4.14.x-Add-justdb-to-the-erase-man.patch b/SOURCES/rpm-4.14.x-Add-justdb-to-the-erase-man.patch new file mode 100644 index 0000000..019e861 --- /dev/null +++ b/SOURCES/rpm-4.14.x-Add-justdb-to-the-erase-man.patch @@ -0,0 +1,44 @@ +From 7ebf34fc1b0b7b3fb149761fee01a92859b1a69e Mon Sep 17 00:00:00 2001 +From: Florian Festi +Date: Mon, 18 Apr 2016 15:59:18 +0200 +Subject: [PATCH] Add --justdb to the erase section of the man page, too + +--- + doc/rpm.8 | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/doc/rpm.8 b/doc/rpm.8 +index 2eb5ca5..ccd2e1e 100644 +--- a/doc/rpm.8 ++++ b/doc/rpm.8 +@@ -37,7 +37,7 @@ rpm \- RPM Package Manager + + + +-\fBrpm\fR {\fB-e|--erase\fR} [\fB--allmatches\fR] [\fB--nodeps\fR] [\fB--noscripts\fR] ++\fBrpm\fR {\fB-e|--erase\fR} [\fB--allmatches\fR] [\fB--justdb] [\fB--nodeps\fR] [\fB--noscripts\fR] + [\fB--notriggers\fR] [\fB--test\fR] \fB\fIPACKAGE_NAME\fB\fR\fI\ ...\fR + + .SS "MISCELLANEOUS:" +@@ -377,7 +377,7 @@ potential conflicts. + The general form of an rpm erase command is + .PP + +-\fBrpm\fR {\fB-e|--erase\fR} [\fB--allmatches\fR] [\fB--nodeps\fR] [\fB--noscripts\fR] [\fB--notriggers\fR] [\fB--test\fR] \fB\fIPACKAGE_NAME\fB\fR\fI ...\fR ++\fBrpm\fR {\fB-e|--erase\fR} [\fB--allmatches\fR] [\fB--justdb] [\fB--nodeps\fR] [\fB--noscripts\fR] [\fB--notriggers\fR] [\fB--test\fR] \fB\fIPACKAGE_NAME\fB\fR\fI ...\fR + + .PP + The following options may also be used: +@@ -388,6 +388,9 @@ Remove all versions of the package which match + error is issued if \fIPACKAGE_NAME\fR + matches multiple packages. + .TP ++\fB--justdb\fR ++Update only the database, not the filesystem. ++.TP + \fB--nodeps\fR + Don't check dependencies before uninstalling the packages. + .TP +-- +2.5.5 + diff --git a/SPECS/rpm.spec b/SPECS/rpm.spec index f0e85a0..42a5afb 100644 --- a/SPECS/rpm.spec +++ b/SPECS/rpm.spec @@ -21,7 +21,7 @@ Summary: The RPM package management system Name: rpm Version: %{rpmver} -Release: %{?snapver:0.%{snapver}.}17%{?dist} +Release: %{?snapver:0.%{snapver}.}21%{?dist} Group: System Environment/Base Url: http://www.rpm.org/ Source0: http://rpm.org/releases/rpm-4.11.x/%{name}-%{srcver}.tar.bz2 @@ -65,6 +65,18 @@ Patch162: rpm-4.11.x-broken-pipe.patch Patch163: rpm-4.11.x-Handle-line-continuation.patch # Belongs to Patch 160 Patch164: rpm-4.11.3-Initialize-plugins-based-on-DSO-discovery.patch +Patch166: rpm-4.11.x-move-rename.patch +Patch167: rpm-4.11.x-bdb-warings.patch +Patch168: rpm-4.14.x-Add-justdb-to-the-erase-man.patch +Patch169: rpm-4.11.x-multitheaded_xz.patch +Patch170: rpm-4.11.x-perl.req-1.patch +Patch171: rpm-4.11.x-perl.req-2.patch +Patch172: rpm-4.11.x-perl.req-3.patch +Patch173: rpm-4.11.x-perl.req-4.patch +Patch174: rpm-4.11.x-define-PY_SSIZE_T_CLEAN.patch +Patch175: rpm-4.11.x-python-binding-test-case.patch +Patch176: rpm-4.11.x-Add-noplugins.patch +Patch177: rpm-4.11.x-no-longer-config.patch # Filter soname dependencies by name Patch200: rpm-4.11.x-filter-soname-deps.patch @@ -86,6 +98,9 @@ Patch308: rpm-4.11.x-minidebuginfo-ppc64.patch # Chmod 000 for files being unpacked Patch309: rpm-4.11.x-chmod.patch Patch310: rpm-4.11.x-CVE-2014-8118.patch +Patch311: rpm-4.11.3-update-config.guess.patch +Patch312: rpm-4.11.x-man-systemd-inhibit.patch +Patch313: rpm-4.11.x-quiet-signing.patch # Temporary Patch to provide support for updates Patch400: rpm-4.10.90-rpmlib-filesystem-check.patch @@ -107,7 +122,7 @@ Requires: popt%{_isa} >= 1.10.2.1 Requires: curl %if %{without int_bdb} -BuildRequires: %{bdbname}-devel%{_isa} +BuildRequires: %{bdbname}-devel %endif %if %{with check} @@ -118,26 +133,26 @@ BuildRequires: fakechroot # is a bit special... BuildRequires: redhat-rpm-config BuildRequires: gawk -BuildRequires: elfutils-devel%{_isa} >= 0.112 -BuildRequires: elfutils-libelf-devel%{_isa} -BuildRequires: readline-devel%{_isa} zlib-devel%{_isa} -BuildRequires: nss-devel%{_isa} -BuildRequires: nss-softokn-freebl-devel%{_isa} +BuildRequires: elfutils-devel >= 0.112 +BuildRequires: elfutils-libelf-devel +BuildRequires: readline-devel zlib-devel +BuildRequires: nss-devel +BuildRequires: nss-softokn-freebl-devel # The popt version here just documents an older known-good version -BuildRequires: popt-devel%{_isa} >= 1.10.2 -BuildRequires: file-devel%{_isa} -BuildRequires: gettext-devel%{_isa} -BuildRequires: libselinux-devel%{_isa} +BuildRequires: popt-devel >= 1.10.2 +BuildRequires: file-devel +BuildRequires: gettext-devel +BuildRequires: libselinux-devel # XXX semanage is only used by sepolicy plugin but configure requires it... -BuildRequires: libsemanage-devel%{_isa} -BuildRequires: ncurses-devel%{_isa} -BuildRequires: bzip2-devel%{_isa} >= 0.9.0c-2 -BuildRequires: python-devel%{_isa} >= 2.6 -BuildRequires: lua-devel%{_isa} >= 5.1 -BuildRequires: libcap-devel%{_isa} -BuildRequires: libacl-devel%{_isa} +BuildRequires: libsemanage-devel +BuildRequires: ncurses-devel +BuildRequires: bzip2-devel >= 0.9.0c-2 +BuildRequires: python-devel >= 2.6 +BuildRequires: lua-devel >= 5.1 +BuildRequires: libcap-devel +BuildRequires: libacl-devel %if ! %{without xz} -BuildRequires: xz-devel%{_isa} >= 4.999.8 +BuildRequires: xz-devel >= 4.999.8 %endif %if %{with plugins} # Required for systemd-inhibit plugin @@ -297,6 +312,19 @@ Requires: rpm-libs%{_isa} = %{version}-%{release} %patch162 -p1 -b .broken-pipe %patch163 -p1 -b .line-continuation %patch164 -p1 -b .plugin-detection +%patch166 -p1 -b .move-rename +%patch167 -p1 -b .bdb-warnings +%patch168 -p1 -b .justdb-man +%patch169 -p1 -b .mt_xz +%patch170 -p1 -b .perl.req1 +%patch171 -p1 -b .perl.req2 +%patch172 -p1 -b .perl.req3 +%patch173 -p1 -b .perl.req4 +%patch174 -p1 -b .py_size +%patch175 -p1 -b .py_size_test +%patch176 -p1 -b .noplugins +%patch177 -p1 -b .noconfig + %patch200 -p1 -b .filter-soname-deps %patch201 -p1 -b .dont-filter-ld64 @@ -310,6 +338,9 @@ Requires: rpm-libs%{_isa} = %{version}-%{release} %patch308 -p1 -b .minidebuginfo-ppc64 %patch309 -p1 -b .chmod %patch310 -p1 -b .namesize +%patch311 -p1 -b .config.guess +%patch312 -p1 -b .man-inhibit +%patch313 -p1 -b .quiet-sign %patch400 -p1 -b .rpmlib-filesystem-check %patch401 -p1 -b .disable-collection-plugins @@ -451,6 +482,7 @@ exit 0 %{_bindir}/rpmverify %{_mandir}/man8/rpm.8* +%{_mandir}/man8/rpm-plugin-systemd-inhibit.8* %{_mandir}/man8/rpmdb.8* %{_mandir}/man8/rpmkeys.8* %{_mandir}/man8/rpm2cpio.8* @@ -550,6 +582,32 @@ exit 0 %doc COPYING doc/librpm/html/* %changelog +* Tue Jul 26 2016 Florian Festi - 4.11.3-21 +- Fix --sign for rpmbuild with --quiet (#1293483) +- Adjusted fix for --noplugins option (#1264031) + +* Thu Jul 14 2016 Florian Festi - 4.11.3-20 +- Removed broken fix for #1293483 + +* Thu Apr 21 2016 Florian Festi - 4.11.3-18 +- Fixed failing upstream test 257 on big endian systems (#1264463) +- Fixed problems with perl.req script (#1320214, #1275551) +- Fixed race condition in rpm file deployment when updating an existing file + (#1320181) +- Move bdb warnings from stdin to stdout (#1297793) +- Add --justdb to the erase section of the man page, too (#1310561) +- Backport support for multi threaded xz compression (#1278924) +- Update config.guess (#1291377) +- Add --noplugins option (#1264031) +- Overwrite a file if it is not marked as config any more (#1290463) +- Add man page for systemd-inhibit plugin (#1265578) + +* Tue Dec 01 2015 Pavol Babincak - 4.11.3-17.2 +- Remove one more %%{_isa} from BuildRequires (#1286805) + +* Tue Dec 01 2015 Pavol Babincak - 4.11.3-17.1 +- Remove %%{_isa} from BuildRequires (#1286805) + * Fri Sep 11 2015 Florian Festi - 4.11.3-17 - Detect plugins by DSO file name. Needed for #1160401