OBS User unknown 2008-09-12 18:37:28 +00:00 committed by Git OBS Bridge
parent 64a650bf09
commit 8c64a58df3
101 changed files with 1142 additions and 3196 deletions

View File

@ -1,16 +0,0 @@
Fixes an off-by-one error in rpmalAllFileSatisfiesDepend() which
could lead to a segfault.
Already included in rpm-4.4.7
--- ./lib/rpmal.c.orig 2005-12-14 20:53:12.000000000 +0000
+++ ./lib/rpmal.c 2005-12-14 20:54:28.000000000 +0000
@@ -744,7 +744,7 @@ rpmalAllFileSatisfiesDepend(const rpmal
/*@-branchstate@*/ /* FIX: ret is a problem */
for (found = 0, ret = NULL;
- die <= al->dirs + al->numDirs && dieCompare(die, dieNeedle) == 0;
+ die < al->dirs + al->numDirs && dieCompare(die, dieNeedle) == 0;
die++)
{

View File

@ -1,7 +1,9 @@
Some (probably SUSE specific) changes to linux.prov and linux.req
--- ./autodeps/linux.prov.orig 2002-04-08 19:13:35.000000000 +0000
+++ ./autodeps/linux.prov 2005-12-17 01:49:17.000000000 +0000
Index: autodeps/linux.prov
===================================================================
--- autodeps/linux.prov.orig
+++ autodeps/linux.prov
@@ -2,60 +2,72 @@
# This script reads filenames from STDIN and outputs any relevant provides
@ -103,8 +105,10 @@ Some (probably SUSE specific) changes to linux.prov and linux.req
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
exit 0
--- ./autodeps/linux.req.orig 2002-11-14 12:53:11.000000000 +0000
+++ ./autodeps/linux.req 2005-12-17 01:50:07.000000000 +0000
Index: autodeps/linux.req
===================================================================
--- autodeps/linux.req.orig
+++ autodeps/linux.req
@@ -19,18 +19,22 @@ fi
#
# --- Grab the file manifest and classify files.
@ -219,7 +223,7 @@ Some (probably SUSE specific) changes to linux.prov and linux.req
/^$/ { START=0; }
/^Dynamic Section:$/ { START=1; }
(START==1) && /NEEDED/ {
@@ -110,7 +114,7 @@ for f in $liblist $exelist ; do
@@ -110,26 +114,37 @@ for f in $liblist $exelist ; do
sub(/:/, "", $3);
LIBNAME=$3;
}
@ -227,8 +231,9 @@ Some (probably SUSE specific) changes to linux.prov and linux.req
+ (START==2) && (LIBNAME!="") && ($4!="") {
print LIBNAME "(" $4 ")'$lib64'";
}
- /^[A-Za-z]/ { START=3; }
'
@@ -118,17 +122,29 @@ done | sort -u
done | sort -u
#
# --- Perl modules.

View File

@ -1,17 +0,0 @@
This fixes a typo that caused a compiler warning [#178055].
Already included in rpm-4.4.7.
Index: ./rpmdb/header_internal.c
===================================================================
--- ./rpmdb/header_internal.c
+++ ./rpmdb/header_internal.c
@@ -22,7 +22,7 @@ char ** headerGetLangs(Header h)
if ((table = (char **)xcalloc((count+1), sizeof(char *))) == NULL)
return NULL;
- for (i = 0, e = *s; i < count > 0; i++, e += strlen(e)+1)
+ for (i = 0, e = *s; i < count; i++, e += strlen(e)+1)
table[i] = e;
table[count] = NULL;

View File

@ -1,9 +1,11 @@
SUSE specific brp script patches
--- ./scripts/brp-lib64-linux.orig 2005-12-15 14:04:13.000000000 +0000
+++ ./scripts/brp-lib64-linux 2006-01-27 19:44:16.000000000 +0000
Index: scripts/brp-lib64-linux
===================================================================
--- /dev/null
+++ scripts/brp-lib64-linux
@@ -0,0 +1,42 @@
+#!/bin/bash
+#!/bin/bash
+# script checks wether package is 64-bit clean
+# and also for a linker bug. (linker allows 64bit libs to link 32bit libs)
+echo "sf@suse.de: if you find problems with this script, drop me a note"
@ -45,8 +47,10 @@ SUSE specific brp script patches
+ fi
+done
+exit 0
--- ./scripts/brp-sparc64-linux.orig 2000-06-01 00:54:36.000000000 +0000
+++ ./scripts/brp-sparc64-linux 2005-12-15 14:05:06.000000000 +0000
Index: scripts/brp-sparc64-linux
===================================================================
--- scripts/brp-sparc64-linux.orig
+++ scripts/brp-sparc64-linux
@@ -6,6 +6,7 @@ fi
files=
LC_ALL=
@ -55,8 +59,22 @@ SUSE specific brp script patches
# Move 64bit ELF objects from /lib, /usr/lib, /usr/X11R6/lib to */lib64
# directories
--- ./scripts/brp-strip-comment-note.orig 2005-05-30 06:41:52.000000000 +0000
+++ ./scripts/brp-strip-comment-note 2005-12-15 14:06:07.000000000 +0000
Index: scripts/brp-strip
===================================================================
--- scripts/brp-strip.orig
+++ scripts/brp-strip
@@ -13,6 +13,7 @@ esac
for f in `find $RPM_BUILD_ROOT -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep -v ' shared object,' | \
+ grep -v '/lib/modules/' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
strip -g "$f" || :
done
Index: scripts/brp-strip-comment-note
===================================================================
--- scripts/brp-strip-comment-note.orig
+++ scripts/brp-strip-comment-note
@@ -13,6 +13,8 @@ esac
# for already stripped elf files in the build root
for f in `find $RPM_BUILD_ROOT -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
@ -66,18 +84,10 @@ SUSE specific brp script patches
sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do
note="-R .note"
if objdump -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \
--- ./scripts/brp-strip.orig 2005-05-30 06:40:24.000000000 +0000
+++ ./scripts/brp-strip 2005-12-15 14:06:37.000000000 +0000
@@ -13,6 +13,7 @@ esac
for f in `find $RPM_BUILD_ROOT -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep -v ' shared object,' | \
+ grep -v '/lib/modules/' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
strip -g "$f" || :
done
--- ./scripts/brp-symlink.orig 2005-12-15 14:06:58.000000000 +0000
+++ ./scripts/brp-symlink 2006-01-27 19:41:58.000000000 +0000
Index: scripts/brp-symlink
===================================================================
--- /dev/null
+++ scripts/brp-symlink
@@ -0,0 +1,182 @@
+#!/bin/sh
+

View File

@ -1,30 +1,19 @@
Many changes to Makefiles/autogen and the like to make it build
on SUSE systems.
Index: Makefile.am
================================================================================
--- Makefile.am
+++ Makefile.am
@@ -15,7 +15,7 @@ EXTRA_DIST = CHANGES CREDITS Doxyheader
po/*.in po/*.po po/rpm.pot \
rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c
-SUBDIRS = intl po misc @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ @WITH_MAGIC_SUBDIR@ @WITH_DB_SUBDIR@ @WITH_SQLITE3_SUBDIR@ @WITH_POPT_SUBDIR@ @WITH_BEECRYPT_SUBDIR@ @WITH_NEON_SUBDIR@ lua rpmio rpmdb lib build @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
+SUBDIRS = intl po misc @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ @WITH_MAGIC_SUBDIR@ @WITH_DB_SUBDIR@ @WITH_SQLITE3_SUBDIR@ @WITH_POPT_SUBDIR@ beecrypt @WITH_NEON_SUBDIR@ @WITH_LUA_SUBDIR@ rpmio rpmdb lib build @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
INCLUDES = \
-I$(top_srcdir)/build \
--- autogen.sh
Index: autogen.sh
===================================================================
--- autogen.sh.orig
+++ autogen.sh
@@ -26,12 +26,12 @@ case $libtoolize in
esac
esac
-[ "`$libtoolize --version | head -1`" != "$LTV" ] && echo "$USAGE" && exit 1
-[ "`autoconf --version | head -1`" != "$ACV" ] && echo "$USAGE" && exit 1
-[ "`$libtoolize --version | head -1`" != "$LTV" ] && echo "$USAGE" # && exit 1
-[ "`autoconf --version | head -1`" != "$ACV" ] && echo "$USAGE" # && exit 1
-[ "`automake --version | head -1 | sed -e 's/1\.4[a-z]/1.4/'`" != "$AMV" ] && echo "$USAGE" # && exit 1
+#[ "`$libtoolize --version | head -1`" != "$LTV" ] && echo "$USAGE" && exit 1
+#[ "`autoconf --version | head -1`" != "$ACV" ] && echo "$USAGE" && exit 1
+#[ "`$libtoolize --version | head -1`" != "$LTV" ] && echo "$USAGE" # && exit 1
+#[ "`autoconf --version | head -1`" != "$ACV" ] && echo "$USAGE" # && exit 1
+#[ "`automake --version | head -1 | sed -e 's/1\.4[a-z]/1.4/'`" != "$AMV" ] && echo "$USAGE" # && exit 1
myopts=
@ -33,7 +22,7 @@ Index: Makefile.am
export myopts="--prefix=/usr --disable-nls"
export CPPFLAGS="-I${myprefix}/include"
fi
@@ -43,7 +43,8 @@ if [ -d zlib ]; then
@@ -49,10 +49,11 @@ if [ -d zlib ]; then
(echo "--- zlib"; cd zlib; ./autogen.sh --noconfigure "$@")
fi
if [ -d beecrypt ]; then
@ -42,8 +31,12 @@ Index: Makefile.am
+ (echo "--- beecrypt"; cd beecrypt; ./autogen.sh --without-cplusplus --without-java --without-python "$@")
fi
if [ -d elfutils ]; then
(echo "--- elfutils"; cd elfutils; ./autogen.sh --noconfigure "$@")
@@ -54,6 +55,7 @@ fi
- (echo "--- elfutils"; cd elfutils; ./autogen.sh --noconfigure "$@")
+ (echo "--- elfutils"; cd elfutils; ./autogen.sh "$@")
fi
if [ -d file ]; then
(echo "--- file"; cd file; ./autogen.sh --noconfigure "$@")
@@ -60,6 +61,7 @@ fi
if [ -d neon ]; then
(echo "--- neon"; cd neon; ./autogen.sh "$@")
fi
@ -51,7 +44,7 @@ Index: Makefile.am
echo "--- rpm"
$libtoolize --copy --force
@@ -66,7 +68,7 @@ if [ "$1" = "--noconfigure" ]; then
@@ -72,7 +74,7 @@ if [ "$1" = "--noconfigure" ]; then
exit 0;
fi
@ -60,7 +53,9 @@ Index: Makefile.am
if [ -d /usr/share/man ]; then
mandir=/usr/share/man
infodir=/usr/share/info
--- build/Makefile.am
Index: build/Makefile.am
===================================================================
--- build/Makefile.am.orig
+++ build/Makefile.am
@@ -22,7 +22,7 @@ pkgincdir = $(pkgincludedir)
pkginc_HEADERS = rpmbuild.h rpmfc.h rpmfile.h rpmspec.h
@ -71,262 +66,13 @@ Index: Makefile.am
usrlibdir = $(libdir)@MARK64@
usrlib_LTLIBRARIES = librpmbuild.la
--- configure.ac
+++ configure.ac
@@ -1,30 +1,3 @@
-
-echo "
-****************************************************************************
-* *
-* *** WARNING WARNING WARNING *** *
-* *
-* This is source code from the development branch of rpm-4.4.2. *
-* *
-* If you want the "production" rpm-4.3.3 code, then you should use a *
-* rpm-4.3.3 src.rpm. Alternatively, if using a CVS checkout, do *
-* the following: *
-* *
-* cvs -d :pserver:anonymous@cvs.rpm.org:/cvs/devel login *
-* (no password, just carriage return) *
-* cvs -d :pserver:anonymous@cvs.rpm.org:/cvs/devel get rpm *
-* cd rpm *
-* *
-* Here's the rpm-4_3 branch, latest is rpm-4.3.3: *
-* cvs up -r rpm-4_3 *
-* *
-* Here's the rpm-4_2 branch, latest is rpm-4.2.3: *
-* cvs up -r rpm-4_2 *
-* *
-****************************************************************************
-"
-sleep 10
-
AC_PREREQ(2.59)
AC_INIT(rpm, 4.4.2, rpm-devel@lists.dulug.duke.edu)
AC_CANONICAL_TARGET
@@ -34,10 +7,9 @@ AM_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE([foreign])
dnl Set of available languages.
-ALL_LINGUAS="cs da de fi fr gl is ja ko no pl pt pt_BR ro ru sk sl sr sv tr"
+ALL_LINGUAS="cs da de fi fr gl is ja ko nb pl pt pt_BR ro ru sk sl sr sv tr"
dnl Checks for programs.
-AC_PROG_CXX
AC_PROG_AWK
AC_PROG_CC
AC_PROG_CPP
@@ -310,7 +282,7 @@ WITH_ZLIB_INCLUDE=
WITH_ZLIB_LIB=
if test -d zlib ; then
WITH_ZLIB_SUBDIR=zlib
- addlib \${top_builddir}/zlib
+ # addlib \${top_builddir}/zlib
WITH_ZLIB_INCLUDE="-I\${top_srcdir}/${WITH_ZLIB_SUBDIR}"
INCPATH="$INCPATH -I\${top_srcdir}/${WITH_ZLIB_SUBDIR}"
WITH_ZLIB_LIB="\${top_builddir}/${WITH_ZLIB_SUBDIR}/libz.la"
@@ -350,9 +322,9 @@ AC_SUBST(WITH_BZIP2)
localdone=
dirs=$prefix
-if test "$cross_compiling" != "yes"; then
- dirs="$dirs /usr/local"
-fi
+#if test "$cross_compiling" != "yes"; then
+# dirs="$dirs /usr/local"
+#fi
for dir in $dirs
do
case $dir in
@@ -463,7 +435,7 @@ AC_CHECK_HEADER([gelf.h], [
AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).])
WITH_ELFUTILS_SUBDIR=elfutils
WITH_LIBELF_INCLUDE="-I\${top_srcdir}/${WITH_ELFUTILS_SUBDIR}/libelf"
- WITH_LIBELF_LIB="\${top_builddir}/${WITH_ELFUTILS_SUBDIR}/libelf/libelf.a"
+ WITH_LIBELF_LIB="\${top_builddir}/${WITH_ELFUTILS_SUBDIR}/libelf/libelf_pic.a"
fi
])
AC_SUBST(WITH_ELFUTILS_SUBDIR)
@@ -504,7 +476,8 @@ AC_CHECK_HEADER([beecrypt/beecrypt.h], [
AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the 'beecrypt' library (-lbeecrypt).])
WITH_BEECRYPT_SUBDIR=beecrypt
WITH_BEECRYPT_INCLUDE="-I\${top_srcdir}/${WITH_BEECRYPT_SUBDIR}"
- WITH_BEECRYPT_LIB="\${top_builddir}/${WITH_BEECRYPT_SUBDIR}/libbeecrypt.la"
+ dnl WITH_BEECRYPT_LIB="\${top_builddir}/${WITH_BEECRYPT_SUBDIR}/libbeecrypt.la"
+ AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the <beecrypt/api.h> header file.])
fi
])
AC_SUBST(WITH_BEECRYPT_SUBDIR)
@@ -648,6 +621,9 @@ dnl AmigaOS and IXEmul have a fork() dum
esac
AM_GNU_GETTEXT
+AM_GNU_GETTEXT_VERSION(0.11.2)
+MKINSTALLDIRS="\$(top_builddir)/./mkinstalldirs"
+AC_SUBST(MKINSTALLDIRS)
dnl TVM:
dnl horrible *temporary* hack to make sure that if we found gettext() in
dnl -lintl that we add -lintl *back* to $LIBS.
@@ -943,54 +919,86 @@ withval=auto
AC_ARG_WITH(python, [ --with-python build rpm python bindings ])
WITH_PYTHON_VERSION=$withval
-if test $withval = auto ; then
+if test "$WITH_PYTHON_VERSION" = auto ; then
+AC_MSG_CHECKING(for python 2.6)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.6/Python.h>
+main() {
+ exit(strncmp("2.6", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+AC_MSG_RESULT($withval)
+if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.6"
+fi
+fi
+if test "$WITH_PYTHON_VERSION" = auto ; then
+AC_MSG_CHECKING(for python 2.5)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.5/Python.h>
+main() {
+ exit(strncmp("2.5", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+AC_MSG_RESULT($withval)
+if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.5"
+fi
+fi
+
+if test "$WITH_PYTHON_VERSION" = auto ; then
AC_MSG_CHECKING(for python 2.4)
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <python2.4/Python.h>
main() {
exit(strncmp("2.4", PY_VERSION, 3));
} ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="2.4"
- else
-
- AC_MSG_CHECKING(for python 2.3)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python2.3/Python.h>
- main() {
- exit(strncmp("2.3", PY_VERSION, 3));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="2.3"
- else
-
- AC_MSG_CHECKING(for python 2.2)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python2.2/Python.h>
- main() {
- exit(strncmp("2.2", PY_VERSION, 3));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="2.2"
- else
-
- AC_MSG_CHECKING(for python 1.5.2)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python1.5/Python.h>
- main() {
- exit(strcmp("1.5.2", PY_VERSION));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="1.5"
- fi
- fi
- fi
- fi
+AC_MSG_RESULT($withval)
+if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.4"
+fi
+fi
+
+if test "$WITH_PYTHON_VERSION" = auto ; then
+AC_MSG_CHECKING(for python 2.3)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.3/Python.h>
+main() {
+ exit(strncmp("2.3", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+AC_MSG_RESULT($withval)
+if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.3"
+fi
+fi
+
+if test "$WITH_PYTHON_VERSION" = auto ; then
+AC_MSG_CHECKING(for python 2.2)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.2/Python.h>
+main() {
+ exit(strncmp("2.2", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+AC_MSG_RESULT($withval)
+if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.2"
+fi
+fi
+
+if test "$WITH_PYTHON_VERSION" = auto ; then
+AC_MSG_CHECKING(for python 1.5.2)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python1.5/Python.h>
+main() {
+ exit(strcmp("1.5.2", PY_VERSION));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+AC_MSG_RESULT($withval)
+if test $withval = yes ; then
+ WITH_PYTHON_VERSION="1.5"
+fi
+fi
+
+if test "$WITH_PYTHON_VERSION" = auto ; then
+ WITH_PYTHON_VERSION=no
fi
if test "$WITH_PYTHON_VERSION" != no ; then
@@ -1283,6 +1291,7 @@ arm*) RPMCANONCOLOR=0; RPMCANONARCH="${
mipsel*) RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
mips*) RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
m68k*) RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
+parisc*|hppa*) RPMCANONCOLOR=0; RPMCANONARCH=hppa ;;
*) RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
esac
case "${build_os_noversion}" in
@@ -1290,7 +1299,8 @@ mint) RPMCANONARCH=m68kmint ;;
esac
RPMCANONVENDOR="$build_vendor"
case "${build_vendor}" in
-unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos)
+unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
+ RPMCANONVENDOR=suse
test -f /etc/redhat-release && RPMCANONVENDOR=redhat
test -f /etc/pld-release && RPMCANONVENDOR=pld
test -f /etc/mandrake-release && RPMCANONVENDOR=mandrake
@@ -1372,7 +1382,7 @@ dnl XXX this causes popt to depend on zl
dnl # XXX Propagate -lucb to popt ...
dnl export LIBS INCPATH CONFIG_SITE
-AC_CONFIG_SUBDIRS(popt zlib file sqlite db3)
+AC_CONFIG_SUBDIRS(popt zlib file sqlite db3 elfutils)
AC_CONFIG_FILES([ Doxyfile Makefile rpmrc macros platform rpmpopt rpm.spec
rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile
--- db3/configure
Index: db3/configure
===================================================================
--- db3/configure.orig
+++ db3/configure
@@ -10,9 +10,9 @@ rm -f config.cache
# XXX edit CFLAGS= ... out of invocation args ???
ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's%--cache-file=.*$%%'`"
ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's% --param=[^ ]*%%g' -e 's%--cache-file=.*$%%'`"
-CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure $ARGS \
- --enable-shared --enable-static --enable-rpc \
@ -337,7 +83,9 @@ Index: Makefile.am
mv Makefile Makefile.orig
cat Makefile.orig | sed -e '/^install[:-]/c\
--- file/src/Makefile.am
Index: file/src/Makefile.am
===================================================================
--- file/src/Makefile.am.orig
+++ file/src/Makefile.am
@@ -26,7 +26,7 @@ libmagic_la_LDFLAGS = -version-info 1:0:
@ -348,24 +96,26 @@ Index: Makefile.am
file_LDADD = libmagic.la
listobjs:
--- installplatform
Index: installplatform
===================================================================
--- installplatform.orig
+++ installplatform
@@ -62,11 +62,11 @@ for SUBST in $SUBSTS ; do
sparcv9-linux) MULTILIBNO=1 ;;
@@ -68,11 +68,11 @@ for SUBST in $SUBSTS ; do
sparc64-linux) ARCH_INSTALL_POST=${pkglibdir}/brp-sparc64-linux; LIB=lib64; MULTILIBNO=2 ;;
sparc64v-linux) ARCH_INSTALL_PORT=${pkglibdir}/brp-sparc64-linux; LIB=lib64; MULTILIBNO=2 ;;
s390-linux) MULTILIBNO=1 ;;
- s390x-linux) LIB=lib64; MULTILIBNO=2 ;;
+ s390x-linux) ARCH_INSTALL_POST=${pkglibdir}/brp-lib64-linux; LIB=lib64; MULTILIBNO=2 ;;
ppc-linux) MULTILIBNO=1 ;;
- ppc64-linux) LIB=lib64; MULTILIBNO=2 ;;
+ ppc64-linux) ARCH_INSTALL_POST=${pkglibdir}/brp-lib64-linux; LIB=lib64; MULTILIBNO=2 ;;
i?86-linux|pentium?-linux|athlon-linux) MULTILIBNO=1 ;;
i?86-linux|pentium?-linux|athlon-linux|geode-linux) MULTILIBNO=1 ;;
- x86_64-linux|amd64-linux|ia32e-linux) LIB=lib64; MULTILIBNO=2 ;;
+ x86_64-linux|amd64-linux|ia32e-linux) ARCH_INSTALL_POST=${pkglibdir}/brp-lib64-linux; LIB=lib64; MULTILIBNO=2 ;;
esac
if [ -n "$MULTILIBNO" ]; then
@@ -96,6 +96,9 @@ for SUBST in $SUBSTS ; do
@@ -102,6 +102,9 @@ for SUBST in $SUBSTS ; do
apple)
VENDORSED='-e s,^@apple@,,'
;;
@ -374,8 +124,10 @@ Index: Makefile.am
+ ;;
esac
cat $PLATFORM \
--- lib/Makefile.am
CANONARCH="`echo $ARCH|sed -e "$canonarch_sed"`"
Index: lib/Makefile.am
===================================================================
--- lib/Makefile.am.orig
+++ lib/Makefile.am
@@ -29,7 +29,7 @@ noinst_HEADERS = \
mylibs = librpm.la
@ -386,29 +138,9 @@ Index: Makefile.am
usrlibdir = $(libdir)@MARK64@
usrlib_LTLIBRARIES = librpm.la
--- po/Makefile.in
+++ po/Makefile.in
@@ -29,7 +29,7 @@ gettextsrcdir = $(datadir)/gettext/po
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
MKINSTALLDIRS = $(top_builddir)/./mkinstalldirs
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/mkinstalldirs" ;; esac`
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
CC = gcc
GMSGFMT = /usr/bin/msgfmt
--- po/Makefile.in.in
+++ po/Makefile.in.in
@@ -29,7 +29,7 @@ gettextsrcdir = $(datadir)/gettext/po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/mkinstalldirs" ;; esac`
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
CC = @CC@
GMSGFMT = @GMSGFMT@
--- popt/autogen.sh
Index: popt/autogen.sh
===================================================================
--- popt/autogen.sh.orig
+++ popt/autogen.sh
@@ -28,7 +28,7 @@ fi
@ -419,46 +151,9 @@ Index: Makefile.am
$srcdir/configure --prefix=/usr "$@"
else
$srcdir/configure "$@"
--- popt/configure.ac
+++ popt/configure.ac
@@ -1,11 +1,12 @@
AC_INIT(popt.h)
AC_CANONICAL_SYSTEM
AC_PREREQ(2.12)
-AC_CONFIG_HEADERS
AM_INIT_AUTOMAKE(popt, 1.10.2)
AM_CONFIG_HEADER(config.h)
-ALL_LINGUAS="cs da de es eu_ES fi fr gl hu id is it ja ko no pl pt pt_BR ro ru sk sl sr sv tr uk wa zh zh_CN zh_TW"
+ALL_LINGUAS="cs da de es eu_ES fi fr gl hu id is it ja ko nb pl pt pt_BR ro ru sk sl sr sv tr uk wa zh zh_CN zh_TW"
+MKINSTALLDIRS="\$(top_builddir)/./mkinstalldirs"
+AC_SUBST(MKINSTALLDIRS)
AC_ISC_POSIX
--- popt/po/Makefile.in
+++ popt/po/Makefile.in
@@ -29,7 +29,7 @@ gettextsrcdir = $(datadir)/gettext/po
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
MKINSTALLDIRS = $(top_builddir)/./../mkinstalldirs
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/mkinstalldirs" ;; esac`
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
CC = gcc
GMSGFMT = /usr/bin/msgfmt
--- popt/po/Makefile.in.in
+++ popt/po/Makefile.in.in
@@ -29,7 +29,7 @@ gettextsrcdir = $(datadir)/gettext/po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/mkinstalldirs" ;; esac`
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
CC = @CC@
GMSGFMT = @GMSGFMT@
--- rpmdb/Makefile.am
Index: rpmdb/Makefile.am
===================================================================
--- rpmdb/Makefile.am.orig
+++ rpmdb/Makefile.am
@@ -31,7 +31,7 @@ noinst_HEADERS = fprint.h header_interna
pkgbindir = @RPMCONFIGDIR@
@ -478,7 +173,9 @@ Index: Makefile.am
usrlibdir = $(libdir)@MARK64@
usrlib_LTLIBRARIES = librpmdb.la
--- rpmio/Makefile.am
Index: rpmio/Makefile.am
===================================================================
--- rpmio/Makefile.am.orig
+++ rpmio/Makefile.am
@@ -24,9 +24,9 @@ pkginc_HEADERS = \
rpmsq.h rpmsw.h ugid.h
@ -510,38 +207,258 @@ Index: Makefile.am
done \
fi
touch $@
--- scripts/Makefile.am
Index: scripts/Makefile.am
===================================================================
--- scripts/Makefile.am.orig
+++ scripts/Makefile.am
@@ -6,6 +6,7 @@ EXTRA_DIST = \
@@ -9,6 +9,7 @@ EXTRA_DIST = \
brp-compress brp-python-bytecompile brp-java-gcjcompile brp-redhat \
brp-strip brp-strip-comment-note \
brp-strip-shared brp-strip-static-archive brp-sparc64-linux \
+ brp-lib64-linux brp-symlink \
check-files check-prereqs convertrpmrc.sh cross-build \
check-buildroot check-rpaths check-rpaths-worker \
find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
cpanflute cpanflute2 Specfile.pm find-provides.perl \
@@ -17,7 +18,8 @@ EXTRA_DIST = \
@@ -21,7 +22,8 @@ EXTRA_DIST = \
sql.prov sql.req tcl.req tgpg trpm u_pkg.sh \
vpkg-provides.sh vpkg-provides2.sh \
macros.perl* macros.python* \
- macros.php* find-*.php find-php-*
+ macros.php* find-*.php find-php-* \
- macros.php* find-*.php find-php-* mono-find* osgideps.pl
+ macros.php* find-*.php find-php-* mono-find* osgideps.pl \
+ find-provides.ksyms find-requires.ksyms
installprefix = $(DESTDIR)
@@ -28,6 +30,7 @@ config_SCRIPTS = \
@@ -32,6 +34,7 @@ config_SCRIPTS = \
brp-compress brp-python-bytecompile brp-java-gcjcompile brp-redhat \
brp-strip brp-strip-comment-note \
brp-strip-shared brp-strip-static-archive brp-sparc64-linux \
+ brp-lib64-linux brp-symlink \
check-files check-prereqs convertrpmrc.sh cross-build \
check-buildroot check-rpaths check-rpaths-worker \
find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
cpanflute cpanflute2 Specfile.pm find-provides.perl \
@@ -36,4 +39,5 @@ config_SCRIPTS = \
@@ -42,4 +45,5 @@ config_SCRIPTS = \
rpmdb_loadcvt rpmdiff rpmdiff.cgi \
rpm.daily rpm.log rpm.xinetd rpm2cpio.sh \
sql.prov sql.req tcl.req tgpg trpm u_pkg.sh \
- vpkg-provides.sh vpkg-provides2.sh
+ vpkg-provides.sh vpkg-provides2.sh \
+ find-provides.ksyms find-requires.ksyms
Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -327,9 +327,9 @@ AC_SUBST(WITH_BZIP2)
localdone=
dirs=$prefix
-if test "$cross_compiling" != "yes"; then
- dirs="$dirs /usr/local"
-fi
+#if test "$cross_compiling" != "yes"; then
+# dirs="$dirs /usr/local"
+#fi
for dir in $dirs
do
case $dir in
@@ -440,7 +440,7 @@ AC_CHECK_HEADER([gelf.h], [
AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).])
WITH_ELFUTILS_SUBDIR=elfutils
WITH_LIBELF_INCLUDE="-I\${top_srcdir}/${WITH_ELFUTILS_SUBDIR}/libelf"
- WITH_LIBELF_LIB="\${top_builddir}/${WITH_ELFUTILS_SUBDIR}/libelf/libelf.a"
+ WITH_LIBELF_LIB="\${top_builddir}/${WITH_ELFUTILS_SUBDIR}/libelf/libelf_pic.a"
fi
])
AC_SUBST(WITH_ELFUTILS_SUBDIR)
@@ -481,12 +481,13 @@ AC_CHECK_HEADER([beecrypt/beecrypt.h], [
AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the 'beecrypt' library (-lbeecrypt).])
WITH_BEECRYPT_SUBDIR=beecrypt
WITH_BEECRYPT_INCLUDE="-I\${top_srcdir}/${WITH_BEECRYPT_SUBDIR}"
- WITH_BEECRYPT_LIB="\${top_builddir}/${WITH_BEECRYPT_SUBDIR}/libbeecrypt.la"
- fi
-
+ dnl WITH_BEECRYPT_LIB="\${top_builddir}/${WITH_BEECRYPT_SUBDIR}/libbeecrypt.la"
+ AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the <beecrypt/api.h> header file.])
+ else
if test -z "${WITH_BEECRYPT_LIB}" ; then
AC_MSG_ERROR([rpm requires beecrypt])
fi
+ fi
])
AC_SUBST(WITH_BEECRYPT_SUBDIR)
AC_SUBST(WITH_BEECRYPT_INCLUDE)
@@ -861,8 +862,23 @@ withval=auto
AC_ARG_WITH(python, [ --with-python build rpm python bindings ])
WITH_PYTHON_VERSION=$withval
+
if test $withval = auto ; then
+AC_MSG_CHECKING(for python 2.6)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.6/Python.h>
+main() {
+ exit(strncmp("2.6", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+ AC_MSG_RESULT($withval)
+ if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.6"
+ else
+ withval=auto
+ fi
+fi
+if test $withval = auto ; then
AC_MSG_CHECKING(for python 2.5)
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <python2.5/Python.h>
@@ -873,56 +889,74 @@ main() {
if test $withval = yes ; then
WITH_PYTHON_VERSION="2.5"
else
+ withval=auto
+ fi
+fi
- AC_MSG_CHECKING(for python 2.4)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python2.4/Python.h>
- main() {
- exit(strncmp("2.4", PY_VERSION, 3));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="2.4"
- else
-
- AC_MSG_CHECKING(for python 2.3)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python2.3/Python.h>
- main() {
- exit(strncmp("2.3", PY_VERSION, 3));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="2.3"
- else
-
- AC_MSG_CHECKING(for python 2.2)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python2.2/Python.h>
- main() {
- exit(strncmp("2.2", PY_VERSION, 3));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="2.2"
- else
-
- AC_MSG_CHECKING(for python 1.5.2)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <python1.5/Python.h>
- main() {
- exit(strcmp("1.5.2", PY_VERSION));
- } ]])],[withval=yes],[withval=no],[withval=yes])
- AC_MSG_RESULT($withval)
- if test $withval = yes ; then
- WITH_PYTHON_VERSION="1.5"
- fi
- fi
- fi
- fi
+if test $withval = auto ; then
+AC_MSG_CHECKING(for python 2.4)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.4/Python.h>
+main() {
+ exit(strncmp("2.4", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+ AC_MSG_RESULT($withval)
+ if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.4"
+ else
+ withval=auto
+ fi
+fi
+
+if test $withval = auto ; then
+AC_MSG_CHECKING(for python 2.3)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.3/Python.h>
+main() {
+ exit(strncmp("2.3", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+ AC_MSG_RESULT($withval)
+ if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.3"
+ else
+ withval=auto
+ fi
+fi
+
+if test $withval = auto ; then
+AC_MSG_CHECKING(for python 2.2)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python2.2/Python.h>
+main() {
+ exit(strncmp("2.2", PY_VERSION, 3));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+ AC_MSG_RESULT($withval)
+ if test $withval = yes ; then
+ WITH_PYTHON_VERSION="2.2"
+ else
+ withval=auto
fi
fi
+if test $withval = auto ; then
+AC_MSG_CHECKING(for python 1.5.2)
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <python1.5/Python.h>
+main() {
+ exit(strcmp("1.5.2", PY_VERSION));
+} ]])],[withval=yes],[withval=no],[withval=yes])
+ AC_MSG_RESULT($withval)
+ if test $withval = yes ; then
+ WITH_PYTHON_VERSION="1.5"
+ else
+ withval=auto
+ fi
+fi
+
+if test $withval = auto ; then
+ WITH_PYTHON_VERSION="no"
+fi
+
if test "$WITH_PYTHON_VERSION" != no ; then
WITH_PYTHON_SUBDIR=python
WITH_PYTHON_SUBPACKAGE=1
@@ -1218,6 +1252,7 @@ arm*) RPMCANONCOLOR=0; RPMCANONARCH=arm
mipsel*) RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
mips*) RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
m68k*) RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
+parisc*|hppa*) RPMCANONCOLOR=0; RPMCANONARCH=hppa ;;
sh3*) RPMCANONCOLOR=0; RPMCANONARCH=sh3 ;;
sh4*) RPMCANONCOLOR=0; RPMCANONARCH=sh4 ;;
*) RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
@@ -1227,7 +1262,8 @@ mint) RPMCANONARCH=m68kmint ;;
esac
RPMCANONVENDOR="$build_vendor"
case "${build_vendor}" in
-unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos)
+unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
+ RPMCANONVENDOR=suse
test -f /etc/redhat-release && RPMCANONVENDOR=redhat
test -f /etc/pld-release && RPMCANONVENDOR=pld
test -f /etc/mandrake-release && RPMCANONVENDOR=mandrake
@@ -1237,6 +1273,11 @@ unknown|pc|ibm|redhat|pld|mandrake|conec
test -f /etc/caos-release && RPMCANONVENDOR=caos
;;
esac
+if test "$RPMCANONVENDOR" = suse ; then
+ RPMCANONCOLOR=0
+ autorelocate_path='%{nil}'
+ autorelocate_dcolor='0'
+fi
RPMCANONOS="$build_os_noversion"
RPMCANONGNU="$build_os_gnu"
AC_SUBST(RPMCANONCOLOR)

View File

@ -1,24 +0,0 @@
Fix a typo: the macro is currently called %{buildsubdir}
--- ./build/files.c.orig 2005-12-14 19:22:43.000000000 +0000
+++ ./build/files.c 2006-02-17 13:57:25.000000000 +0000
@@ -1942,7 +1954,7 @@ static int processPackageFiles(Spec spec
if (*pkg->fileFile == '/') {
ffn = rpmGetPath(pkg->fileFile, NULL);
} else {
- /* XXX FIXME: add %{_buildsubdir} */
+ /* XXX FIXME: add %{buildsubdir} */
ffn = rpmGetPath("%{_builddir}/",
(spec->buildSubdir ? spec->buildSubdir : "") ,
"/", pkg->fileFile, NULL);
--- ./build/pack.c.orig 2005-07-15 15:06:57.000000000 +0000
+++ ./build/pack.c 2005-12-18 15:14:56.000000000 +0000
@@ -138,7 +138,7 @@ static /*@only@*/ /*@null@*/ StringBuf a
FILE * f;
FD_t fd;
- fn = rpmGetPath("%{_builddir}/%{?_buildsubdir:%{_buildsubdir}/}", file, NULL);
+ fn = rpmGetPath("%{_builddir}/%{?buildsubdir:%{buildsubdir}/}", file, NULL);
fd = Fopen(fn, "r.ufdio");
if (fn != buf) fn = _free(fn);

View File

@ -1,15 +1,17 @@
Exclude /usr/share/info/dir from check-files. Probably only
interesting for SUSE.
--- ./scripts/check-files.orig 2005-12-15 14:07:15.000000000 +0000
+++ ./scripts/check-files 2005-12-15 14:09:34.000000000 +0000
@@ -21,7 +21,9 @@ find $RPM_BUILD_ROOT -type f -o -type l
LC_ALL=C sort > $FILES_RPM
Index: scripts/check-files
===================================================================
--- scripts/check-files.orig
+++ scripts/check-files
@@ -22,7 +22,9 @@ LC_ALL=C sort > $FILES_RPM
for f in `diff -d "$FILES_DISK" "$FILES_RPM" | grep "^< " | cut -c3-`; do
diff -d "$FILES_DISK" "$FILES_RPM" | grep "^< " | cut -c3- |
while read f; do
- echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g"
+ if test "$RPM_BUILD_ROOT/usr/share/info/dir" != "$f" ; then
+ echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g"
+ echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g"
+ fi
done

View File

@ -1,8 +1,10 @@
Warn the user if chown/fchown fails.
--- ./lib/fsm.c.orig 2005-12-14 20:08:04.000000000 +0000
+++ ./lib/fsm.c 2005-12-16 18:19:37.000000000 +0000
@@ -2186,6 +2191,10 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
Index: lib/fsm.c
===================================================================
--- lib/fsm.c.orig
+++ lib/fsm.c
@@ -2193,6 +2193,10 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
break;
case FSM_CHOWN:
rc = chown(fsm->path, st->st_uid, st->st_gid);
@ -13,7 +15,7 @@ Warn the user if chown/fchown fails.
if (_fsm_debug && (stage & FSM_SYSCALL))
rpmMessage(RPMMESS_DEBUG, " %8s (%s, %d, %d) %s\n", cur,
fsm->path, (int)st->st_uid, (int)st->st_gid,
@@ -2195,6 +2204,10 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
@@ -2202,6 +2206,10 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
case FSM_LCHOWN:
#if ! CHOWN_FOLLOWS_SYMLINK
rc = lchown(fsm->path, st->st_uid, st->st_gid);

View File

@ -1,31 +0,0 @@
Fix uncompress waitpid logic to shut up the compiler [#160434]
--- ./file/src/compress.c.orig 2006-03-24 15:37:23.000000000 +0000
+++ ./file/src/compress.c 2006-03-24 15:42:52.000000000 +0000
@@ -341,6 +341,7 @@ uncompressbuf(struct magic_set *ms, int
file_error(ms, errno, "cannot create pipe");
return 0;
}
+ pid2 = (pid_t)-1;
switch ((pid1=fork())) {
case 0: /* child */
(void) close(0);
@@ -382,7 +383,7 @@ uncompressbuf(struct magic_set *ms, int
* fork again, to avoid blocking because both
* pipes filled
*/
- switch (fork()) {
+ switch ((pid2 = fork())) {
case 0: /* child */
(void)close(fdout[0]);
if (swrite(fdin[1], old, n) != n) {
@@ -439,7 +440,8 @@ err:
(void) close(fdin[1]);
(void) close(fdout[0]);
waitpid(pid1, NULL, 0);
- waitpid(pid2, NULL, 0);
+ if (pid2 != (pid_t)-1)
+ waitpid(pid2, NULL, 0);
return n;
}
/*@notreached@*/

View File

@ -4,7 +4,7 @@ Index: tools/Makefile.am
===================================================================
--- tools/Makefile.am.orig
+++ tools/Makefile.am
@@ -18,22 +18,26 @@ INCLUDES = -I. \
@@ -18,25 +18,29 @@ INCLUDES = -I. \
EXTRA_DIST = rpminject.c rpmsort.c rpmxml.c rpmxp.c rpmxp.h hashtab.h
@ -33,4 +33,8 @@ Index: tools/Makefile.am
+ @WITH_LIBELF_LIB@
debugedit_SOURCES = debugedit.c hashtab.c
debugedit_LDADD = @LDFLAGS_STATIC@ \
-#debugedit_LDADD = @LDFLAGS_STATIC@ \
+#debugedit_LDADD = @LDFLAGS_STATIC@
debugedit_LDADD = \
@WITH_LIBELF_LIB@ \
$(top_builddir)/rpmdb/librpmdb.la \

View File

@ -1,8 +1,10 @@
Always use DB_PRIVATE. Should probably be configured instead.
--- ./rpmdb/db3.c.orig 2005-03-23 18:15:28.000000000 +0000
+++ ./rpmdb/db3.c 2006-01-27 20:08:29.000000000 +0000
@@ -1034,6 +1050,9 @@ static int db3open(rpmdb rpmdb, rpmTag r
Index: rpmdb/db3.c
===================================================================
--- rpmdb/db3.c.orig
+++ rpmdb/db3.c
@@ -1050,6 +1050,9 @@ static int db3open(rpmdb rpmdb, rpmTag r
#endif
#endif

View File

@ -1,9 +1,11 @@
Do not block signals if the database is opened read-only, it jst
annoys the users. [#48026]
--- ./rpmdb/rpmdb.c.orig 2005-02-16 03:18:19.000000000 +0000
+++ ./rpmdb/rpmdb.c 2006-02-21 20:37:44.000000000 +0000
@@ -846,10 +873,12 @@ int rpmdbClose(rpmdb db)
Index: rpmdb/rpmdb.c
===================================================================
--- rpmdb/rpmdb.c.orig
+++ rpmdb/rpmdb.c
@@ -873,10 +873,12 @@ int rpmdbClose(rpmdb db)
rpmdb * prev, next;
int dbix;
int rc = 0;
@ -16,7 +18,7 @@ annoys the users. [#48026]
(void) rpmdbUnlink(db, "rpmdbClose");
/*@-usereleased@*/
@@ -886,12 +915,14 @@ int rpmdbClose(rpmdb db)
@@ -913,12 +915,14 @@ int rpmdbClose(rpmdb db)
/*@-refcounttrans@*/ db = _free(db); /*@=refcounttrans@*/
/*@=usereleased@*/
@ -36,7 +38,7 @@ annoys the users. [#48026]
return rc;
}
/*@=incondefs@*/
@@ -1021,11 +1070,13 @@ static int openDatabase(/*@null@*/ const
@@ -1050,11 +1054,13 @@ static int openDatabase(/*@null@*/ const
if (db == NULL)
return 1;

View File

@ -4,9 +4,11 @@ Include compilation directory in source file list if used.
tools/debugedit.c | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
--- tools/debugedit.c.orig 2007-04-08 22:55:58.000000000 +0200
+++ tools/debugedit.c 2007-04-09 01:34:51.000000000 +0200
@@ -488,6 +488,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
Index: tools/debugedit.c
===================================================================
--- tools/debugedit.c.orig
+++ tools/debugedit.c
@@ -492,6 +492,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
uint_32 value, dirt_cnt;
size_t comp_dir_len = strlen (comp_dir);
size_t abs_file_cnt = 0, abs_dir_cnt = 0;
@ -14,15 +16,15 @@ Include compilation directory in source file list if used.
if (phase != 0)
return 0;
@@ -586,6 +587,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
}
else
{
@@ -600,6 +601,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
memcpy (p, dirt[value], dir_len);
p[dir_len] = '/';
memcpy (p + dir_len + 1, file, file_len + 1);
+ comp_dir_used = 1;
memcpy (s, comp_dir, comp_dir_len);
s[comp_dir_len] = '/';
memcpy (s + comp_dir_len + 1, dirt[value], dir_len);
@@ -624,7 +626,31 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
}
canonicalize_path (s, s);
if (list_file_fd != -1)
@@ -632,7 +634,31 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
read_uleb128 (ptr);
}
++ptr;

View File

@ -1,7 +1,9 @@
Make debugedit build without dwarf.h. Also fixes a logic bug for ppc.
--- ./tools/debugedit.c.orig 2005-12-15 14:28:49.000000000 +0000
+++ ./tools/debugedit.c 2006-03-17 13:01:53.000000000 +0000
Index: tools/debugedit.c
===================================================================
--- tools/debugedit.c.orig
+++ tools/debugedit.c
@@ -34,7 +34,37 @@
#include <popt.h>
@ -39,14 +41,26 @@ Make debugedit build without dwarf.h. Also fixes a logic bug for ppc.
+#define DW_FORM_ref_udata 0x15
+#define DW_FORM_indirect 0x16
#include "hashtab.h"
#include <beecrypt/beecrypt.h>
@@ -1039,7 +1069,7 @@ edit_dwarf2 (DSO *dso)
break;
case EM_PPC:
case EM_PPC64:
- if (rtype != R_PPC_ADDR32 || rtype != R_PPC_UADDR32)
+ if (rtype != R_PPC_ADDR32 && rtype != R_PPC_UADDR32)
goto fail;
break;
case EM_S390:
@@ -1346,7 +1376,6 @@ handle_build_id (DSO *dso, Elf_Data *bui
or Elf64 object, only that we are consistent in what bits feed the
hash so it comes out the same for the same file contents. */
{
- inline void process (const void *data, size_t size);
inline void process (const void *data, size_t size)
{
memchunk chunk = { .data = (void *) data, .size = size };
Index: tools/Makefile.am
===================================================================
--- tools/Makefile.am.orig
+++ tools/Makefile.am
@@ -39,7 +39,7 @@ debugedit_SOURCES = debugedit.c hashtab.
#debugedit_LDADD = @LDFLAGS_STATIC@ \
debugedit_LDADD = \
@WITH_LIBELF_LIB@ \
- @WITH_BEECRYPT_LIB@ \
+ $(top_builddir)/rpmdb/librpmdb.la \
@WITH_POPT_LIB@
javadeps_SOURCES = javadeps.c

View File

@ -8,11 +8,11 @@ build the binary. The patches moves them into a separate package -debugsource.
scripts/find-debuginfo.sh | 43 ++++++++++++++++++++++++++-----------------
2 files changed, 38 insertions(+), 17 deletions(-)
Index: b/macros.in
Index: macros.in
===================================================================
--- macros.in
--- macros.in.orig
+++ macros.in
@@ -179,6 +179,18 @@ Debug information is useful when develop
@@ -183,6 +183,18 @@ Debug information is useful when develop
package or when debugging this package.\
%files debuginfo -f debugfiles.list\
%defattr(-,root,root)\
@ -31,82 +31,36 @@ Index: b/macros.in
%{nil}
%_defaultdocdir %{_usr}/doc/packages
Index: b/scripts/find-debuginfo.sh
Index: scripts/find-debuginfo.sh
===================================================================
--- scripts/find-debuginfo.sh
--- scripts/find-debuginfo.sh.orig
+++ scripts/find-debuginfo.sh
@@ -7,14 +7,16 @@ else BUILDDIR=$1
fi
LISTFILE=$BUILDDIR/debugfiles.list
-SOURCEFILE=$BUILDDIR/debugsources.list
+LISTSOURCE=$BUILDDIR/debugsources.list
debugdir="${RPM_BUILD_ROOT}/usr/lib/debug"
+debugsrcdir="${RPM_BUILD_ROOT}/usr/src/debug"
-echo -n > $SOURCEFILE
+[ -d "$TMPDIR" ] || TMPDIR="/tmp"
+SOURCES_TMP=`mktemp $TMPDIR/rpmXXXXXX`
@@ -172,8 +172,8 @@ set -o pipefail
strict_error=ERROR
$strict || strict_error=WARNING
-# Strip ELF binaries
-for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) `
+# Strip ELF binaries (and never strip static libraries here)
+for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) ! -name "*.a" `
do
case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in
*debuglink*) continue ;;
@@ -36,7 +38,8 @@ do
echo extracting debug info from $f
mode=$(stat -c %a $f)
chmod +w $f
- /usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f"
+ /usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d $(echo ${debugsrcdir} | \
+ sed -n -e "s#^$RPM_BUILD_ROOT##p") -l "$SOURCES_TMP" "$f"
-find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) |
+# Strip ELF binaries (and no static libraries)
+find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) ! -name "*.a" |
xargs --no-run-if-empty stat -c '%h %D_%i %n' |
while read nlinks inum f; do
case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in
@@ -282,10 +282,16 @@ if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -
# A binary already copied into /usr/lib/debug doesn't get stripped,
# just has its file names collected and adjusted.
@@ -75,12 +78,25 @@ done
# mv "$f" "${debugdn}"
#done
(cd "${RPM_BUILD_ROOT}/usr"
test ! -d lib/debug || find lib/debug ! -type d
- test ! -d src/debug || find src/debug -mindepth 1 -maxdepth 1
) | sed 's,^,/usr/,' >> "$LISTFILE"
fi
+# fixup paths, just in case ?!
+find ${debugdir} -type d -print0 | xargs -0 -r chmod 0755
+find ${debugdir} -type f -print0 | xargs -0 -r chmod 0644
+
+find ${debugdir} -mindepth 1 -maxdepth 1 2>/dev/null | \
+ sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTFILE
-mkdir -p ${RPM_BUILD_ROOT}/usr/src/debug
-(cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0m ${RPM_BUILD_ROOT}/usr/src/debug) < $SOURCEFILE
+
+if [ -s "$SOURCES_TMP" ] ; then
+ # strip GCC built-in code from sources list
+ (cd $RPM_BUILD_DIR && LANG=C sort -z -u | grep -z -v "<built-in>" | \
+ cpio -pd0m ${debugsrcdir} ) < $SOURCES_TMP
+ # stupid cpio creates new directories in mode 0700, fixup
+ find ${debugsrcdir} -type d -print0 | xargs -0 -r chmod 0755
+ find ${debugsrcdir} -type f -print0 | xargs -0 -r chmod 0644
+: > "$SOURCEFILE"
+if [ -d "${RPM_BUILD_ROOT}/usr/src" ]; then
+ (cd "${RPM_BUILD_ROOT}/usr"
+ test ! -d src/debug || find src/debug -mindepth 1 -maxdepth 1
+ ) | sed 's,^,/usr/,' >> "$SOURCEFILE"
+fi
# trying to replace dangling and/or absolute symlink
-DBASE=${RPM_BUILD_ROOT}/usr/src/debug
+DBASE=${debugsrcdir}
for link in `find $DBASE -type l -printf "%P\n"` ; do
link_file=`readlink $RPM_BUILD_DIR/$link`
case $link_file in
@@ -93,12 +109,5 @@ for link in `find $DBASE -type l -printf
fi
done
-{
- test -d ${RPM_BUILD_ROOT}/usr/lib/debug && echo /usr/lib/debug
- echo /usr/src/debug
-} > $LISTFILE
-
-for p in $(<$LISTFILE); do
- find $RPM_BUILD_ROOT/$p -type f -print0 | xargs -0 -r chmod 0644
- find $RPM_BUILD_ROOT/$p -type d -print0 | xargs -0 -r chmod 0755
-done
+find ${debugsrcdir} -mindepth 1 -maxdepth 1 2>/dev/null | \
+ sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTSOURCE
+
# Append to $1 only the lines from stdin not already in the file.
append_uniq()
{

View File

@ -2,19 +2,21 @@ Make the numbers reported for diskspace problems more user
friendly. Probably a bad idea, as it changes the semantics. Instead,
the messages should be changed.
--- ./lib/rpmts.c.orig 2005-02-13 03:12:03.000000000 +0000
+++ ./lib/rpmts.c 2005-12-15 15:12:10.000000000 +0000
@@ -1358,14 +1363,14 @@ void rpmtsCheckDSIProblems(const rpmts t
Index: lib/rpmts.c
===================================================================
--- lib/rpmts.c.orig
+++ lib/rpmts.c
@@ -1358,14 +1358,14 @@ void rpmtsCheckDSIProblems(const rpmts t
rpmpsAppend(ps, RPMPROB_DISKSPACE,
rpmteNEVR(te), rpmteKey(te),
rpmteNEVRA(te), rpmteKey(te),
ts->filesystems[i], NULL, NULL,
- (adj_fs_blocks(dsi->bneeded) - dsi->bavail) * dsi->bsize);
+ (adj_fs_blocks(dsi->bneeded)) * dsi->bsize);
}
if (dsi->iavail > 0 && adj_fs_blocks(dsi->ineeded) > dsi->iavail) {
if (dsi->iavail >= 0 && adj_fs_blocks(dsi->ineeded) > dsi->iavail) {
rpmpsAppend(ps, RPMPROB_DISKNODES,
rpmteNEVR(te), rpmteKey(te),
rpmteNEVRA(te), rpmteKey(te),
ts->filesystems[i], NULL, NULL,
- (adj_fs_blocks(dsi->ineeded) - dsi->iavail));
+ (adj_fs_blocks(dsi->ineeded)));

View File

@ -1,36 +0,0 @@
Add support for a new macro, %{_docdir}. It can be used to specify
the name of the directory for %doc files.
Default is "%{NAME}-%{VERSION}", SUSE uses just "%{NAME}".
rh#125514
--- ./build/files.c.orig 2005-12-14 19:22:43.000000000 +0000
+++ ./build/files.c 2006-02-17 13:57:25.000000000 +0000
@@ -1006,11 +1006,23 @@ static int parseForSimple(/*@unused@*/Sp
res = 1;
} else {
/* XXX WATCHOUT: buf is an arg */
- { const char *ddir, *n, *v;
-
- (void) headerNVR(pkg->header, &n, &v, NULL);
-
- ddir = rpmGetPath("%{_docdir}/", n, "-", v, NULL);
+ {
+ static char *_docdir_fmt= 0;
+ static int oneshot = 0;
+ const char *ddir, *fmt, *errstr;
+ if (!oneshot) {
+ _docdir_fmt = rpmExpand("%{?_docdir_fmt}", NULL);
+ if (!_docdir_fmt || !*_docdir_fmt)
+ _docdir_fmt = "%{NAME}-%{VERSION}";
+ oneshot = 1;
+ }
+ fmt = headerSprintf(pkg->header, _docdir_fmt, rpmTagTable, rpmHeaderFormats, &errstr);
+ if (!fmt) {
+ rpmError(RPMERR_BADSPEC, _("illegal _docdir_fmt: %s\n"), errstr);
+ fl->processingFailed = 1;
+ res = 1;
+ }
+ ddir = rpmGetPath("%{_docdir}/", fmt, NULL);
strcpy(buf, ddir);
ddir = _free(ddir);
}

View File

@ -149,3 +149,23 @@
AC_PROG_RANLIB
AC_PROG_YACC
AM_PROG_LEX
--- elfutils-0.97/libelf/common.h.orig 2007-09-25 11:34:29.000000000 +0200
+++ elfutils-0.97/libelf/common.h 2007-09-25 11:36:54.000000000 +0200
@@ -78,7 +78,7 @@
/* Acquire lock for the descriptor and all children. */
-static void
+static inline void
libelf_acquire_all (Elf *elf)
{
rwlock_wrlock (elf->lock);
@@ -97,7 +97,7 @@
}
/* Release own lock and those of the children. */
-static void
+static inline void
libelf_release_all (Elf *elf)
{
if (elf->kind == ELF_K_AR)

View File

@ -1,16 +0,0 @@
Fix segfault when rpmbuild stumbles over an empty file list.
The "+ 1" is a remedy for xmalloc(0), which would return NULL.
Index: ./build/files.c
===================================================================
--- ./build/files.c
+++ ./build/files.c
@@ -1380,7 +1380,7 @@ static void genCpioListAndHeader(/*@part
: (int *)(fi->bnl + fi->fc);
/*@=dependenttrans@*/
- fi->apath = xmalloc(fi->fc * sizeof(*fi->apath) + apathlen);
+ fi->apath = xmalloc(fi->fc * sizeof(*fi->apath) + apathlen + 1);
a = (char *)(fi->apath + fi->fc);
*a = '\0';

View File

@ -1,16 +0,0 @@
Do not call rpmtsRun with an empty transaction list, it returns -1
which messes up the numFailed counter. [#43267]
Index: lib/rpminstall.c
===================================================================
--- lib/rpminstall.c.orig
+++ lib/rpminstall.c
@@ -844,7 +844,7 @@ int rpmErase(rpmts ts, struct rpmInstall
}
#endif
- if (!stopUninstall) {
+ if (numPackages && !stopUninstall) {
(void) rpmtsSetFlags(ts, (rpmtsFlags(ts) | RPMTRANS_FLAG_REVERSE));
/* Drop added/available package indices and dependency sets. */

View File

@ -1,28 +0,0 @@
Allow "--ignoresize" for erase operations.
Index: lib/rpminstall.c
===================================================================
--- lib/rpminstall.c.orig
+++ lib/rpminstall.c
@@ -850,7 +850,7 @@ int rpmErase(rpmts ts, struct rpmInstall
/* Drop added/available package indices and dependency sets. */
rpmtsClean(ts);
- numPackages = rpmtsRun(ts, NULL, 0);
+ numPackages = rpmtsRun(ts, NULL, ia->probFilter & (RPMPROB_FILTER_DISKSPACE|RPMPROB_FILTER_DISKNODES));
ps = rpmtsProblems(ts);
if (rpmpsNumProblems(ps) > 0)
rpmpsPrint(NULL, ps);
Index: rpmqv.c
===================================================================
--- rpmqv.c.orig
+++ rpmqv.c
@@ -468,7 +468,7 @@ int main(int argc, const char ** argv)
argerror(_("--ignoreos may only be specified during package "
"installation"));
- if (bigMode != MODE_INSTALL &&
+ if (bigMode != MODE_INSTALL && bigMode != MODE_ERASE &&
(ia->probFilter & (RPMPROB_FILTER_DISKSPACE|RPMPROB_FILTER_DISKNODES)))
argerror(_("--ignoresize may only be specified during package "
"installation"));

View File

@ -1,21 +0,0 @@
Order packages when erasing. Not tested very well.
Index: lib/rpminstall.c
===================================================================
--- lib/rpminstall.c.orig
+++ lib/rpminstall.c
@@ -835,14 +835,12 @@ int rpmErase(rpmts ts, struct rpmInstall
ps = rpmpsFree(ps);
}
-#ifdef NOTYET
if (!stopUninstall && !(ia->installInterfaceFlags & INSTALL_NOORDER)) {
if (rpmtsOrder(ts)) {
numFailed += numPackages;
stopUninstall = 1;
}
}
-#endif
if (!stopUninstall) {
(void) rpmtsSetFlags(ts, (rpmtsFlags(ts) | RPMTRANS_FLAG_REVERSE));

View File

@ -1,15 +0,0 @@
Deal with a return value of "-2" when database locking failed.
--- ./lib/rpminstall.c.orig 2005-12-14 21:01:09.000000000 +0000
+++ ./lib/rpminstall.c 2005-12-15 14:47:35.000000000 +0000
@@ -599,6 +611,10 @@ if (fileURL[0] == '=') {
eiu->numFailed++;
goto exit;
/*@notreached@*/ /*@switchbreak@*/ break;
+ default:
+ eiu->numFailed++;
+ goto exit;
+ /*@notreached@*/ /*@switchbreak@*/ break;
}
eiu->numRPMS++;

View File

@ -4,9 +4,11 @@ assumed to be true.
This mechanism is used by the weakdeps patch to filter the
"RPMSENSE_STRONG" flag.
--- ./rpmdb/header.c.orig 2005-06-06 23:33:54.000000000 +0000
+++ ./rpmdb/header.c 2006-03-17 18:08:02.000000000 +0000
@@ -2980,8 +2980,12 @@ static int parseExpression(headerSprintf
Index: rpmdb/header.c
===================================================================
--- rpmdb/header.c.orig
+++ rpmdb/header.c
@@ -2984,8 +2984,12 @@ static int parseExpression(headerSprintf
*endPtr = chptr;
@ -19,7 +21,7 @@ This mechanism is used by the weakdeps patch to filter the
(void) findTag(hsa, token, str);
return 0;
@@ -3239,6 +3243,7 @@ static char * singleSprintf(headerSprint
@@ -3226,6 +3230,7 @@ static char * singleSprintf(headerSprint
int_32 type;
int_32 count;
sprintfToken spft;
@ -27,7 +29,7 @@ This mechanism is used by the weakdeps patch to filter the
int condNumFormats;
size_t need;
@@ -3270,6 +3275,18 @@ static char * singleSprintf(headerSprint
@@ -3257,6 +3262,18 @@ static char * singleSprintf(headerSprint
if (token->u.cond.tag.ext || headerIsEntry(hsa->h, token->u.cond.tag.tag)) {
spft = token->u.cond.ifFormat;
condNumFormats = token->u.cond.numIfTokens;
@ -46,7 +48,7 @@ This mechanism is used by the weakdeps patch to filter the
} else {
spft = token->u.cond.elseFormat;
condNumFormats = token->u.cond.numElseTokens;
@@ -3291,19 +3308,22 @@ static char * singleSprintf(headerSprint
@@ -3278,19 +3295,22 @@ static char * singleSprintf(headerSprint
spft = token->u.array.format;
for (i = 0; i < token->u.array.numTokens; i++, spft++)
{
@ -65,7 +67,7 @@ This mechanism is used by the weakdeps patch to filter the
/*@-boundswrite@*/
- if (getExtension(hsa, spft->u.tag.ext, &type, NULL, &count,
- hsa->ec + spft->u.tag.extNum))
+ if (getExtension(hsa, stag->ext, &type, NULL, &count,
+ if (getExtension(hsa, stag->ext, &type, NULL, &count,
+ hsa->ec + stag->extNum))
continue;
/*@=boundswrite@*/

View File

@ -1,12 +0,0 @@
Return an error if Fileno is called with NULL instead of segfaulting.
--- ./rpmio/rpmio.c.orig 2005-01-26 03:39:58.000000000 +0000
+++ ./rpmio/rpmio.c 2005-12-16 17:51:19.000000000 +0000
@@ -3094,6 +3164,7 @@ int Fileno(FD_t fd)
{
int i, rc = -1;
+ if (fd == NULL) return -1;
if (fd->req != NULL)
rc = 123456789; /* HACK: https has no steenkin fileno. */
else

View File

@ -1,14 +0,0 @@
Do not check package provides if there is no slash in the file path.
bugzilla [#32467], rh#125516.
--- ./lib/query.c.orig 2004-10-26 23:29:28.000000000 +0000
+++ ./lib/query.c 2005-12-16 18:22:19.000000000 +0000
@@ -614,7 +637,7 @@ int rpmQueryVerify(QVA_t qva, rpmts ts,
if (qva->qva_mi == NULL) {
if (access(fn, F_OK) != 0)
myerrno = errno;
- else if (!provides_checked)
+ else if (!provides_checked && strchr(fn, '/'))
qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, fn, 0);
}

View File

@ -1,7 +1,9 @@
--- build/files.c 2007/03/19 11:52:22 1.103
+++ build/files.c 2007/03/19 14:13:05
@@ -2517,6 +2517,8 @@
if (checkFiles(check_fileList) > 0)
Index: build/files.c
===================================================================
--- build/files.c.orig
+++ build/files.c
@@ -2521,6 +2521,8 @@ int processBinaryFiles(Spec spec, int in
if (res == 0)
res = 1;
}
+ else

View File

@ -1,107 +1,85 @@
--- scripts/find-debuginfo.sh
Index: scripts/find-debuginfo.sh
===================================================================
--- scripts/find-debuginfo.sh.orig
+++ scripts/find-debuginfo.sh
@@ -14,9 +14,18 @@
echo -n > $SOURCEFILE
@@ -173,12 +173,18 @@ strict_error=ERROR
$strict || strict_error=WARNING
# Strip ELF binaries
-for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
- sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p'`
+for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) `
do
+ case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in
+ *debuglink*) continue ;;
+ *debug*) ;;
+ *gnu.version*)
+ echo "WARNING: "`echo $f | sed -e "s,^$RPM_BUILD_ROOT/*,/,"`" is already stripped!"
+ continue
+ ;;
+ *) continue ;;
+ esac
+
dn=$(dirname $f | sed -n -e "s#^$RPM_BUILD_ROOT##p")
bn=$(basename $f .debug).debug
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
- \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
- -print |
-file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' |
+find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) |
xargs --no-run-if-empty stat -c '%h %D_%i %n' |
while read nlinks inum f; do
+ case $(objdump -h $f 2>/dev/null | egrep -o '(debug[\.a-z_]*|gnu.version)') in
+ *debuglink*) continue ;;
+ *debug*) ;;
+ *gnu.version*)
+ echo "WARNING: "`echo $f | sed -e "s,^$RPM_BUILD_ROOT/*,/,"`" is already stripped!"
+ continue
+ ;;
+ *) continue ;;
+ esac
get_debugfn "$f"
[ -f "${debugfn}" ] && continue
@@ -25,6 +34,8 @@
[ -f "${debugfn}" ] && continue
@@ -199,6 +205,8 @@ while read nlinks inum f; do
fi
echo extracting debug info from $f
+ mode=$(stat -c %a $f)
+ chmod +w $f
/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f"
echo "extracting debug info from $f"
+ mode=$(stat -c %a "$f")
+ chmod +w "$f"
id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
-i -l "$SOURCEFILE" "$f") || exit
if [ -z "$id" ]; then
@@ -215,13 +223,25 @@ while read nlinks inum f; do
esac
# A binary already copied into /usr/lib/debug doesn't get stripped,
@@ -34,19 +45,63 @@
esac
mkdir -p "${debugdn}"
- if test -w "$f"; then
- strip_to_debug "${debugfn}" "$f"
- else
- chmod u+w "$f"
- strip_to_debug "${debugfn}" "$f"
- chmod u-w "$f"
- fi
+ objcopy --only-keep-debug $f $debugfn || :
+ (
+ shopt -s extglob
+ strip_option="--strip-all"
+ case "$f" in
+ *.ko)
+ strip_option="--strip-debug" ;;
+ *$STRIP_KEEP_SYMTAB*)
+ if test -n "$STRIP_KEEP_SYMTAB"; then
+ strip_option="--strip-debug"
+ fi
+ ;;
+ esac
+ if test "$NO_DEBUGINFO_STRIP_DEBUG" = true ; then
+ strip_option=
+ fi
+ objcopy --add-gnu-debuglink=$debugfn -R .comment -R .GCC.command.line $strip_option $f
+ chmod $mode $f
+ ) || :
mkdir -p "${debugdn}"
- if test -w "$f"; then
- eu-strip -f "${debugfn}" "$f" || :
- else
- chmod u+w "$f"
- eu-strip -f "${debugfn}" "$f" || :
- chmod u-w "$f"
+ objcopy --only-keep-debug $f $debugfn || :
+ (
+ shopt -s extglob
+ strip_option="--strip-all"
+ case "$f" in
+ *.ko)
+ strip_option="--strip-debug"
+ ;;
+ *$STRIP_KEEP_SYMTAB*)
+ if test -n "$STRIP_KEEP_SYMTAB"; then
+ strip_option="--strip-debug"
+ fi
+ ;;
+ esac
+ if test "$NO_DEBUGINFO_STRIP_DEBUG" = true ; then
+ strip_option=
fi
+ objcopy --add-gnu-debuglink=$debugfn -R .comment -R .GCC.command.line $strip_option $f
+ chmod $mode $f
+ ) || :
done
if [ -n "$id" ]; then
make_id_link "$id" "$dn/$(basename $f)"
@@ -250,12 +270,14 @@ if [ -s "$SOURCEFILE" ]; then
# stupid cpio creates new directories in mode 0700, fixup
find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 |
xargs --no-run-if-empty -0 chmod a+rx
+ find "${RPM_BUILD_ROOT}/usr/src/debug" -type f -print0 |
+ xargs --no-run-if-empty -0 chmod a+r
fi
+#for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -name "*.exe.mdb" -or -name "*.dll.mdb" \) `
+#do
+# dn=$(dirname $f | sed -n -e "s#^$RPM_BUILD_ROOT##p")
+# case "$dn" in
+# /usr/lib/debug/*) continue ;;
+# esac
+# debugdn="${debugdir}${dn}"
+# mkdir -p "${debugdn}"
+# mv "$f" "${debugdn}"
+#done
+
+
mkdir -p ${RPM_BUILD_ROOT}/usr/src/debug
-cat $SOURCEFILE | (cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0m ${RPM_BUILD_ROOT}/usr/src/debug)
-# stupid cpio creates new directories in mode 0700, fixup
-find ${RPM_BUILD_ROOT}/usr/src/debug -type d -print0 | xargs -0 chmod a+rx
+(cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0m ${RPM_BUILD_ROOT}/usr/src/debug) < $SOURCEFILE
if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -d "${RPM_BUILD_ROOT}/usr/src" ]; then
((nout > 0)) ||
test ! -d "${RPM_BUILD_ROOT}/usr/lib" ||
- (cd "${RPM_BUILD_ROOT}/usr/lib"; find debug -type d) |
+ (cd "${RPM_BUILD_ROOT}/usr/lib"; test ! -d debug || find debug -type d) |
sed 's,^,%dir /usr/lib/,' >> "$LISTFILE"
-find ${RPM_BUILD_ROOT}/usr/lib/debug -type f | sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTFILE
-find ${RPM_BUILD_ROOT}/usr/src/debug -mindepth 1 -maxdepth 1 | sed -n -e "s#^$RPM_BUILD_ROOT##p" >> $LISTFILE
+# trying to replace dangling and/or absolute symlink
+DBASE=${RPM_BUILD_ROOT}/usr/src/debug
+for link in `find $DBASE -type l -printf "%P\n"` ; do
+ link_file=`readlink $RPM_BUILD_DIR/$link`
+ case $link_file in
+ /*) is_abs=true ;;
+ *) is_abs= ;;
+ esac
+ if test ! -e "$DBASE/$link" -o -n "$is_abs" ; then # dangling
+ rm -f "$DBASE/$link"
+ cp "`readlink -f $RPM_BUILD_DIR/$link`" "$DBASE/$link"
+ fi
+done
+
+{
+ test -d ${RPM_BUILD_ROOT}/usr/lib/debug && echo /usr/lib/debug
+ echo /usr/src/debug
+} > $LISTFILE
+
+for p in $(<$LISTFILE); do
+ find $RPM_BUILD_ROOT/$p -type f -print0 | xargs -0 -r chmod 0644
+ find $RPM_BUILD_ROOT/$p -type d -print0 | xargs -0 -r chmod 0755
+done
(cd "${RPM_BUILD_ROOT}/usr"

View File

@ -9,7 +9,7 @@ Index: lib/transaction.c
===================================================================
--- lib/transaction.c.orig
+++ lib/transaction.c
@@ -1745,7 +1745,7 @@ rpmMessage(RPMMESS_DEBUG, _("computing f
@@ -1758,7 +1758,7 @@ rpmMessage(RPMMESS_DEBUG, _("computing f
(void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), 0);
/* Extract file info for all files in this package from the database. */
matches = xcalloc(fc, sizeof(*matches));
@ -39,7 +39,7 @@ Index: rpmdb/rpmdb.c
===================================================================
--- rpmdb/rpmdb.c.orig
+++ rpmdb/rpmdb.c
@@ -2358,7 +2358,7 @@ static void rpmdbSortIterator(/*@null@*/
@@ -2390,7 +2390,7 @@ static void rpmdbSortIterator(/*@null@*/
}
/*@-bounds@*/ /* LCL: segfault */
@ -48,7 +48,7 @@ Index: rpmdb/rpmdb.c
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/
{
@@ -2369,7 +2369,7 @@ static int rpmdbGrowIterator(/*@null@*/
@@ -2401,7 +2401,7 @@ static int rpmdbGrowIterator(/*@null@*/
dbiIndexSet set;
int rc;
int xx;
@ -57,7 +57,7 @@ Index: rpmdb/rpmdb.c
if (mi == NULL)
return 1;
@@ -2405,6 +2405,25 @@ static int rpmdbGrowIterator(/*@null@*/
@@ -2437,6 +2437,25 @@ static int rpmdbGrowIterator(/*@null@*/
set = NULL;
(void) dbt2set(dbi, data, &set);
@ -83,7 +83,7 @@ Index: rpmdb/rpmdb.c
for (i = 0; i < set->count; i++)
set->recs[i].fpNum = fpNum;
@@ -3393,6 +3412,12 @@ static int skipDir(const char * dn)
@@ -3412,6 +3431,12 @@ static int skipDir(const char * dn)
int rpmdbFindFpList(rpmdb db, fingerPrint * fpList, dbiIndexSet * matchList,
int numItems)
{
@ -96,7 +96,7 @@ Index: rpmdb/rpmdb.c
DBT * key;
DBT * data;
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
@@ -3424,10 +3449,13 @@ key->data = (void *) fpList[i].baseName;
@@ -3443,10 +3468,13 @@ key->data = (void *) fpList[i].baseName;
key->size = strlen((char *)key->data);
if (key->size == 0) key->size++; /* XXX "/" fixup. */

View File

@ -1,20 +1,22 @@
--- scripts/find-lang.sh 2004-06-20 20:55:19.000000000 +0200
+++ scripts/find-lang.sh 2008-03-21 18:13:21.489944000 +0100
@@ -28,10 +28,10 @@
Index: scripts/find-lang.sh
===================================================================
--- scripts/find-lang.sh.orig
+++ scripts/find-lang.sh
@@ -28,10 +28,10 @@ the top of the tree containing the files
PACKAGE_NAME is the %{name} of the package. This should also be
the basename of the .mo files. the output is written to
PACKAGE_NAME.lang unless \$3 is given in which case output is written
-to \$3.
+to \$3 (note, that \$3 is appended to if given).
+to \$3 (note that \$3 is appended to if given).
Additional options:
- --with-gnome find GNOME help files
- --with-kde find KDE help files
+ --without-gnome find GNOME help files
+ --without-kde find KDE help files
+ --without-gnome do not find GNOME help files
+ --without-kde do not find KDE help files
--with-qt find Qt translation files
--with-man find localized man pages
--all-name match all package/domain names
--without-mo not find locales files
EOF
@@ -52,8 +52,8 @@
@@ -54,8 +54,8 @@ else NAME=$1
fi
shift
@ -22,32 +24,28 @@
-KDE=#
+GNOME=
+KDE=
QT=#
MAN=#
MO=
MO_NAME=$NAME.lang
ALL_NAME=#
@@ -61,12 +61,12 @@
while test $# -gt 0 ; do
case "${1}" in
- --with-gnome )
- GNOME=
@@ -73,6 +73,14 @@ while test $# -gt 0 ; do
KDE=
shift
;;
+ --without-gnome )
+ GNOME=#
shift
;;
- --with-kde )
- KDE=
+ shift
+ ;;
+ --without-kde )
+ KDE=#
+ shift
+ ;;
--with-qt )
QT=
shift
;;
--without-mo )
@@ -85,26 +85,43 @@
@@ -97,32 +105,48 @@ while test $# -gt 0 ; do
esac
done
-find $TOP_DIR -type f|sed '
+
+if ! test -s $MO_NAME ; then
+ echo "%defattr (644, root, root, 755)" > $MO_NAME
+fi
@ -55,7 +53,7 @@
+MO_NAME_NEW=$MO_NAME.tmp.$$
+rm -f $MO_NAME_NEW
+
+find $TOP_DIR -type f -o -type l|sed '
find $TOP_DIR -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MO"'s:\(.*/share/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
'"$NO_ALL_NAME$MO"'s:\(.*/share/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
@ -89,11 +87,27 @@
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^ *$/d' >> $MO_NAME_NEW
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type d|sed '
s:'"$TOP_DIR"'::
@@ -112,12 +129,20 @@
'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%dir \1:
s:^\([^%].*\)::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type f|sed '
s:'"$TOP_DIR"'::
@@ -130,7 +154,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
s:^[^%].*::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type d|sed '
s:'"$TOP_DIR"'::
@@ -138,9 +162,13 @@ s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
'"$ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
'"$ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
@ -104,15 +118,40 @@
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^ *$/d' >> $MO_NAME_NEW
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type f -o -type l|sed '
s:'"$TOP_DIR"'::
@@ -148,7 +176,7 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$QT"'s:\(.*[/_]\([^/_]\+\)\.qm$\):%lang(\2) \1:
s:^[^%].*::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type d|sed '
s:'"$TOP_DIR"'::
@@ -156,17 +184,20 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
find $TOP_DIR -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' >> $MO_NAME
+/^$/d' >> $MO_NAME_NEW
-if ! grep -q / $MO_NAME; then
+if ! grep -q / $MO_NAME_NEW ; then
+if ! grep -q / $MO_NAME_NEW; then
echo "No translations found for ${NAME} in ${TOP_DIR}"
+ rm -f $MO_NAME_NEW
+ rm -rf $MO_NAME_NEW
exit 1
+else
+ sort -u $MO_NAME_NEW >> $MO_NAME
+ rm -f $MO_NAME_NEW
fi
+sort -u $MO_NAME_NEW >> $MO_NAME
+rm -f $MO_NAME_NEW
exit 0

View File

@ -1,40 +0,0 @@
Print error message if scriptlet fork fails instead if silently
dying. [#152779]
Index: lib/psm.c
===================================================================
--- lib/psm.c.orig
+++ lib/psm.c
@@ -910,6 +910,12 @@ static rpmRC runScript(rpmpsm psm, Heade
}
/*@=branchstate@*/
+ if (psm->sq.child == (pid_t)-1) {
+ rpmError(RPMERR_FORK, _("Couldn't fork %s: %s\n"), sln, strerror(errno));
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+
(void) psmWait(psm);
/* XXX filter order dependent multilib "other" arch helper error. */
@@ -934,6 +940,7 @@ static rpmRC runScript(rpmpsm psm, Heade
}
}
+exit:
if (freePrefixes) prefixes = hfd(prefixes, ipt);
xx = Fclose(out); /* XXX dup'd STDOUT_FILENO */
Index: rpmio/rpmsq.c
===================================================================
--- rpmio/rpmsq.c.orig
+++ rpmio/rpmsq.c
@@ -407,6 +407,7 @@ fprintf(stderr, " Enable(%p): %p\n",
pid = fork();
if (pid < (pid_t) 0) { /* fork failed. */
+ sq->child = (pid_t)-1;
/*@-bounds@*/
xx = close(sq->pipes[0]);
xx = close(sq->pipes[1]);

View File

@ -1,30 +0,0 @@
Check getcwd return value, abort if rpm cannot determine current
directory.
--- ./build.c.orig 2004-10-17 19:00:10.000000000 +0000
+++ ./build.c 2005-12-19 17:52:25.000000000 +0000
@@ -206,7 +211,10 @@ static int buildForTarget(rpmts ts, cons
directory for this run */
if (*arg != '/') {
- (void)getcwd(buf, BUFSIZ);
+ if (!getcwd(buf, BUFSIZ)) {
+ rpmError(RPMERR_STAT, "getcwd failed: %m\n");
+ return 1;
+ }
strcat(buf, "/");
strcat(buf, arg);
} else
@@ -225,7 +233,11 @@ static int buildForTarget(rpmts ts, cons
specut = urlPath(specURL, &specFile);
if (*specFile != '/') {
char *s = alloca(BUFSIZ);
- (void)getcwd(s, BUFSIZ);
+ if (!getcwd(s, BUFSIZ)) {
+ rpmError(RPMERR_STAT, "getcwd failed: %m\n");
+ rc = 1;
+ goto exit;
+ }
strcat(s, "/");
strcat(s, arg);
specURL = s;

View File

@ -1,17 +0,0 @@
Fix --noghost query option. rh#103207
Already in rpm-4.4.7
Index: lib/query.c
===================================================================
--- lib/query.c.orig
+++ lib/query.c
@@ -222,7 +222,7 @@ int showQueryPackage(QVA_t qva, rpmts ts
continue;
/* If not querying %ghost, skip ghost files. */
- if (!(qva->qva_fflags & RPMFILE_GHOST) && (fflags & RPMFILE_GHOST))
+ if ((qva->qva_fflags & RPMFILE_GHOST) && (fflags & RPMFILE_GHOST))
continue;
/*@-boundswrite@*/

View File

@ -4,9 +4,11 @@ glob code. [#129434], rh#126460
rpm-4.4.7 comes with its own glob implementation, so it doesn't
need this patch (but it also doesn't hurt).
--- ./rpmio/rpmrpc.c.orig 2005-12-16 15:01:26.000000000 +0000
+++ ./rpmio/rpmrpc.c 2006-02-13 18:55:39.000000000 +0000
@@ -1450,7 +1462,8 @@ fprintf(stderr, "*** Glob(%s,0x%x,%p,%p)
Index: rpmio/rpmrpc.c
===================================================================
--- rpmio/rpmrpc.c.orig
+++ rpmio/rpmrpc.c
@@ -1462,7 +1462,8 @@ fprintf(stderr, "*** Glob(%s,0x%x,%p,%p)
pglob->gl_readdir = Readdir;
pglob->gl_opendir = Opendir;
pglob->gl_lstat = Lstat;

View File

@ -1,13 +0,0 @@
Fix off-by-one error in glob call.
--- ./rpmio/rpmrpc.c.orig 2005-12-16 15:01:26.000000000 +0000
+++ ./rpmio/rpmrpc.c 2006-02-13 18:55:39.000000000 +0000
@@ -1403,7 +1415,7 @@ int Glob_pattern_p (const char * pattern
case '*':
return (1);
case '\\':
- if (quote && p[1] != '\0')
+ if (quote && *p != '\0')
p++;
continue;

View File

@ -1,25 +0,0 @@
Check rpmtsInitDB return value. Also patches rpm.c, which
actually is not used anymore.
--- ./rpm.c.orig 2005-12-15 11:59:33.000000000 +0000
+++ ./rpm.c 2005-12-15 11:59:53.000000000 +0000
@@ -1119,7 +1119,7 @@ int main(int argc, const char ** argv)
break;
case MODE_INITDB:
- rpmdbInit(rootdir, 0644);
+ ec = rpmdbInit(rootdir, 0644);
break;
case MODE_CHECKSIG:
--- ./rpmqv.c.orig 2005-12-15 13:46:45.000000000 +0000
+++ ./rpmqv.c 2005-12-15 13:47:37.000000000 +0000
@@ -624,7 +624,7 @@ int main(int argc, const char ** argv)
switch (bigMode) {
#ifdef IAM_RPMDB
case MODE_INITDB:
- (void) rpmtsInitDB(ts, 0644);
+ ec = rpmtsInitDB(ts, 0644);
break;
case MODE_REBUILDDB:

View File

@ -3,8 +3,10 @@ Convert changelog and i18n header elements to current locale.
Already in rpm-4.4.7
--- ./lib/formats.c.orig 2005-01-26 04:46:54.000000000 +0000
+++ ./lib/formats.c 2006-03-17 15:27:06.000000000 +0000
Index: lib/formats.c
===================================================================
--- lib/formats.c.orig
+++ lib/formats.c
@@ -2,6 +2,7 @@
* \file lib/formats.c
*/
@ -128,7 +130,7 @@ Already in rpm-4.4.7
/**
* Identify type of trigger.
* @param type tag type
@@ -1077,6 +1220,7 @@ static int i18nTag(Header h, int_32 tag,
@@ -1080,6 +1189,7 @@ static int i18nTag(Header h, int_32 tag,
if (rc && (*data) != NULL) {
*data = xstrdup(*data);
@ -136,7 +138,7 @@ Already in rpm-4.4.7
*freeData = 1;
return 0;
}
@@ -1088,6 +1232,56 @@ static int i18nTag(Header h, int_32 tag,
@@ -1091,6 +1201,56 @@ static int i18nTag(Header h, int_32 tag,
}
/**
@ -193,7 +195,7 @@ Already in rpm-4.4.7
* Retrieve summary text.
* @param h header
* @retval *type tag type
@@ -1127,6 +1321,20 @@ static int descriptionTag(Header h, /*@o
@@ -1130,6 +1290,20 @@ static int descriptionTag(Header h, /*@o
return i18nTag(h, RPMTAG_DESCRIPTION, type, data, count, freeData);
}
@ -214,7 +216,7 @@ Already in rpm-4.4.7
/**
* Retrieve group text.
* @param h header
@@ -1152,6 +1360,8 @@ const struct headerSprintfExtension_s rp
@@ -1155,6 +1329,8 @@ const struct headerSprintfExtension_s rp
{ HEADER_EXT_TAG, "RPMTAG_GROUP", { groupTag } },
{ HEADER_EXT_TAG, "RPMTAG_DESCRIPTION", { descriptionTag } },
{ HEADER_EXT_TAG, "RPMTAG_SUMMARY", { summaryTag } },

View File

@ -1,32 +0,0 @@
Build lua without readling support.
--- ./lua/Makefile.am.orig 2006-01-28 00:27:50.000000000 +0000
+++ ./lua/Makefile.am 2006-01-28 00:28:25.000000000 +0000
@@ -16,7 +16,7 @@ INCLUDES = -I$(srcdir)/include -I$(srcdi
lua_lua_SOURCES = lua/lua.c
lua_lua_CFLAGS = -DLUA_USERCONFIG='"$(srcdir)/local/userconfig.c"'
-lua_lua_LDADD = $(LDADD) -L/usr/lib -lreadline -lhistory -lncurses
+lua_lua_LDADD = $(LDADD) -lncurses
luac_luac_SOURCES = luac/luac.c luac/print.c lopcodes.c
luac_luac_CFLAGS = -DLUA_OPNAMES
--- ./lua/local/userconfig.c.orig 2004-03-16 21:58:30.000000000 +0000
+++ ./lua/local/userconfig.c 2006-01-28 00:34:39.000000000 +0000
@@ -9,6 +9,8 @@
{"rex", luaopen_rex}, \
{"luapath", luapath},
+#if 0
+
#define lua_readline myreadline
#define lua_saveline mysaveline
@@ -45,6 +47,7 @@ static void mysaveline (lua_State *L, co
}
}
}
+#endif
static int luapath(lua_State *L)
{

View File

@ -2,7 +2,7 @@ Index: lib/psm.c
===================================================================
--- lib/psm.c.orig
+++ lib/psm.c
@@ -502,6 +502,8 @@ static rpmRC runLuaScript(rpmpsm psm, He
@@ -506,6 +506,8 @@ static rpmRC runLuaScript(rpmpsm psm, He
{
const rpmts ts = psm->ts;
int rootFd = -1;
@ -11,7 +11,7 @@ Index: lib/psm.c
const char *n, *v, *r;
rpmRC rc = RPMRC_OK;
int i;
@@ -511,20 +513,27 @@ static rpmRC runLuaScript(rpmpsm psm, He
@@ -515,20 +517,27 @@ static rpmRC runLuaScript(rpmpsm psm, He
xx = headerNVR(h, &n, &v, &r);
@ -48,7 +48,7 @@ Index: lib/psm.c
/* Create arg variable */
rpmluaPushTable(lua, "arg");
@@ -561,14 +570,19 @@ static rpmRC runLuaScript(rpmpsm psm, He
@@ -565,14 +574,19 @@ static rpmRC runLuaScript(rpmpsm psm, He
rpmluaDelVar(lua, "arg");
if (rootFd >= 0) {

View File

@ -1,6 +1,8 @@
--- rpmio/rpmio.c.orig 2008-03-18 13:29:28.000000000 +0000
+++ rpmio/rpmio.c 2008-03-18 15:41:14.000000000 +0000
@@ -80,6 +80,7 @@ static int inet_aton(const char *cp, str
Index: rpmio/rpmio.c
===================================================================
--- rpmio/rpmio.c.orig
+++ rpmio/rpmio.c
@@ -84,6 +84,7 @@ static int inet_aton(const char *cp, str
#define FDONLY(fd) assert(fdGetIo(fd) == fdio)
#define GZDONLY(fd) assert(fdGetIo(fd) == gzdio)
#define BZDONLY(fd) assert(fdGetIo(fd) == bzdio)
@ -8,7 +10,7 @@
#define UFDONLY(fd) /* assert(fdGetIo(fd) == ufdio) */
@@ -185,6 +186,8 @@ static /*@observer@*/ const char * fdbg(
@@ -189,6 +190,8 @@ static /*@observer@*/ const char * fdbg(
} else if (fps->io == bzdio) {
sprintf(be, "BZD %p fdno %d", fps->fp, fps->fdno);
#endif
@ -17,7 +19,7 @@
} else if (fps->io == fpio) {
/*@+voidabstract@*/
sprintf(be, "%s %p(%d) fdno %d",
@@ -2629,6 +2632,348 @@ FDIO_t bzdio = /*@-compmempass@*/ &bzdio
@@ -2782,6 +2785,348 @@ FDIO_t bzdio = /*@-compmempass@*/ &bzdio
/*@=moduncon@*/
#endif /* HAVE_BZLIB_H */
@ -366,7 +368,7 @@
/* =============================================================== */
/*@observer@*/
static const char * getFdErrstr (FD_t fd)
@@ -2647,7 +2992,9 @@ static const char * getFdErrstr (FD_t fd
@@ -2800,7 +3145,9 @@ static const char * getFdErrstr (FD_t fd
errstr = fd->errcookie;
} else
#endif /* HAVE_BZLIB_H */
@ -377,7 +379,7 @@
{
errstr = (fd->syserrno ? strerror(fd->syserrno) : "");
}
@@ -2961,6 +3308,9 @@ fprintf(stderr, "*** Fdopen(%p,%s) %s\n"
@@ -3114,6 +3461,9 @@ fprintf(stderr, "*** Fdopen(%p,%s) %s\n"
fd = bzdFdopen(fd, zstdio);
/*@=internalglobs@*/
#endif
@ -387,7 +389,7 @@
} else if (!strcmp(end, "ufdio")) {
iof = ufdio;
} else if (!strcmp(end, "fpio")) {
@@ -3148,6 +3498,9 @@ int Ferror(FD_t fd)
@@ -3301,6 +3651,9 @@ int Ferror(FD_t fd)
ec = (fd->syserrno || fd->errcookie != NULL) ? -1 : 0;
i--; /* XXX fdio under bzdio always has fdno == -1 */
#endif

View File

@ -1,6 +1,7 @@
diff -purN build/pack.c build/pack.c
--- build/pack.c 2007-12-03 18:24:44.000000000 +0100
+++ build/pack.c 2007-12-03 18:49:50.000000000 +0100
Index: build/pack.c
===================================================================
--- build/pack.c.orig
+++ build/pack.c
@@ -479,6 +479,11 @@ int writeRPM(Header *hdrp, unsigned char
/* Add prereq on rpm version that understands bzip2 payloads */
(void) rpmlibNeedsFeature(h, "PayloadIsBzip2", "3.0.5-1");
@ -13,10 +14,11 @@ diff -purN build/pack.c build/pack.c
strcpy(buf, rpmio_flags);
buf[s - rpmio_flags] = '\0';
(void) headerAddEntry(h, RPMTAG_PAYLOADFLAGS, RPM_STRING_TYPE, buf+1, 1);
diff -purN lib/psm.c lib/psm.c
--- lib/psm.c 2007-12-03 18:24:45.000000000 +0100
+++ lib/psm.c 2007-12-03 19:07:03.000000000 +0100
@@ -2068,6 +2068,8 @@ psm->te->h = headerFree(psm->te->h);
Index: lib/psm.c
===================================================================
--- lib/psm.c.orig
+++ lib/psm.c
@@ -2097,6 +2097,8 @@ psm->te->h = headerFree(psm->te->h);
t = stpcpy(t, ".gzdio");
if (!strcmp(payload_compressor, "bzip2"))
t = stpcpy(t, ".bzdio");
@ -25,35 +27,36 @@ diff -purN lib/psm.c lib/psm.c
rc = RPMRC_OK;
} break;
diff -purN lib/rpmlibprov.c lib/rpmlibprov.c
--- lib/rpmlibprov.c 2007-12-03 18:24:45.000000000 +0100
+++ lib/rpmlibprov.c 2007-12-03 19:14:35.000000000 +0100
@@ -56,7 +56,10 @@ static struct rpmlibProvides_s rpmlibPro
Index: lib/rpmlibprov.c
===================================================================
--- lib/rpmlibprov.c.orig
+++ lib/rpmlibprov.c
@@ -59,6 +59,9 @@ static struct rpmlibProvides_s rpmlibPro
( RPMSENSE_EQUAL),
N_("internal support for lua scripts.") },
#endif
- { NULL, NULL, 0, NULL }
+ { "rpmlib(PayloadIsLzma)", "4.4.2-1",
+ (RPMSENSE_RPMLIB|RPMSENSE_EQUAL),
+ N_("package payload can be compressed using lzma.") },
+ { NULL, NULL, 0, NULL }
{ NULL, NULL, 0, NULL }
};
void rpmShowRpmlibProvides(FILE * fp)
diff -purN macros.in macros.in
--- macros.in 2007-12-03 18:24:43.000000000 +0100
+++ macros.in 2007-12-03 18:49:50.000000000 +0100
@@ -321,6 +321,7 @@ package or when debugging this package.\
Index: macros.in
===================================================================
--- macros.in.orig
+++ macros.in
@@ -326,6 +326,7 @@ package or when debugging this package.\
# Compression type and level for source/binary package payloads.
# "w9.gzdio" gzip level 9 (default).
# "w9.bzdio" bzip2 level 9.
+# "w5.lzdio" lzma level 5. (best compromise)
#
#%_source_payload w9.gzdio
#%_binary_payload w9.gzdio
diff -purN rpm2cpio.c rpm2cpio.c
--- rpm2cpio.c 2007-12-03 18:24:43.000000000 +0100
+++ rpm2cpio.c 2007-12-03 18:49:50.000000000 +0100
%_binary_payload w2.lzdio
Index: rpm2cpio.c
===================================================================
--- rpm2cpio.c.orig
+++ rpm2cpio.c
@@ -76,6 +76,8 @@ int main(int argc, char **argv)
t = stpcpy(t, ".gzdio");
if (!strcmp(payload_compressor, "bzip2"))
@ -63,10 +66,11 @@ diff -purN rpm2cpio.c rpm2cpio.c
}
gzdi = Fdopen(fdi, rpmio_flags); /* XXX gzdi == fdi */
diff -purN rpmio/rpmio.h rpmio/rpmio.h
--- rpmio/rpmio.h 2007-12-03 18:24:43.000000000 +0100
+++ rpmio/rpmio.h 2007-12-03 19:19:56.000000000 +0100
@@ -662,6 +662,10 @@ int ufdGetFile( /*@killref@*/ FD_t sfd,
Index: rpmio/rpmio.h
===================================================================
--- rpmio/rpmio.h.orig
+++ rpmio/rpmio.h
@@ -669,6 +669,10 @@ int ufdGetFile( /*@killref@*/ FD_t sfd,
/**
*/
@ -77,8 +81,10 @@ diff -purN rpmio/rpmio.h rpmio/rpmio.h
/*@observer@*/ /*@unchecked@*/ extern FDIO_t fadio;
/*@=exportlocal@*/
/*@}*/
--- scripts/rpm2cpio.sh 2002-02-04 17:53:52.000000000 +0100
+++ scripts/rpm2cpio.sh 2007-11-30 17:28:51.000000000 +0100
Index: scripts/rpm2cpio.sh
===================================================================
--- scripts/rpm2cpio.sh.orig
+++ scripts/rpm2cpio.sh
@@ -23,4 +23,14 @@ dl=`expr 256 \* \( 256 \* \( 256 \* $6 +
hdrsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $hdrsize`
@ -95,9 +101,11 @@ diff -purN rpmio/rpmio.h rpmio/rpmio.h
+ *) dd if="$pkg" ibs=$o skip=1 2>/dev/null | unlzma ;;
+ #*) echo "Unrecognized rpm file: $pkg"; return 1 ;;
+esac
--- rpmio/Makefile.am.lzma 2008-03-12 15:19:38.000000000 +0100
+++ rpmio/Makefile.am 2008-03-12 15:19:54.000000000 +0100
@@ -41,7 +41,7 @@
Index: rpmio/Makefile.am
===================================================================
--- rpmio/Makefile.am.orig
+++ rpmio/Makefile.am
@@ -41,7 +41,7 @@ librpmio_la_LDFLAGS = -release 4.4 $(LDF
@WITH_MAGIC_LIB@ \
@WITH_ZLIB_LIB@ \
-lpthread

100
lzma.diff
View File

@ -1,100 +0,0 @@
Add support for lzma compressed archives.
---
build/parsePrep.c | 3 +++
configure.ac | 1 +
file/src/compress.c | 3 +++
macros.in | 1 +
rpmio/macro.c | 5 +++++
rpmio/rpmmacro.h | 3 ++-
6 files changed, 15 insertions(+), 1 deletion(-)
Index: build/parsePrep.c
===================================================================
--- build/parsePrep.c.orig 2004-11-28 21:54:53.000000000 +0100
+++ build/parsePrep.c 2007-10-11 13:12:55.000000000 +0200
@@ -251,6 +251,9 @@ static int checkOwners(const char * urlf
t = "%{_unzipbin} -qq";
needtar = 0;
break;
+ case COMPRESSED_LZMA:
+ t = "%{__lzma} -dc";
+ break;
}
zipper = rpmGetPath(t, NULL);
buf[0] = '\0';
Index: configure.ac
===================================================================
--- configure.ac.orig 2007-10-11 12:46:47.000000000 +0200
+++ configure.ac 2007-10-11 12:46:48.000000000 +0200
@@ -221,6 +221,7 @@ AC_PATH_PROG(__GPG, gpg, /usr/bin/gpg, $
AC_PATH_PROG(__GREP, grep, /bin/grep, $MYPATH)
AC_PATH_PROG(GZIPBIN, gzip, /bin/gzip, $MYPATH)
AC_PATH_PROG(UNZIPBIN, unzip, /usr/bin/unzip, $MYPATH)
+AC_PATH_PROG(LZMABIN, lzma, /usr/bin/lzma, $MYPATH)
AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH)
AC_MSG_CHECKING(checking whether id supports -u)
Index: file/src/compress.c
===================================================================
--- file/src/compress.c.orig 2007-10-11 12:46:40.000000000 +0200
+++ file/src/compress.c 2007-10-11 12:46:48.000000000 +0200
@@ -76,6 +76,9 @@ private struct {
{ "PK\3\4", 4, { "gzip", "-cdq", NULL }, 1 }, /* pkzipped, */
/* ...only first file examined */
{ "BZh", 3, { "bzip2", "-cd", NULL }, 1 }, /* bzip2-ed */
+ /* The first bytes of a LZMA compressed file describe some compression
+ settings and thus vary. This handles the most common case: */
+ { "]\000\000",3, { "lzma", "-cdq", NULL }, 1 }, /* lzma-ed */
};
/*@=nullassign@*/
Index: macros.in
===================================================================
--- macros.in.orig 2007-10-11 12:46:46.000000000 +0200
+++ macros.in 2007-10-11 12:46:48.000000000 +0200
@@ -48,6 +48,7 @@
%__id @__ID@
%__install @__INSTALL@
%__ln_s @LN_S@
+%__lzma @LZMABIN@
%__make @__MAKE@
%__mkdir @__MKDIR@
%__mkdir_p @MKDIR_P@
Index: rpmio/macro.c
===================================================================
--- rpmio/macro.c.orig 2005-07-13 11:49:40.000000000 +0200
+++ rpmio/macro.c 2007-10-11 13:11:46.000000000 +0200
@@ -1165,6 +1165,9 @@ doFoo(MacroBuf mb, int negate, const cha
case 3: /* COMPRESSED_ZIP */
sprintf(be, "%%_unzip %s", b);
break;
+ case 4: /* COMPRESSED_LZMA */
+ sprintf(be, "%%_lzma -dc %s", b);
+ break;
}
b = be;
} else if (STREQ("S", f, fn)) {
@@ -2075,6 +2078,8 @@ int isCompressed(const char * file, rpmC
} else if ((magic[0] == 0120) && (magic[1] == 0113) &&
(magic[2] == 0003) && (magic[3] == 0004)) { /* pkzip */
*compressed = COMPRESSED_ZIP;
+ } else if (magic[0] == 0135 && magic[1] == 0 && magic[2] == 0) { /* lzma */
+ *compressed = COMPRESSED_LZMA;
} else if (((magic[0] == 0037) && (magic[1] == 0213)) || /* gzip */
((magic[0] == 0037) && (magic[1] == 0236)) || /* old gzip */
((magic[0] == 0037) && (magic[1] == 0036)) || /* pack */
Index: rpmio/rpmmacro.h
===================================================================
--- rpmio/rpmmacro.h.orig 2004-10-20 12:19:34.000000000 +0200
+++ rpmio/rpmmacro.h 2007-10-11 13:08:47.000000000 +0200
@@ -172,7 +172,8 @@ typedef enum rpmCompressedMagic_e {
COMPRESSED_NOT = 0, /*!< not compressed */
COMPRESSED_OTHER = 1, /*!< gzip can handle */
COMPRESSED_BZIP2 = 2, /*!< bzip2 can handle */
- COMPRESSED_ZIP = 3 /*!< unzip can handle */
+ COMPRESSED_ZIP = 3, /*!< unzip can handle */
+ COMPRESSED_LZMA = 4 /*!< lzma can handle */
} rpmCompressedMagic;
/**

View File

@ -4,7 +4,7 @@ Index: macros.in
===================================================================
--- macros.in.orig
+++ macros.in
@@ -166,22 +166,22 @@
@@ -171,22 +171,22 @@
# Template for debug information sub-package.
%debug_package \
@ -33,7 +33,7 @@ Index: macros.in
# The path to the gzip executable (legacy, use %{__gzip} instead).
%_gzipbin %{__gzip}
@@ -218,7 +218,7 @@ package or when debugging this package.\
@@ -223,7 +223,7 @@ package or when debugging this package.\
%_tmppath %{_var}/tmp
# Path to top of build area.
@ -42,7 +42,7 @@ Index: macros.in
# The path to the unzip executable (legacy, use %{__unzip} instead).
%_unzipbin %{__unzip}
@@ -323,7 +323,7 @@ package or when debugging this package.\
@@ -328,7 +328,7 @@ package or when debugging this package.\
# "w9.bzdio" bzip2 level 9.
#
#%_source_payload w9.gzdio
@ -51,7 +51,7 @@ Index: macros.in
# The signature to use and the location of configuration files for
# signing packages with PGP.
@@ -371,7 +371,7 @@ package or when debugging this package.\
@@ -383,7 +383,7 @@ package or when debugging this package.\
#
# Use internal dependency generator rather than external helpers?
@ -60,7 +60,17 @@ Index: macros.in
#
# Filter GLIBC_PRIVATE Provides: and Requires:
@@ -420,20 +420,22 @@ print (t)\
@@ -426,16 +426,22 @@ print (t)\
# Undefined, missing or %{nil} will use package content (if available).
%_verify_file_context_path %{__file_context_path}
+# maxnum,cuttime,minnum
+# 2006/07/01 (SLES10 GA)
+%_binarychangelogtrim 0,1151704800,10
+
#
# Path to scripts to autogenerate package dependencies,
#
# Note: Used iff _use_internal_dependency_generator is zero.
#%__find_provides @RPMCONFIGDIR@/rpmdeps --provides
#%__find_requires @RPMCONFIGDIR@/rpmdeps --requires
@ -75,21 +85,7 @@ Index: macros.in
#
# Path to scripts to autogenerate per-interpreter package dependencies,
#
# Note: Used iff _use_internal_dependency_generator is non-zero. The
# helpers are also used by @RPMCONFIGDIR@/rpmdeps {--provides|--requires}.
-%__perl_provides @RPMCONFIGDIR@/perldeps.pl --provides
-%__perl_requires @RPMCONFIGDIR@/perldeps.pl --requires
-#%__perl_provides @RPMCONFIGDIR@/perl.prov
-#%__perl_requires @RPMCONFIGDIR@/perl.req
+#%__perl_provides @RPMCONFIGDIR@/perldeps.pl --provides
+#%__perl_requires @RPMCONFIGDIR@/perldeps.pl --requires
+%__perl_provides @RPMCONFIGDIR@/perl.prov
+%__perl_requires @RPMCONFIGDIR@/perl.req
%__python_provides @RPMCONFIGDIR@/pythondeps.sh --provides
%__python_requires @RPMCONFIGDIR@/pythondeps.sh --requires
@@ -591,15 +593,15 @@ print (t)\
@@ -606,15 +612,15 @@ print (t)\
%_dbi_config_Packages %{_dbi_htconfig} lockdbfd
# "Depends" is a per-transaction cache of known dependency resolutions.
@ -112,99 +108,7 @@ Index: macros.in
# XXX legacy configuration.
# Choose db interface:
@@ -658,8 +660,8 @@ print (t)\
# Horowitz Key Protocol server configuration
#
-%_hkp_keyserver hkp://pgp.mit.edu
-%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=0x
+#%_hkp_keyserver hkp://pgp.mit.edu
+#%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search=0x
#==============================================================================
# ---- Transaction macros.
@@ -767,80 +769,6 @@ print (t)\
#
# XXX Note: that there cannot be any whitespace within the string "p>q",
# and that both p and q are package names (i.e. no version/release).
-#
-#%_dependency_whiteout_5_2 \
-# pam>pamconfig
-#%_dependency_whiteout_6_1 \
-# pilot-link-devel>pilot-link
-#%_dependency_whiteout_6_2 \
-# egcs-c++>libstdc++
-%_dependency_whiteout_7_0 \
- pango-gtkbeta-devel>pango-gtkbeta\
- XFree86>Mesa \
- compat-glibc>db2 \
- compat-glibc>db1 \
- pam>initscripts \
- initscripts>sysklogd
-%_dependency_whiteout_7_1 \
- arts>kdelibs-sound
-%_dependency_whiteout_7_2 \
- libgnomeprint15>gnome-print \
- nautilus>nautilus-mozilla \
- tcl>postgresql-tcl
-#%_dependency_whiteout_8_0 \
-# perl>perl-Parse-RecDescent \
-# XFree86-libs>XFree86-Mesa-libGL \
-# perl>perl-Filter \
-# perl>mrtg \
-# perl>mod_perl \
-# mysql>perl-DBD-MySQL \
-# ghostscript>gimp-print \
-# arts>kde2-compat \
-# perl-Date-Calc>perl-Bit-Vector \
-# glibc-debug>glibc-devel
-
-%_dependency_whiteout_8_0 \
- mysql>perl-DBD-MySQL \
- perl>perl-Filter \
- perl>mrtg \
- perl>mod_perl \
- perl-Date-Calc>perl-Bit-Vector \
-
-%_dependency_whiteout_fc3 \
- coreutils>pam \
- nautilus>nautilus-cd-burner \
- aspell>aspell-en \
- kernel>initscripts \
- kernel-smp>initscripts \
- xorg-x11-libs>xorg-x11-Mesa-libGL \
- openldap>cyrus-sasl-md5 \
- openldap>cyrus-sasl \
- openjade>docbook-dtds \
- gtk+>gdk-pixbuf \
- xorg-x11>xinitrc \
- gnome-python2>gnome-python2-bonobo \
- httpd-suexec>httpd \
- xemacs-sumo>apel-xemacs \
- php>php-pear \
- openoffice.org-libs>openoffice.org
-
-%_dependency_whiteout \
- libtermcap>bash \
- modutils>vixie-cron \
- ypbind>yp-tools \
- ghostscript-fonts>ghostscript \
- %{?_dependency_whiteout_fc3} \
- %{?_dependency_whiteout_fc2} \
- %{?_dependency_whiteout_fc1} \
- %{?_dependency_whiteout_9} \
- %{?_dependency_whiteout_8_0} \
- %{?_dependency_whiteout_7_2} \
- %{?_dependency_whiteout_7_1} \
- %{?_dependency_whiteout_7_0} \
- %{?_dependency_whiteout_6_2} \
- %{?_dependency_whiteout_6_1} \
- %{?_dependency_whiteout_5_2} \
- %{nil}
#
# Default headerSprintf() output format string for rpm -qa
@@ -1093,7 +1021,7 @@ print (t)\
@@ -1038,7 +1044,7 @@ print (t)\
%_build_vendor %{_host_vendor}
%_build_os %{_host_os}
%_host @host@
@ -213,10 +117,10 @@ Index: macros.in
%_host_cpu @host_cpu@
%_host_vendor @host_vendor@
%_host_os @host_os@
@@ -1250,12 +1178,191 @@ done \
@@ -1194,6 +1200,181 @@ done \
%perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
%perl_privlib %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)
#------------------------------------------------------------------------------
+# More useful perl macros (from Raul Dias <rsd@swi.com.br>)
+#
+%perl_version %(perl -V:version | sed "s!.*='!!;s!'.*!!")
@ -392,20 +296,22 @@ Index: macros.in
+run "\\$@"\
+EOF
+
+#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# arch macro for all Intel i?86 compatibile processors
# (Note: This macro (and it's analogues) will probably be obsoleted when
# rpm can use regular expressions against target platforms in macro
# conditionals.
#
%ix86 i386 i486 i586 i686 pentium3 pentium4 athlon
+%arm armv4l armv4b armv5l armv5b armv5tel armv5teb
+%arml armv4l armv5l armv5tel
+%armb armv4b armv5b armv5teb
@@ -1204,8 +1385,9 @@ done \
#------------------------------------------------------------------------
# Use in %install to generate locale specific file lists. For example,
@@ -1270,3 +1377,17 @@ done \
#------------------------------------------------------------------------------
# arch macro for all supported ARM processors
-%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l
-
+%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l
+%arml armv3l armv4l armv5l armv5tel armv6l
+%armb armv4b armv5b armv5teb
#------------------------------------------------------------------------------
# arch macro for all supported Alpha processors
@@ -1224,3 +1406,26 @@ done \
# \endverbatim
#*/
@ -423,3 +329,12 @@ Index: macros.in
+%info_del() test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
+%{nil}
+
+%service_add() %{fillup_and_insserv %{1}}
+%service_del_preun() %{stop_on_removal %{1}}
+%service_del_postun() %{restart_on_update %{1}}
+
+%user_group_add() \
+/usr/sbin/groupadd -o -r %{1} 2>/dev/null || :\
+/usr/sbin/useradd -o -r -g %{1} -d %{2} -s %{3} -c %{4} %{1} 2>/dev/null || :\
+%{nil}
+

22
mimetype.diff Normal file
View File

@ -0,0 +1,22 @@
--- ./autodeps/linux.prov.orig 2008-09-12 16:23:17.000000000 +0000
+++ ./autodeps/linux.prov 2008-09-12 16:37:03.000000000 +0000
@@ -11,6 +11,7 @@ solist=($(printf "%s\n" "${filelist[@]}"
pythonlist=
tcllist=
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
+mimetypelist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(desktop)\$"))
#
# --- Alpha does not mark 64bit dependencies
@@ -59,6 +60,11 @@ done | sort -u
printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.prov | sort -u
#
+# --- mimetypes in .desktop files
+[ -x /usr/lib/rpm/mimetypes.prov -a -n "$mimetypelist" ] &&
+ printf "%s\n" "${mimetypelist[@]}" | /usr/lib/rpm/mimetypes.prov | sort -u
+
+#
# --- Mono exes/dlls
: ${MONO_PREFIX=/usr}
if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then

View File

@ -1,8 +1,10 @@
Obey MISSINGOK flag for dependencies. Backport from rpm-4.4.7.
--- ./lib/depends.c.orig 2005-12-14 19:51:34.000000000 +0000
+++ ./lib/depends.c 2006-01-27 21:05:13.000000000 +0000
@@ -581,8 +632,13 @@ retry:
Index: lib/depends.c
===================================================================
--- lib/depends.c.orig
+++ lib/depends.c
@@ -593,8 +593,13 @@ retry:
/*@=boundsread@*/
unsatisfied:
@ -18,7 +20,7 @@ Obey MISSINGOK flag for dependencies. Backport from rpm-4.4.7.
exit:
/*
@@ -975,6 +1082,8 @@ static inline /*@observer@*/ const char
@@ -963,6 +968,8 @@ static inline /*@observer@*/ const char
return "Requires(postun):";
if (f & RPMSENSE_SCRIPT_VERIFY)
return "Requires(verify):";
@ -27,9 +29,11 @@ Obey MISSINGOK flag for dependencies. Backport from rpm-4.4.7.
if (f & RPMSENSE_FIND_REQUIRES)
return "Requires(auto):";
return "Requires:";
--- ./lib/rpmlib.h.orig 2005-12-15 14:50:30.000000000 +0000
+++ ./lib/rpmlib.h 2006-02-03 13:22:27.000000000 +0000
@@ -547,6 +561,7 @@ typedef enum rpmsenseFlags_e {
Index: lib/rpmlib.h
===================================================================
--- lib/rpmlib.h.orig
+++ lib/rpmlib.h
@@ -548,6 +548,7 @@ typedef enum rpmsenseFlags_e {
RPMSENSE_SCRIPT_POSTUN | \
RPMSENSE_SCRIPT_VERIFY | \
RPMSENSE_FIND_REQUIRES | \

View File

@ -1,9 +1,22 @@
SUSE specific find-supplements, used for kernel builds
Index: ./scripts/find-supplements
Index: macros.in
===================================================================
--- macros.in.orig
+++ macros.in
@@ -440,7 +440,7 @@ print (t)\
%__find_requires @RPMCONFIGDIR@/find-requires %name
#%__find_conflicts ???
#%__find_obsoletes ???
-#%__find_supplements ???
+%__find_supplements @RPMCONFIGDIR@/find-supplements %name
#%__find_enhances ???
#
Index: scripts/find-supplements
===================================================================
--- /dev/null
+++ ./scripts/find-supplements
+++ scripts/find-supplements
@@ -0,0 +1,14 @@
+#!/bin/bash
+
@ -19,10 +32,10 @@ Index: ./scripts/find-supplements
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-supplements.ksyms "$@"
+
+exit 0
Index: ./scripts/find-supplements.ksyms
Index: scripts/find-supplements.ksyms
===================================================================
--- /dev/null
+++ ./scripts/find-supplements.ksyms
+++ scripts/find-supplements.ksyms
@@ -0,0 +1,56 @@
+#! /bin/sh
+
@ -80,16 +93,3 @@ Index: ./scripts/find-supplements.ksyms
+done \
+| sort -u \
+| combine_modaliases
Index: ./macros.in
===================================================================
--- ./macros.in
+++ ./macros.in
@@ -424,7 +424,7 @@ print (t)\
%__find_requires @RPMCONFIGDIR@/find-requires %name
#%__find_conflicts ???
#%__find_obsoletes ???
-#%__find_supplements ???
+%__find_supplements @RPMCONFIGDIR@/find-supplements %name
#%__find_enhances ???
#

View File

@ -1,8 +1,10 @@
Also compare the name and not only the version when checking if
two packages are the same. rh#104066
--- ./lib/depends.c.orig 2005-12-14 19:51:34.000000000 +0000
+++ ./lib/depends.c 2006-01-27 21:05:13.000000000 +0000
Index: lib/depends.c
===================================================================
--- lib/depends.c.orig
+++ lib/depends.c
@@ -124,6 +124,24 @@ static int removePackage(rpmts ts, Heade
return 0;
}
@ -28,7 +30,7 @@ two packages are the same. rh#104066
int rpmtsAddInstallElement(rpmts ts, Header h,
fnpyKey key, int upgrade, rpmRelocation * relocs)
{
@@ -303,7 +322,7 @@ addheader:
@@ -315,7 +333,7 @@ addheader:
continue;
/* Skip packages that contain identical NEVR. */
@ -37,7 +39,7 @@ two packages are the same. rh#104066
continue;
xx = removePackage(ts, oh, rpmdbGetIteratorOffset(mi), pkgKey);
@@ -354,11 +373,9 @@ addheader:
@@ -366,11 +384,9 @@ addheader:
* If no obsoletes version info is available, match all names.
*/
if (rpmdsEVR(obsoletes) == NULL

View File

@ -1,14 +0,0 @@
--- ./configure.ac.orig 2008-02-21 20:47:51.000000000 +0000
+++ ./configure.ac 2008-02-21 20:51:38.000000000 +0000
@@ -1300,6 +1300,11 @@ unknown|pc|ibm|redhat|pld|mandrake|conec
test -f /etc/caos-release && RPMCANONVENDOR=caos
;;
esac
+if test "$RPMCANONVENDOR" = suse ; then
+ RPMCANONCOLOR=0
+ autorelocate_path='%{nil}'
+ autorelocate_dcolor='0'
+fi
RPMCANONOS="$build_os_noversion"
AC_SUBST(RPMCANONCOLOR)
AC_SUBST(autorelocate_path)

View File

@ -1,9 +1,11 @@
Revert upstream patch that always uses %defattr(-,root,root).
Upstream should probably use a macro instead.
--- ./build/files.c.orig 2005-12-14 19:22:43.000000000 +0000
+++ ./build/files.c 2006-02-17 13:57:25.000000000 +0000
@@ -2000,7 +2012,9 @@ static int processPackageFiles(Spec spec
Index: build/files.c
===================================================================
--- build/files.c.orig
+++ build/files.c
@@ -2014,7 +2014,9 @@ static int processPackageFiles(Spec spec
nullAttrRec(&fl.cur_ar);
nullAttrRec(&fl.def_ar);

View File

@ -1,83 +0,0 @@
Allow build without lua support.
--- ./build/parseScript.c.orig 2005-12-16 18:34:36.000000000 +0000
+++ ./build/parseScript.c 2005-12-16 18:36:08.000000000 +0000
@@ -283,6 +283,7 @@ int parseScript(Spec spec, int parsePart
stripTrailingBlanksStringBuf(sb);
p = getStringBuf(sb);
+#ifdef WITH_LUA
if (!strcmp(progArgv[0], "<lua>")) {
rpmlua lua = NULL; /* Global state. */
if (rpmluaCheckScript(lua, p, partname) != RPMRC_OK) {
@@ -291,7 +292,9 @@ int parseScript(Spec spec, int parsePart
}
(void) rpmlibNeedsFeature(pkg->header,
"BuiltinLuaScripts", "4.2.2-1");
- } else if (progArgv[0][0] == '<') {
+ } else
+#endif
+ if (progArgv[0][0] == '<') {
rpmError(RPMERR_BADSPEC,
_("line %d: unsupported internal script: %s\n"),
spec->lineNum, progArgv[0]);
--- ./lib/psm.c.orig 2005-12-14 18:59:10.000000000 +0000
+++ ./lib/psm.c 2006-02-24 11:46:54.000000000 +0000
@@ -490,6 +490,7 @@ static pid_t psmWait(rpmpsm psm)
return psm->sq.reaped;
}
+#ifdef WITH_LUA
/**
* Run internal Lua script.
*/
@@ -572,6 +573,7 @@ static rpmRC runLuaScript(rpmpsm psm, He
return rc;
}
+#endif
/**
*/
@@ -637,11 +639,15 @@ static rpmRC runScript(rpmpsm psm, Heade
xx = hge(h, RPMTAG_ARCH, NULL, (void **) &a, NULL);
if (progArgv && strcmp(progArgv[0], "<lua>") == 0) {
+#ifdef WITH_LUA
rpmMessage(RPMMESS_DEBUG,
_("%s: %s(%s-%s-%s.%s) running <lua> scriptlet.\n"),
psm->stepName, tag2sln(psm->scriptTag), n, v, r, a);
return runLuaScript(psm, h, sln, progArgc, progArgv,
script, arg1, arg2);
+#else
+ return RPMRC_FAIL;
+#endif
}
psm->sq.reaper = 1;
--- ./lib/rpmlibprov.c.orig 2004-03-16 21:58:29.000000000 +0000
+++ ./lib/rpmlibprov.c 2006-06-14 13:52:46.000000000 +0000
@@ -51,9 +54,11 @@ static struct rpmlibProvides_s rpmlibPro
{ "rpmlib(ConcurrentAccess)", "4.1-1",
( RPMSENSE_EQUAL),
N_("package scriptlets may access the rpm database while installing.") },
+#ifdef WITH_LUA
{ "rpmlib(BuiltinLuaScripts)", "4.2.2-1",
( RPMSENSE_EQUAL),
N_("internal support for lua scripts.") },
+#endif
{ NULL, NULL, 0, NULL }
};
--- ./lib/rpmrc.c.orig 2005-01-17 18:46:23.000000000 +0000
+++ ./lib/rpmrc.c 2005-12-16 18:30:29.000000000 +0000
@@ -1883,7 +1873,9 @@ int rpmReadConfigFiles(const char * file
}
/* Force Lua state initialization */
+#ifdef WITH_LUA
(void)rpmluaGetPrintBuffer(NULL);
+#endif
return 0;
}

View File

@ -1,292 +0,0 @@
Allow build without the neon library. Resurrects old httpOpen
code from rpm-4.1.1.
Building without neon means no webdav file uploads, though.
--- ./rpmio/rpmdav.c.orig 2005-12-16 18:04:29.000000000 +0000
+++ ./rpmio/rpmdav.c 2005-12-16 18:17:53.000000000 +0000
@@ -9,6 +9,8 @@
#include <pthread.h>
#endif
+#ifdef WITH_NEON
+
#include "ne_alloc.h"
#include "ne_auth.h"
#include "ne_basic.h"
@@ -27,6 +29,8 @@
#include "ne_string.h"
#include "ne_utils.h"
+#endif /* WITH_NEON */
+
#include <rpmio_internal.h>
#define _RPMDAV_INTERNAL
@@ -61,6 +65,8 @@ _free(/*@only@*/ /*@null@*/ /*@out@*/ co
return NULL;
}
+#ifdef WITH_NEON
+
/* =============================================================== */
static int davFree(urlinfo u)
/*@globals internalState @*/
@@ -1370,6 +1376,8 @@ fprintf(stderr, "*** davReadlink(%s) rc
}
#endif /* NOTYET */
+#endif /* WITH_NEON */
+
/* =============================================================== */
/*@unchecked@*/
int avmagicdir = 0x3607113;
@@ -1494,6 +1502,8 @@ fprintf(stderr, "*** avOpendir(%s)\n", p
}
/*@=boundswrite@*/
+#ifdef WITH_NEON
+
/* =============================================================== */
/*@unchecked@*/
int davmagicdir = 0x8440291;
@@ -1661,4 +1671,6 @@ fprintf(stderr, "*** davOpendir(%s)\n",
return (DIR *) avdir;
/*@=kepttrans@*/
}
+
+#endif /* WITH_NEON */
/*@=modfilesys@*/
--- ./rpmio/rpmio.c.orig 2005-01-26 03:39:58.000000000 +0000
+++ ./rpmio/rpmio.c 2005-12-16 17:51:19.000000000 +0000
@@ -371,7 +371,11 @@ static ssize_t fdRead(void * cookie, /*@
/*@-boundswrite@*/
/* HACK: flimsy wiring for davRead */
if (fd->req != NULL) {
+#ifdef WITH_NEON
rc = davRead(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
+#else
+ rc = -1;
+#endif
/* XXX Chunked davRead EOF. */
if (rc == 0)
fd->bytesRemain = 0;
@@ -404,9 +408,13 @@ static ssize_t fdWrite(void * cookie, co
fdstat_enter(fd, FDSTAT_WRITE);
/*@-boundsread@*/
/* HACK: flimsy wiring for davWrite */
- if (fd->req != NULL)
+ if (fd->req != NULL) {
+#ifdef WITH_NEON
rc = davWrite(fd, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
- else
+#else
+ return -1;
+#endif
+ } else
rc = write(fdno, buf, (count > fd->bytesRemain ? fd->bytesRemain : count));
/*@=boundsread@*/
fdstat_exit(fd, FDSTAT_WRITE, rc);
@@ -455,9 +463,13 @@ static int fdClose( /*@only@*/ void * co
fdstat_enter(fd, FDSTAT_CLOSE);
/* HACK: flimsy wiring for davClose */
/*@-branchstate@*/
- if (fd->req != NULL)
+ if (fd->req != NULL) {
+#ifdef WITH_NEON
rc = davClose(fd);
- else
+#else
+ return -1;
+#endif
+ } else
rc = ((fdno >= 0) ? close(fdno) : -2);
/*@=branchstate@*/
fdstat_exit(fd, FDSTAT_CLOSE, rc);
@@ -2029,6 +2041,56 @@ exit:
}
/*@=nullstate@*/
+#ifndef WITH_NEON
+/*@-nullstate@*/ /* FIX: u->{ctrl,data}->url undef after XurlLink. */
+static /*@null@*/ FD_t httpOpen(const char * url, /*@unused@*/ int flags,
+ /*@unused@*/ mode_t mode, /*@out@*/ urlinfo * uret)
+ /*@globals internalState @*/
+ /*@modifies *uret, internalState @*/
+{
+ urlinfo u = NULL;
+ FD_t fd = NULL;
+
+#if 0 /* XXX makeTempFile() heartburn */
+ assert(!(flags & O_RDWR));
+#endif
+ if (urlSplit(url, &u))
+ goto exit;
+
+ if (u->ctrl == NULL)
+ u->ctrl = fdNew("persist ctrl (httpOpen)");
+ if (u->ctrl->nrefs > 2 && u->data == NULL)
+ u->data = fdNew("persist data (httpOpen)");
+
+ if (u->ctrl->url == NULL)
+ fd = fdLink(u->ctrl, "grab ctrl (httpOpen persist ctrl)");
+ else if (u->data->url == NULL)
+ fd = fdLink(u->data, "grab ctrl (httpOpen persist data)");
+ else
+ fd = fdNew("grab ctrl (httpOpen)");
+
+ if (fd) {
+ fdSetIo(fd, ufdio);
+ fd->ftpFileDoneNeeded = 0;
+ fd->rd_timeoutsecs = httpTimeoutSecs;
+ fd->contentLength = fd->bytesRemain = -1;
+ fd->url = urlLink(u, "url (httpOpen)");
+ fd = fdLink(fd, "grab data (httpOpen)");
+ fd->urlType = URL_IS_HTTP;
+ }
+
+exit:
+/*@-boundswrite@*/
+ if (uret)
+ *uret = u;
+/*@=boundswrite@*/
+ /*@-refcounttrans@*/
+ return fd;
+ /*@=refcounttrans@*/
+}
+/*@=nullstate@*/
+#endif
+
static /*@null@*/ FD_t ufdOpen(const char * url, int flags, mode_t mode)
/*@globals h_errno, fileSystem, internalState @*/
/*@modifies fileSystem, internalState @*/
@@ -2067,7 +2129,11 @@ fprintf(stderr, "*** ufdOpen(%s,0x%x,0%o
case URL_IS_HTTPS:
case URL_IS_HTTP:
case URL_IS_HKP:
+#ifdef WITH_NEON
fd = davOpen(url, flags, mode, &u);
+#else
+ fd = httpOpen(url, flags, mode, &u);
+#endif
if (fd == NULL || u == NULL)
break;
@@ -2075,7 +2141,11 @@ fprintf(stderr, "*** ufdOpen(%s,0x%x,0%o
? ((flags & O_APPEND) ? "PUT" :
((flags & O_CREAT) ? "PUT" : "PUT"))
: "GET");
+#ifdef WITH_NEON
u->openError = davReq(fd, cmd, path);
+#else
+ u->openError = httpReq(fd, cmd, path);
+#endif
if (u->openError < 0) {
/* XXX make sure that we can exit through ufdClose */
fd = fdLink(fd, "error ctrl (ufdOpen HTTP)");
--- ./rpmio/rpmrpc.c.orig 2005-12-16 15:01:26.000000000 +0000
+++ ./rpmio/rpmrpc.c 2006-02-13 18:55:39.000000000 +0000
@@ -93,7 +93,9 @@ int Mkdir (const char * path, mode_t mod
/*@notreached@*/ break;
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davMkdir(path, mode);
+#endif
/*@notreached@*/ break;
case URL_IS_PATH:
path = lpath;
@@ -151,7 +153,9 @@ int Rmdir (const char * path)
/*@notreached@*/ break;
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davRmdir(path);
+#endif
/*@notreached@*/ break;
case URL_IS_PATH:
path = lpath;
@@ -182,7 +186,9 @@ int Rename (const char * oldpath, const
switch (oldut) {
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davRename(oldpath, newpath);
+#endif
/*@notreached@*/ break;
case URL_IS_FTP: /* XXX WRONG WRONG WRONG */
case URL_IS_PATH:
@@ -280,7 +286,9 @@ int Unlink(const char * path) {
/*@notreached@*/ break;
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davUnlink(path);
+#endif
/*@notreached@*/ break;
case URL_IS_PATH:
path = lpath;
@@ -1282,7 +1290,9 @@ fprintf(stderr, "*** Stat(%s,%p)\n", pat
/*@notreached@*/ break;
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davStat(path, st);
+#endif
/*@notreached@*/ break;
case URL_IS_PATH:
path = lpath;
@@ -1311,7 +1321,9 @@ fprintf(stderr, "*** Lstat(%s,%p)\n", pa
/*@notreached@*/ break;
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davLstat(path, st);
+#endif
/*@notreached@*/ break;
case URL_IS_PATH:
path = lpath;
@@ -1489,7 +1502,9 @@ fprintf(stderr, "*** Opendir(%s)\n", pat
/*@notreached@*/ break;
case URL_IS_HTTPS:
case URL_IS_HTTP:
+#ifdef WITH_NEON
return davOpendir(path);
+#endif
/*@notreached@*/ break;
case URL_IS_PATH:
path = lpath;
@@ -1515,8 +1530,10 @@ fprintf(stderr, "*** Readdir(%p)\n", (vo
return NULL;
if (ISAVMAGIC(dir))
return avReaddir(dir);
+#ifdef WITH_NEON
if (ISDAVMAGIC(dir))
return davReaddir(dir);
+#endif
return readdir(dir);
}
@@ -1528,8 +1545,10 @@ fprintf(stderr, "*** Closedir(%p)\n", (v
return 0;
if (ISAVMAGIC(dir))
return avClosedir(dir);
+#ifdef WITH_NEON
if (ISDAVMAGIC(dir))
return davClosedir(dir);
+#endif
return closedir(dir);
}
--- ./rpmio/url.c.orig 2005-12-16 15:24:25.000000000 +0000
+++ ./rpmio/url.c 2005-12-16 17:08:21.000000000 +0000
@@ -147,8 +147,10 @@ URLDBGREFS(0, (stderr, "--> url %p -- %d
/*@=usereleased@*/
}
if (u->sess != NULL) {
+#ifdef WITH_NEON
/* HACK: neon include has prototype. */
ne_session_destroy(u->sess);
+#endif
u->sess = NULL;
}
u->buf = _free(u->buf);

View File

@ -1,23 +0,0 @@
Revert upstream change that uses package provides when searching
for obsoleted packages. It's just too dangerous.
--- ./lib/depends.c.orig 2005-12-14 19:51:34.000000000 +0000
+++ ./lib/depends.c 2006-01-27 21:05:13.000000000 +0000
@@ -294,7 +313,7 @@ addheader:
/* On upgrade, erase older packages of same color (if any). */
- mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, rpmteN(p), 0);
+ mi = rpmtsInitIterator(ts, RPMTAG_NAME, rpmteN(p), 0);
while((oh = rpmdbNextIterator(mi)) != NULL) {
/* Ignore colored packages not in our rainbow. */
@@ -336,7 +355,7 @@ addheader:
if (Name[0] == '/')
mi = rpmtsInitIterator(ts, RPMTAG_BASENAMES, Name, 0);
else
- mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, Name, 0);
+ mi = rpmtsInitIterator(ts, RPMTAG_NAME, Name, 0);
xx = rpmdbPruneIterator(mi,
ts->removedPackages, ts->numRemovedPackages, 1);

View File

@ -1,13 +0,0 @@
Do not close stdout for scriptlets.
--- ./lib/psm.c.orig 2005-12-14 18:59:10.000000000 +0000
+++ ./lib/psm.c 2006-02-24 11:46:54.000000000 +0000
@@ -829,7 +837,7 @@ static rpmRC runScript(rpmpsm psm, Heade
xx = Fclose (out);
if (sfdno > STDERR_FILENO)
xx = Fclose (scriptFd);
- else {
+ else if (Fileno(out) > STDERR_FILENO) {
/*@-usereleased@*/
xx = Fclose(out);
/*@=usereleased@*/

View File

@ -1,14 +0,0 @@
Make rpmdbSync obey the no_dbsync flag
--- ./rpmdb/rpmdb.c.orig 2005-02-16 03:18:19.000000000 +0000
+++ ./rpmdb/rpmdb.c 2006-02-21 20:37:44.000000000 +0000
/*@=incondefs@*/
@@ -906,6 +937,8 @@ int rpmdbSync(rpmdb db)
int xx;
if (db->_dbi[dbix] == NULL)
continue;
+ if (db->_dbi[dbix]->dbi_no_dbsync)
+ continue;
xx = dbiSync(db->_dbi[dbix], 0);
if (xx && rc == 0) rc = xx;
}

View File

@ -1,55 +0,0 @@
Open all rpm databases before doing chroot. [#43266], [#44584]
rh#103852
Already in rpm-4.4.7, configurable with a macro (for whatever reason).
--- ./lib/transaction.c.orig 2005-12-14 21:15:40.000000000 +0000
+++ ./lib/transaction.c 2006-01-27 20:05:40.000000000 +0000
@@ -1677,8 +1859,10 @@ rpmMessage(RPMMESS_DEBUG, _("computing %
const char * rootDir = rpmtsRootDir(ts);
xx = chdir("/");
/*@-superuser -noeffect @*/
- if (rootDir != NULL && strcmp(rootDir, "/") && *rootDir == '/')
+ if (rootDir != NULL && strcmp(rootDir, "/") && *rootDir == '/') {
+ rpmdbOpenAllButTemporary(ts->rdb);
xx = chroot(rootDir);
+ }
/*@=superuser =noeffect @*/
(void) rpmtsSetChrootDone(ts, 1);
}
--- ./rpmdb/rpmdb.c.orig 2005-02-16 03:18:19.000000000 +0000
+++ ./rpmdb/rpmdb.c 2006-02-21 20:37:44.000000000 +0000
@@ -811,6 +811,33 @@ int rpmdbOpenAll(rpmdb db)
return rc;
}
+int rpmdbOpenAllButTemporary(rpmdb db)
+{
+ int dbix;
+ int rc = 0;
+
+ if (db == NULL) return -2;
+
+ if (dbiTags != NULL)
+ for (dbix = 0; dbix < dbiTagsMax; dbix++) {
+ if (db->_dbi[dbix] != NULL)
+ continue;
+ /* Filter out temporary databases */
+ switch ((dbiTags[dbix])) {
+ case RPMDBI_AVAILABLE:
+ case RPMDBI_ADDED:
+ case RPMDBI_REMOVED:
+ case RPMDBI_DEPENDS:
+ continue;
+ /*@notreached@*/ /*@switchbreak@*/ break;
+ default:
+ /*@switchbreak@*/ break;
+ }
+ (void) dbiOpen(db, dbiTags[dbix], db->db_flags);
+ }
+ return rc;
+}
+
int rpmdbCloseDBI(rpmdb db, int rpmtag)
{
int dbix;

View File

@ -15,7 +15,7 @@ Index: lib/depends.c
alKey pkgKey; /* addedPackages key */
int xx;
int ec = 0;
@@ -387,6 +388,40 @@ addheader:
@@ -399,6 +400,40 @@ addheader:
}
obsoletes = rpmdsFree(obsoletes);
@ -56,7 +56,7 @@ Index: lib/depends.c
ec = 0;
exit:
@@ -644,6 +679,57 @@ exit:
@@ -656,6 +691,57 @@ exit:
return rc;
}
@ -114,7 +114,7 @@ Index: lib/depends.c
/**
* Check added requires/conflicts against against installed+added packages.
* @param ts transaction set
@@ -1727,6 +1813,7 @@ int rpmtsCheck(rpmts ts)
@@ -1730,6 +1816,7 @@ int rpmtsCheck(rpmts ts)
rpmteDS(p, RPMTAG_CONFLICTNAME),
NULL,
tscolor, 1);
@ -122,7 +122,7 @@ Index: lib/depends.c
if (rc)
goto exit;
@@ -1824,3 +1911,22 @@ exit:
@@ -1827,3 +1914,22 @@ exit:
/*@=branchstate@*/
return rc;
}
@ -208,7 +208,7 @@ Index: lib/poptQV.c
case POPT_DUMP: qva->qva_flags |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST;
break;
@@ -278,6 +279,8 @@ struct poptOption rpmQueryPoptTable[] =
@@ -278,6 +279,8 @@ struct poptOption rpmQueryPoptTable[] =
N_("skip %%readme files"), NULL },
#endif
@ -221,9 +221,9 @@ Index: lib/query.c
===================================================================
--- lib/query.c.orig
+++ lib/query.c
@@ -225,6 +225,10 @@ int showQueryPackage(QVA_t qva, rpmts ts
if ((qva->qva_fflags & RPMFILE_GHOST) && (fflags & RPMFILE_GHOST))
continue;
@@ -258,6 +258,10 @@ int showQueryPackage(QVA_t qva, rpmts ts
te = t + tx;
}
+ /* If querying patches, skip unpatched files. */
+ if ((qva->qva_flags & QUERY_FOR_PATCHES) && (fflags & RPMFILE_UNPATCHED))
@ -232,7 +232,7 @@ Index: lib/query.c
/*@-boundswrite@*/
if (!rpmIsVerbose() && prefix)
te = stpcpy(te, prefix);
@@ -362,6 +366,21 @@ void rpmDisplayQueryTags(FILE * fp)
@@ -377,6 +381,21 @@ void rpmDisplayQueryTags(FILE * fp)
}
}
@ -254,7 +254,7 @@ Index: lib/query.c
static int rpmgiShowMatches(QVA_t qva, rpmts ts)
/*@globals rpmGlobalMacroContext, h_errno, internalState @*/
/*@modifies qva, rpmGlobalMacroContext, h_errno, internalState @*/
@@ -376,6 +395,8 @@ static int rpmgiShowMatches(QVA_t qva, r
@@ -391,6 +410,8 @@ static int rpmgiShowMatches(QVA_t qva, r
h = rpmgiHeader(gi);
if (h == NULL) /* XXX perhaps stricter break instead? */
continue;
@ -263,7 +263,7 @@ Index: lib/query.c
if ((rc = qva->qva_showPackage(qva, ts, h)) != 0)
ec = rc;
if (qva->qva_source == RPMQV_DBOFFSET)
@@ -391,6 +412,8 @@ int rpmcliShowMatches(QVA_t qva, rpmts t
@@ -406,6 +427,8 @@ int rpmcliShowMatches(QVA_t qva, rpmts t
while ((h = rpmdbNextIterator(qva->qva_mi)) != NULL) {
int rc;
@ -272,7 +272,7 @@ Index: lib/query.c
if ((rc = qva->qva_showPackage(qva, ts, h)) != 0)
ec = rc;
if (qva->qva_source == RPMQV_DBOFFSET)
@@ -685,7 +708,17 @@ int rpmcliArgIter(rpmts ts, QVA_t qva, A
@@ -703,7 +726,17 @@ int rpmcliArgIter(rpmts ts, QVA_t qva, A
switch (qva->qva_source) {
case RPMQV_ALL:
@ -367,7 +367,7 @@ Index: lib/rpminstall.c
===================================================================
--- lib/rpminstall.c.orig
+++ lib/rpminstall.c
@@ -692,6 +692,11 @@ maybe_manifest:
@@ -683,6 +683,11 @@ maybe_manifest:
/*@=branchstate@*/
}
ps = rpmpsFree(ps);
@ -379,7 +379,7 @@ Index: lib/rpminstall.c
}
if (eiu->numRPMS && !(ia->installInterfaceFlags & INSTALL_NOORDER)) {
@@ -797,7 +802,7 @@ int rpmErase(rpmts ts, struct rpmInstall
@@ -789,7 +794,7 @@ int rpmErase(rpmts ts, struct rpmInstall
{ int notifyFlags;
notifyFlags = ia->eraseInterfaceFlags | (rpmIsVerbose() ? INSTALL_LABEL : 0 );
xx = rpmtsSetNotifyCallback(ts,
@ -452,7 +452,7 @@ Index: lib/transaction.c
===================================================================
--- lib/transaction.c.orig
+++ lib/transaction.c
@@ -198,6 +198,11 @@ static int handleInstInstalledFiles(cons
@@ -199,6 +199,11 @@ static int handleInstInstalledFiles(cons
int rConflicts;
rConflicts = reportConflicts;
@ -464,7 +464,7 @@ Index: lib/transaction.c
/* Resolve file conflicts to prefer Elf64 (if not forced). */
if (tscolor != 0 && FColor != 0 && FColor != oFColor)
{
@@ -972,6 +977,176 @@ rpmfi rpmtsiFi(const rpmtsi tsi)
@@ -975,6 +980,176 @@ rpmfi rpmtsiFi(const rpmtsi tsi)
/*@=compdef =refcounttrans =usereleased @*/
}
@ -641,7 +641,7 @@ Index: lib/transaction.c
/**
* This is not a generalized function to be called from outside
* librpm. It is called internally by rpmtsRun() to rollback
@@ -2137,6 +2312,8 @@ assert(psm != NULL);
@@ -2154,6 +2329,8 @@ assert(psm != NULL);
}
psm->fi = rpmfiLink(p->fi, NULL);
@ -674,7 +674,7 @@ Index: doc/rpm.8
[\fB--filesbypkg\fR] [\fB-i,--info\fR] [\fB--last\fR] [\fB-l,--list\fR]
[\fB--provides\fR] [\fB--qf,--queryformat \fIQUERYFMT\fB\fR]
[\fB-R,--requires\fR] [\fB--scripts\fR] [\fB-s,--state\fR]
@@ -547,6 +549,10 @@ that will be expanded to paths that are
@@ -547,6 +549,10 @@ that will be expanded to paths that are
the package manifest as additional \fIPACKAGE_FILE\fR
arguments to the query.
.TP
@ -696,7 +696,7 @@ Index: doc/rpm.8
\fB--changelog\fR
Display change information for the package.
.TP
@@ -618,7 +628,8 @@ Orders the package listing by install ti
@@ -613,7 +623,8 @@ Orders the package listing by install ti
packages are at the top.
.TP
\fB-l, --list\fR
@ -710,7 +710,7 @@ Index: rpmpopt.in
===================================================================
--- rpmpopt.in.orig
+++ rpmpopt.in
@@ -76,6 +76,10 @@ rpm alias --supplements --qf \
@@ -84,6 +84,10 @@ rpm alias --supplements --qf \
"[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
--POPTdesc=$"list capabilities this package supplements"
@ -721,7 +721,7 @@ Index: rpmpopt.in
rpm alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\
Version : %-27{VERSION} Vendor: %{VENDOR}\n\
Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\
@@ -373,6 +377,10 @@ rpmq alias --supplements --qf \
@@ -378,6 +382,10 @@ rpmq alias --supplements --qf \
"[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
--POPTdesc=$"list capabilities this package supplements"
@ -732,7 +732,7 @@ Index: rpmpopt.in
rpmq alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\
Version : %-27{VERSION} Vendor: %{VENDOR}\n\
Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\
@@ -488,6 +496,10 @@ rpmquery alias --supplements --qf \
@@ -496,6 +504,10 @@ rpmquery alias --supplements --qf \
"[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
--POPTdesc=$"list capabilities this package supplements"

View File

@ -1,40 +0,0 @@
Check if the payloadformat really is "cpio", fail with an error
message if it is not. Use a different message for the "drpm"
delta-rpm format. rh#140052
Upstream proposes a different approach, patching the "Requires"
list, which the current deltarpm implementation can't do, because
it uses a verbatim copy of the original header. Sigh.
I still believe that rpm should check for known formats, i.e.
now that rpm understands ustar it should insist that the format
is either "cpio" or "ustar".
--- ./lib/rpminstall.c.orig 2005-12-14 21:01:09.000000000 +0000
+++ ./lib/rpminstall.c 2005-12-15 14:47:35.000000000 +0000
@@ -470,6 +470,7 @@ if (fileURL[0] == '=') {
eiu->fnp++, eiu->prevx++)
{
const char * fileName;
+ const char * payloadformat;
rpmMessage(RPMMESS_DEBUG, "============== %s\n", *eiu->fnp);
(void) urlPath(*eiu->fnp, &fileName);
@@ -510,6 +511,17 @@ if (fileURL[0] == '=') {
/*@switchbreak@*/ break;
}
+ payloadformat = 0;
+ if (!headerGetEntry(eiu->h, RPMTAG_PAYLOADFORMAT, NULL, (void **)&payloadformat, NULL))
+ payloadformat = 0;
+ if (payloadformat && strcmp(payloadformat, "cpio") != 0) {
+ if (!strcmp(payloadformat, "drpm"))
+ rpmMessage(RPMMESS_ERROR, _("%s is a deltarpm, create a real rpm from it first!\n"), *eiu->fnp);
+ else
+ rpmMessage(RPMMESS_ERROR, _("%s contains no cpio payload\n"), *eiu->fnp);
+ eiu->numFailed++; *eiu->fnp = NULL;
+ continue;
+ }
eiu->isSource = headerIsEntry(eiu->h, RPMTAG_SOURCEPACKAGE);
if (eiu->isSource) {

View File

@ -2,20 +2,7 @@ Index: scripts/perl.prov
===================================================================
--- scripts/perl.prov.orig
+++ scripts/perl.prov
@@ -127,7 +127,11 @@ sub process_file {
if (m/^\s*package\s+([_:a-zA-Z0-9]+)\s*;/) {
$package=$1;
undef $version;
- $require{$package}=undef;
+ if ($package eq 'main') {
+ undef $package;
+ } else {
+ $require{$package}=undef;
+ }
}
# after we found the package name take the first assignment to
@@ -158,7 +162,7 @@ sub process_file {
@@ -167,7 +167,7 @@ sub process_file {
$version= $1;
}
@ -24,18 +11,3 @@ Index: scripts/perl.prov
}
# Allow someone to have a variable that defines virtual packages
Index: scripts/perldeps.pl
===================================================================
--- scripts/perldeps.pl.orig
+++ scripts/perldeps.pl
@@ -150,6 +150,10 @@ sub add_provide {
return if(exists($self->{'provides_check'}->{$params{'-provide'}}));
#
+ # Skip some common false positives
+ return if $params{'-provide'} eq 'main';
+
+ #
# Created dependency object
my $dep = new Dependency "provide", $params{-provide};
$dep->filename($params{-filename});

View File

@ -1,18 +0,0 @@
Also decode early for PGP sigtags, which are actually header+payload
RSA signatures. Without this patch, verification of a package
that has just a header+payload RSA signature but no header-only RSA
signature fails.
Already in rpm-4.4.7.
--- ./lib/rpmchecksig.c.orig 2005-12-14 20:54:39.000000000 +0000
+++ ./lib/rpmchecksig.c 2006-03-21 18:00:22.000000000 +0000
@@ -801,7 +805,7 @@ int rpmVerifySignatures(QVA_t qva, rpmts
sigp = rpmtsSignature(ts);
/* XXX RSA needs the hash_algo, so decode early. */
- if (sigtag == RPMSIGTAG_RSA) {
+ if (sigtag == RPMSIGTAG_RSA || sigtag == RPMSIGTAG_PGP) {
xx = headerGetEntry(sigh, sigtag, &sigtype, &sig, &siglen);
xx = pgpPrtPkts(sig, siglen, dig, 0);
sig = headerFreeData(sig, sigtype);

View File

@ -1,59 +0,0 @@
--- po/de.po
+++ po/de.po
@@ -1568,7 +1568,7 @@
#: lib/fsm.c:1354
#, c-format
msgid "%s directory created with perms %04o, context %s.\n"
-msgstr "Verzeichnis %s mit Berechtigungen %04o erstellt, Kontext.\n"
+msgstr "Verzeichnis %s mit Berechtigungen %04o erstellt, Kontext %s.\n"
#: lib/fsm.c:1657
#, c-format
@@ -2038,12 +2038,12 @@
#: lib/poptI.c:277
#, c-format
msgid "do not execute %%preun scriptlet (if any)"
-msgstr "%preun-Skriptlet nicht ausführen (wenn vorhanden)"
+msgstr "%%preun-Skriptlet nicht ausführen (wenn vorhanden)"
#: lib/poptI.c:280
#, c-format
msgid "do not execute %%postun scriptlet (if any)"
-msgstr "%postun-Skriptlet nicht ausführen (wenn vorhanden)"
+msgstr "%%postun-Skriptlet nicht ausführen (wenn vorhanden)"
#: lib/poptI.c:290
msgid "do not execute any scriptlet(s) triggered by this package"
@@ -3302,7 +3302,7 @@
#: lib/signature.c:612
#, c-format
msgid "gpg exec failed (%d)\n"
-msgstr "GPG fehlgeschlagen\n"
+msgstr "GPG fehlgeschlagen (%d)\n"
#. GPG failed to write signature
#. Just in case
@@ -3592,12 +3592,12 @@
#: rpmdb/db3.c:189
#, c-format
msgid "closed db environment %s/%s\n"
-msgstr "Closed DB-Umgebung %s/%s %s\n"
+msgstr "Closed DB-Umgebung %s/%s\n"
#: rpmdb/db3.c:207
#, c-format
msgid "removed db environment %s/%s\n"
-msgstr "Removed DB-Umgebung %s/%s %s\n"
+msgstr "Removed DB-Umgebung %s/%s\n"
#: rpmdb/db3.c:298
#, c-format
@@ -3812,7 +3812,7 @@
#: rpmdb/rpmdb.c:2696
#, c-format
msgid "error(%d) setting header #%d record for %s removal\n"
-msgstr "Fehler(%d) beim Markieren des Header-Eintrags #%d zur Entfernung\n"
+msgstr "Fehler(%d) beim Markieren des Header-Eintrags #%d zur Entfernung von %s\n"
#: rpmdb/rpmdb.c:2811
#, c-format

View File

@ -1,7 +1,8 @@
diff -u popt/Makefile.am popt/Makefile.am
--- popt/Makefile.am
Index: popt/Makefile.am
===================================================================
--- popt/Makefile.am.orig
+++ popt/Makefile.am
@@ -18,13 +18,13 @@
@@ -17,13 +17,13 @@ noinst_HEADERS = findme.h poptint.h syst
noinst_PROGRAMS = test1 test2 test3
test1_SOURCES = test1.c
test1_LDFLAGS =
@ -18,7 +19,7 @@ diff -u popt/Makefile.am popt/Makefile.am
noinst_SCRIPTS = testit.sh
@@ -35,8 +35,8 @@
@@ -34,8 +34,8 @@ TESTS = testit.sh
include_HEADERS = popt.h
@ -28,4 +29,4 @@ diff -u popt/Makefile.am popt/Makefile.am
+popt_LTLIBRARIES = libpopt.la
libpopt_la_SOURCES = popt.c findme.c poptparse.c poptconfig.c popthelp.c
libpopt_la_LDFLAGS = @INTLLIBS@ -version-info 8:0:7
libpopt_la_LDFLAGS = @INTLLIBS@

View File

@ -1,21 +0,0 @@
Backported fix. Seems to do no harm.
--- ./lib/depends.c.orig 2005-12-14 19:51:34.000000000 +0000
+++ ./lib/depends.c 2006-01-27 21:05:13.000000000 +0000
@@ -1294,14 +1403,12 @@ int rpmtsOrder(rpmts ts)
switch (rpmteType(p)) {
case TR_REMOVED:
/* Skip if not %preun/%postun requires or legacy prereq. */
- if (isInstallPreReq(Flags)
- || !( isErasePreReq(Flags) || isLegacyPreReq(Flags) ) )
+ if (!( isErasePreReq(Flags) || isLegacyPreReq(Flags) ) )
/*@innercontinue@*/ continue;
/*@switchbreak@*/ break;
case TR_ADDED:
/* Skip if not %pre/%post requires or legacy prereq. */
- if (isErasePreReq(Flags)
- || !( isInstallPreReq(Flags) || isLegacyPreReq(Flags) ) )
+ if (!( isInstallPreReq(Flags) || isLegacyPreReq(Flags) ) )
/*@innercontinue@*/ continue;
/*@switchbreak@*/ break;
}

View File

@ -1,14 +0,0 @@
Revert rpm-4.4.2 probFilter change.
--- ./lib/poptI.c.orig 2005-12-15 14:34:45.000000000 +0000
+++ ./lib/poptI.c 2005-12-15 14:35:16.000000000 +0000
@@ -16,8 +16,7 @@ extern time_t get_date(const char * p, v
/*@unchecked@*/
struct rpmInstallArguments_s rpmIArgs = {
0, /* transFlags */
- /* probFilter */
- (RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES),
+ 0, /* probFilter */
0, /* installInterfaceFlags */
0, /* eraseInterfaceFlags */
0, /* qva_flags */

View File

@ -1,13 +0,0 @@
Index: python/rpmts-py.c
===================================================================
--- python/rpmts-py.c.orig
+++ python/rpmts-py.c
@@ -1367,7 +1367,7 @@ fprintf(stderr, "*** rpmts_Match(%p) ts
if (Key) {
/*@-branchstate@*/
- if (PyString_Check(Key)) {
+ if (PyString_Check(Key) || PyUnicode_Check(Key)) {
key = PyString_AsString(Key);
len = PyString_Size(Key);
} else if (PyInt_Check(Key)) {

View File

@ -1,43 +0,0 @@
fix a buffer overflow in the query function [#218983]
rh#212833
--- lib/query.c.orig 2006-11-24 13:24:30.000000000 +0000
+++ lib/query.c 2006-11-24 13:43:47.000000000 +0000
@@ -133,8 +133,10 @@ int showQueryPackage(QVA_t qva, rpmts ts
int rc = 0; /* XXX FIXME: need real return code */
int nonewline = 0;
int i;
+ size_t tsize;
- te = t = xmalloc(BUFSIZ);
+ tsize = BUFSIZ * 2;
+ te = t = xmalloc(tsize);
/*@-boundswrite@*/
*te = '\0';
/*@=boundswrite@*/
@@ -147,8 +149,9 @@ int showQueryPackage(QVA_t qva, rpmts ts
size_t tb = (te - t);
size_t sb = strlen(str);
- if (sb >= (BUFSIZ - tb)) {
- t = xrealloc(t, BUFSIZ+sb);
+ if (sb > 0) {
+ tsize += sb;
+ t = xrealloc(t, tsize);
te = t + tb;
}
/*@-boundswrite@*/
@@ -261,6 +264,13 @@ int showQueryPackage(QVA_t qva, rpmts ts
}
/*@=boundswrite@*/
+ if (strlen(fn) + BUFSIZ > tsize) {
+ size_t tb = (te - t);
+ tsize = strlen(fn) + BUFSIZ * 2;
+ t = xrealloc(t, tsize);
+ te = t + tb;
+ }
+
if (qva->qva_flags & QUERY_FOR_DUMPFILES) {
sprintf(te, "%s %d %d %s 0%o ", fn, (int)fsize, fmtime, fmd5, fmode);
te += strlen(te);

View File

@ -1,22 +0,0 @@
Make rebuilddb work with the --root option. [#65993]
--- ./rpmdb/rpmdb.c.orig 2005-02-16 03:18:19.000000000 +0000
+++ ./rpmdb/rpmdb.c 2006-02-21 20:37:44.000000000 +0000
@@ -3771,7 +3887,7 @@ int rpmdbRebuild(const char * prefix, rp
}
dbpath = rootdbpath = rpmGetPath(prefix, tfn, NULL);
if (!(prefix[0] == '/' && prefix[1] == '\0'))
- dbpath += strlen(prefix);
+ dbpath += strlen(prefix) - 1;
tfn = _free(tfn);
/*@-nullpass@*/
@@ -3794,7 +3910,7 @@ int rpmdbRebuild(const char * prefix, rp
}
newdbpath = newrootdbpath = rpmGetPath(prefix, tfn, NULL);
if (!(prefix[0] == '/' && prefix[1] == '\0'))
- newdbpath += strlen(prefix);
+ newdbpath += strlen(prefix) - 1;
tfn = _free(tfn);
rpmMessage(RPMMESS_DEBUG, _("rebuilding database %s into %s\n"),

View File

@ -1,9 +1,11 @@
Also test architecture in "refresh" test when not colored. This allows
updates to different architecture possible again.
--- ./lib/psm.c.orig 2005-12-14 18:59:10.000000000 +0000
+++ ./lib/psm.c 2006-02-24 11:46:54.000000000 +0000
@@ -1425,15 +1441,16 @@ rpmRC rpmpsmStage(rpmpsm psm, pkgStage s
Index: lib/psm.c
===================================================================
--- lib/psm.c.orig
+++ lib/psm.c
@@ -1447,15 +1447,16 @@ rpmRC rpmpsmStage(rpmpsm psm, pkgStage s
assert(psm->mi == NULL);
psm->mi = rpmtsInitIterator(ts, RPMTAG_NAME, rpmteN(psm->te), 0);

View File

@ -1,10 +1,14 @@
--- macros.in
Index: macros.in
===================================================================
--- macros.in.orig
+++ macros.in
@@ -1242,6 +1242,7 @@
@@ -1205,7 +1205,8 @@ done \
# %{perl_sitearch}/Image
# %dir %{perl_sitearch}/auto/Image
#
%requires_eq() %(LC_ALL="C" echo '%*' | xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
+%requires_ge() %(LC_ALL="C" echo '%*' | xargs -r rpm -q --qf 'Requires: %%{name} >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
-%requires_eq() %(LC_ALL="C" echo '%*' | xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
+%requires_eq() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
+%requires_ge() %(echo '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} >= %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
%perl_sitearch %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch)
%perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)

3
rpm-4.4.2.3.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1573a7d34c6a95abe3ad3d2ce310c7d5f8873e45955875f2e03647c756012fcd
size 8525878

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:abc1b6a909e904ee220e32cd0c534fe19b8ea7cb2d3e8cfe395e221773e62c8c
size 8955447

View File

@ -1,11 +0,0 @@
--- tools/Makefile.am
+++ tools/Makefile.am
@@ -40,7 +40,7 @@ convertdb1_LDADD = \
@WITH_LIBELF_LIB@
debugedit_SOURCES = debugedit.c hashtab.c
-debugedit_LDADD = @LDFLAGS_STATIC@ \
+debugedit_LDADD = \
@WITH_LIBELF_LIB@ \
@WITH_POPT_LIB@

View File

@ -1,20 +0,0 @@
--- elfutils-0.97/libelf/common.h.orig 2007-09-25 11:34:29.000000000 +0200
+++ elfutils-0.97/libelf/common.h 2007-09-25 11:36:54.000000000 +0200
@@ -78,7 +78,7 @@
/* Acquire lock for the descriptor and all children. */
-static void
+static inline void
libelf_acquire_all (Elf *elf)
{
rwlock_wrlock (elf->lock);
@@ -97,7 +97,7 @@
}
/* Release own lock and those of the children. */
-static void
+static inline void
libelf_release_all (Elf *elf)
{
if (elf->kind == ELF_K_AR)

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Sep 11 15:33:52 CEST 2008 - mls@suse.de
- update to 4.4.2.3 to get rid of >50 patches
-------------------------------------------------------------------
Sat Aug 30 21:23:38 CEST 2008 - cthiel@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package rpm-python (Version 4.4.2)
# spec file for package rpm-python (Version 4.4.2.3)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -23,8 +23,8 @@ BuildRequires: libbz2-devel libselinux-devel lzma-alpha-devel ncurses-devel pyt
License: GPL v2 or later
Group: System/Packages
Summary: Python Bindings for Manipulating RPM Packages
Version: 4.4.2
Release: 278
Version: 4.4.2.3
Release: 2
Requires: rpm = %{version}
%py_requires
Source99: rpm.spec
@ -51,7 +51,7 @@ Authors:
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/lib
# only installing in python/ does not work because rpm links agains
# only installing in python/ does not work because rpm links against
# installed libs at install time
make DESTDIR="$RPM_BUILD_ROOT" install
find "%{buildroot}" -not -type d -and -not -path %{buildroot}%{_libdir}/python%{py_ver}/site-packages/rpm/\* -print0 | xargs -0 rm
@ -69,6 +69,8 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/python*
%changelog
* Thu Sep 11 2008 mls@suse.de
- update to 4.4.2.3 to get rid of >50 patches
* Sat Aug 30 2008 cthiel@suse.de
- add libselinux-devel to BuildRequires
* Thu Aug 07 2008 dmueller@suse.de

View File

@ -1,38 +1,94 @@
--- build/parseChangelog.c
Index: build/parseChangelog.c
===================================================================
--- build/parseChangelog.c.orig
+++ build/parseChangelog.c
@@ -111,10 +111,11 @@ static int dateToTimet(const char * datestr, /*@out@*/ time_t * secs)
static int addChangelog(Header h, StringBuf sb)
/*@modifies h @*/
{
- char *s;
+ char *s, *p;
int i;
time_t time;
time_t lastTime = 0;
+ time_t cutOffTime = 1151704800; /* date -d "2006/07/01" +%s #SLES10-GA */
char *date, *name, *text, *next;
s = getStringBuf(sb);
@@ -167,6 +168,12 @@ static int addChangelog(Header h, StringBuf sb)
@@ -167,6 +167,11 @@ static int addChangelog(Header h, String
return RPMERR_BADSPEC;
}
+ /* workaround old suse oddity */
+ if (*s == '-') {
+ ++s;
+ SKIPSPACE(s);
+ if (*s == '-' && s[1] == ' ') {
+ s += 2;
+ }
+
/* name */
name = s;
while (*s != '\0') s++;
@@ -198,7 +212,8 @@ static int addChangelog(Header h, StringBuf sb)
*s-- = '\0';
}
- addChangelogEntry(h, time, name, text);
+ if (time >= cutOffTime)
+ addChangelogEntry(h, time, name, text);
s = next;
}
Index: build/pack.c
===================================================================
--- build/pack.c.orig
+++ build/pack.c
@@ -751,6 +751,65 @@ static int_32 copyTags[] = {
0
};
+static void
+trimChangelog(Header h)
+{
+ static int oneshot;
+ static int cuttime, minnum, maxnum;
+ int * times;
+ char ** names = 0, ** texts = 0;
+ int i, keep, count = 0;
+
+ if (!oneshot) {
+ char *binarychangelogtrim = rpmExpand("%{?_binarychangelogtrim}", NULL);
+ oneshot = 1;
+ if (binarychangelogtrim && *binarychangelogtrim) {
+ maxnum = atoi(binarychangelogtrim);
+ binarychangelogtrim = strchr(binarychangelogtrim, ',');
+ if (binarychangelogtrim)
+ binarychangelogtrim++;
+ }
+ if (binarychangelogtrim && *binarychangelogtrim) {
+ cuttime = atoi(binarychangelogtrim);
+ binarychangelogtrim = strchr(binarychangelogtrim, ',');
+ if (binarychangelogtrim)
+ binarychangelogtrim++;
+ }
+ if (binarychangelogtrim && *binarychangelogtrim) {
+ minnum = atoi(binarychangelogtrim);
+ binarychangelogtrim = strchr(binarychangelogtrim, ',');
+ }
+ }
+ if (!cuttime && !minnum && !maxnum) {
+ return;
+ }
+ if (!headerGetEntry(h, RPMTAG_CHANGELOGTIME, NULL, (void **) &times, &count))
+ return;
+ if ((!cuttime || count <= minnum) && (!maxnum || count <= maxnum)) {
+ return;
+ }
+ keep = count;
+ if (maxnum && keep > maxnum)
+ keep = maxnum;
+ if (cuttime) {
+ for (i = 0; i < keep; i++) {
+ if (i >= minnum && times[i] < cuttime)
+ break;
+ }
+ keep = i;
+ }
+ if (keep >= count)
+ return;
+ headerGetEntry(h, RPMTAG_CHANGELOGNAME, NULL, (void **) &names, &count);
+ headerGetEntry(h, RPMTAG_CHANGELOGTEXT, NULL, (void **) &texts, &count);
+ headerModifyEntry(h, RPMTAG_CHANGELOGTIME, RPM_INT32_TYPE, times, keep);
+ headerModifyEntry(h, RPMTAG_CHANGELOGNAME, RPM_STRING_ARRAY_TYPE, names, keep);
+ headerModifyEntry(h, RPMTAG_CHANGELOGTEXT, RPM_STRING_ARRAY_TYPE, texts, keep);
+ free(names);
+ free(texts);
+}
+
+
/*@-boundswrite@*/
int packageBinaries(Spec spec)
{
@@ -760,6 +819,7 @@ int packageBinaries(Spec spec)
const char *errorString;
Package pkg;
+ trimChangelog(spec->packages->header);
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
const char *fn;

View File

@ -231,6 +231,7 @@
SV_E='^### END INIT INFO' \
SV_KW=Default-Enabled \
SV_VALUE=`sed -n -e "/$SV_B/,/$SV_E/{/^# [^[:space:]]*$SV_KW:[[:space:]]*\\([^[:space:]]*\\).*/s//\\1/p;}" < etc/init.d/$SCRIPTNAME` \
test "$FORCE_YES" = "1" && SV_VALUE="yes" \
test -n "$SV_VALUE" || SV_VALUE=%{-y:"yes"}%{!-y:"no"} \
INSSRV_ARRAY="$INSSRV_ARRAY $SCRIPTNAME $SV_VALUE" \
done \

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Fri Sep 12 18:16:33 CEST 2008 - mls@suse.de
- fix changelog cutter
- fix find-requires script
- add mimetype.diff patch from Scott Reeves
-------------------------------------------------------------------
Thu Sep 11 15:33:52 CEST 2008 - mls@suse.de
- update to 4.4.2.3 to get rid of >50 patches
- make changelog cutter configurable
- update rpm-suse_macros
-------------------------------------------------------------------
Fri Sep 5 16:56:23 CEST 2008 - dmueller@suse.de

177
rpm.spec
View File

@ -1,5 +1,5 @@
#
# spec file for package rpm (Version 4.4.2)
# spec file for package rpm (Version 4.4.2.3)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -26,8 +26,8 @@ Provides: rpminst
PreReq: %insserv_prereq %fillup_prereq permissions
AutoReqProv: on
Summary: The RPM Package Manager
Version: 4.4.2
Release: 217
Version: 4.4.2.3
Release: 2
Source: rpm-%{version}.tar.bz2
Source1: RPM-HOWTO.tar.bz2
Source2: RPM-Tips.html.tar.bz2
@ -42,106 +42,57 @@ Patch1: elfutils-0.97.diff
Patch2: beecrypt-4.1.2.diff
Patch3: db.diff
# quilt patches start here
Patch10: aloffbyone.diff
Patch11: badforsyntax.diff
Patch12: buildsubdir.diff
Patch13: compress.diff
Patch14: debugedit.diff
Patch15: docdir_fmt.diff
Patch16: emptyfilelist.diff
Patch17: eraseignoresize.diff
Patch18: erasebadreturn.diff
Patch19: eraseordered.diff
Patch20: exitstatus.diff
Patch21: filenonull.diff
Patch22: filequery.diff
Patch23: findfplistexclude.diff
Patch24: forkfailed.diff
Patch25: getcwdresult.diff
Patch26: ghost.diff
Patch27: globoffbyone.diff
Patch28: initdbret.diff
Patch29: localetag.diff
Patch30: luanoreadline.diff
Patch31: missingok.diff
Patch32: nameversioncompare.diff
Patch33: nostdoutclose.diff
Patch34: obeynodbsync.diff
Patch35: payloadformat.diff
Patch36: pgpdecodeearly.diff
Patch37: prereqorder.diff
Patch38: probfilter.diff
Patch39: rebuilddbroot.diff
Patch40: sbitcheck.diff
Patch41: setpermsugids.diff
Patch42: signature.diff
Patch43: signwriteerror.diff
Patch44: spectest.diff
Patch45: sqcondmutex.diff
Patch46: srcdefattr.diff
Patch47: totalsizenoexclude.diff
Patch48: translockroot.diff
Patch49: vercmp.diff
Patch50: verifylstatfail.diff
Patch51: chownwarn.diff
Patch52: dbfsync.diff
Patch53: dbrointerruptable.diff
Patch54: diskspace.diff
Patch55: extcond.diff
Patch56: globlstat.diff
Patch57: nodefattr.diff
Patch58: nolua.diff
Patch59: luaroot.diff
Patch60: noneon.diff
Patch61: noprovides.diff
Patch62: openallbuttemp.diff
Patch63: refreshtestarch.diff
Patch64: rpmrctests.diff
Patch65: suspendlock.diff
Patch66: tagsbackport.diff
Patch67: waitlock.diff
Patch68: dbprivate.diff
Patch69: legacyprereq.diff
Patch70: weakdeps.diff
Patch71: autodeps.diff
Patch72: brp.diff
Patch73: brpcombress.diff
Patch74: checkfilesnoinfodir.diff
Patch75: finddebuginfo.diff
Patch76: findksyms.diff
Patch77: findlang.diff
Patch78: macrosin.diff
Patch79: modalias.diff
Patch80: platformin.diff
Patch81: rpmpopt.diff
Patch82: rpmrc.diff
Patch83: patchrpms.diff
Patch84: taggedfileindex.diff
Patch85: rpmqpack.diff
Patch86: convertdb1static.diff
Patch87: build.diff
Patch88: modalias-kernel_module.diff
Patch89: querybuffer.diff
Patch90: testmode.diff
Patch91: po-file-fixes.diff
Patch92: files.diff
Patch93: popt-to-lib.diff
Patch94: debugedit-comp-dir.diff
Patch95: pythonunicode.diff
Patch96: tarwildcards.diff
Patch97: perlprov.diff
Patch98: showtransscripts.diff
Patch99: rpm-debugedit-shared.diff
Patch100: rpm-gcc43.diff
Patch101: lzma.diff
Patch102: rpm-shorten-changelog.diff
Patch103: noautoreloc.diff
Patch104: lzma-payload.diff
Patch105: lzma-payload-2.diff
Patch106: debugsource-package.diff
Patch107: whatrequires-doc.diff
Patch108: remove-brp-strips.diff
Patch109: requires-ge-macro.diff
Patch10: debugedit.diff
Patch11: findfplistexclude.diff
Patch12: localetag.diff
Patch13: missingok.diff
Patch14: nameversioncompare.diff
Patch15: chownwarn.diff
Patch16: dbfsync.diff
Patch17: dbrointerruptable.diff
Patch18: diskspace.diff
Patch19: extcond.diff
Patch20: globlstat.diff
Patch21: nodefattr.diff
Patch22: luaroot.diff
Patch23: refreshtestarch.diff
Patch24: rpmrctests.diff
Patch25: suspendlock.diff
Patch26: tagsbackport.diff
Patch27: waitlock.diff
Patch28: dbprivate.diff
Patch29: legacyprereq.diff
Patch30: weakdeps.diff
Patch31: autodeps.diff
Patch32: brp.diff
Patch33: brpcombress.diff
Patch34: checkfilesnoinfodir.diff
Patch35: finddebuginfo.diff
Patch36: findksyms.diff
Patch37: findlang.diff
Patch38: macrosin.diff
Patch39: modalias.diff
Patch40: platformin.diff
Patch41: rpmpopt.diff
Patch42: rpmrc.diff
Patch43: patchrpms.diff
Patch44: taggedfileindex.diff
Patch45: rpmqpack.diff
Patch46: convertdb1static.diff
Patch47: build.diff
Patch48: modalias-kernel_module.diff
Patch49: files.diff
Patch50: popt-to-lib.diff
Patch51: debugedit-comp-dir.diff
Patch52: perlprov.diff
Patch53: rpm-shorten-changelog.diff
Patch54: lzma-payload.diff
Patch55: lzma-payload-2.diff
Patch56: debugsource-package.diff
Patch57: whatrequires-doc.diff
Patch58: remove-brp-strips.diff
Patch59: requires-ge-macro.diff
Patch60: mimetype.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
# avoid bootstrapping problem
@ -210,12 +161,7 @@ rm -f rpmdb/db.h
%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39
%patch -P 40 -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49
%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59
%patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69
%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
%patch -P 80 -P 81 -P 82 -P 83 -P 84 -P 85 -P 86 -P 87 -P 88 -P 89
%patch -P 90 -P 91 -P 92 -P 93 -P 94 -P 95 -P 96 -P 97 -P 98 -P 99
%patch -P 100 -P 101 -P 102 -P 103 -P -P 106 -P 107 -P 108 -P 109
%patch -P 104 -P 105 -b .lzma
%patch -P 60
chmod 755 scripts/find-supplements{,.ksyms}
chmod 755 scripts/find-provides.ksyms scripts/find-requires.ksyms
tar -xjvf %{SOURCE1}
@ -224,7 +170,6 @@ if [ -s /etc/rpm/suse_macros ]; then
cp -a /etc/rpm/suse_macros %{SOURCE4}
fi
cp -a %{SOURCE4} suse_macros
rename no nb po/no.* popt/po/no.*
%build
%{?suse_update_config:%{suse_update_config -f popt}}
@ -361,7 +306,7 @@ Summary: A C library for parsing command line parameters
License: LGPL v2.1 or later
Group: System/Libraries
Version: 1.7
Release: 445
Release: 450
#
%description -n popt
@ -384,7 +329,7 @@ Summary: C Library for Parsing Command Line Parameters
License: LGPL v2.1 or later
Group: System/Libraries
Version: 1.7
Release: 445
Release: 450
Requires: popt = 1.7
Requires: glibc-devel
@ -419,6 +364,14 @@ Authors:
%doc %{_mandir}/man3/popt.3*
%changelog
* Fri Sep 12 2008 mls@suse.de
- fix changelog cutter
- fix find-requires script
- add mimetype.diff patch from Scott Reeves
* Thu Sep 11 2008 mls@suse.de
- update to 4.4.2.3 to get rid of >50 patches
- make changelog cutter configurable
- update rpm-suse_macros
* Fri Sep 05 2008 dmueller@suse.de
- strip .comment and .GCC.command.line sections from ELF binaries
* Mon Aug 25 2008 prusnak@suse.cz

View File

@ -4,9 +4,9 @@
Index: rpmpopt.in
===================================================================
--- rpmpopt.in.orig 2007-05-27 16:41:29.000000000 +0200
+++ rpmpopt.in 2007-05-27 16:42:42.000000000 +0200
@@ -86,7 +86,8 @@ Signature : %|DSAHEADER?{%{DSAHEADER:p
--- rpmpopt.in.orig
+++ rpmpopt.in
@@ -94,7 +94,8 @@ Signature : %|DSAHEADER?{%{DSAHEADER:p
%|PACKAGER?{Packager : %{PACKAGER}\n}|\
%|URL?{URL : %{URL}\n}|\
Summary : %{SUMMARY}\n\
@ -16,7 +16,7 @@ Index: rpmpopt.in
--POPTdesc=$"list descriptive information from package(s)"
rpm alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \
@@ -129,12 +130,6 @@ rpm alias --fileprovide --qf '[%{FILENAM
@@ -140,12 +141,6 @@ rpm alias --fileprovide --qf '[%{FILENAM
rpm alias --filerequire --qf '[%{FILENAMES}\t%{FILEREQUIRE}\n]' \
--POPTdesc=$"list file names with requires"
@ -29,7 +29,7 @@ Index: rpmpopt.in
# colon separated i18n domains to use as PO catalogue lookaside for
* retrieving header group/description/summary.
#
@@ -201,22 +196,22 @@ rpm alias --timecheck --define '_timeche
@@ -212,22 +207,22 @@ rpm alias --timecheck --define '_timeche
#rpm exec --target rpmb --target
#rpm exec --short-circuit rpmb --short-circuit
@ -68,7 +68,7 @@ Index: rpmpopt.in
#rpm exec -i rpmi -i
#rpm exec --install rpmi --install
@@ -382,7 +377,8 @@ Signature : %|DSAHEADER?{%{DSAHEADER:p
@@ -393,7 +388,8 @@ Signature : %|DSAHEADER?{%{DSAHEADER:p
%|PACKAGER?{Packager : %{PACKAGER}\n}|\
%|URL?{URL : %{URL}\n}|\
Summary : %{SUMMARY}\n\
@ -78,7 +78,7 @@ Index: rpmpopt.in
--POPTdesc=$"list descriptive information from package(s)"
rpmq alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \
@@ -495,7 +491,8 @@ Size : %-27{SIZE}%|LICENSE?{
@@ -509,7 +505,8 @@ Size : %-27{SIZE}%|LICENSE?{
%|PACKAGER?{Packager : %{PACKAGER}\n}|\
%|URL?{URL : %{URL}\n}|\
Summary : %{SUMMARY}\n\

View File

@ -1,10 +1,12 @@
Provide rpmqpack, a fast way to list all installed packages are
check if some package is installed. This is a hack.
--- Makefile.am
Index: Makefile.am
===================================================================
--- Makefile.am.orig
+++ Makefile.am
@@ -48,7 +48,7 @@
bin_SCRIPTS = gendiff
@@ -41,7 +41,7 @@ rpmbin_PROGRAMS = rpm
bin_PROGRAMS = rpm2cpio
pkglibdir = @RPMCONFIGDIR@
-pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq
@ -12,7 +14,7 @@ check if some package is installed. This is a hack.
pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros
pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \
config.guess config.sub config.site
@@ -98,6 +98,12 @@
@@ -93,6 +93,12 @@ rpm2cpio_SOURCES = $(top_srcdir)/rpm2cpi
rpm2cpio_LDFLAGS = $(myLDFLAGS)
rpm2cpio_LDADD = $(myLDADD) @LIBMISC@
@ -25,7 +27,7 @@ check if some package is installed. This is a hack.
$(PROGRAMS): $(myLDADD) @WITH_APIDOCS_TARGET@
.PHONY: splint
@@ -147,6 +153,8 @@
@@ -138,6 +144,8 @@ install-data-local:
@LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify
rm -f $(DESTDIR)$(bindir)/rpmsign
@LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign
@ -34,7 +36,9 @@ check if some package is installed. This is a hack.
rm -f $(DESTDIR)$(bindir)/rpmdb ; \
@LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \
for bf in e i u ; do \
--- doc/Makefile.am
Index: doc/Makefile.am
===================================================================
--- doc/Makefile.am.orig
+++ doc/Makefile.am
@@ -2,6 +2,6 @@
@ -44,7 +48,9 @@ check if some package is installed. This is a hack.
+man_MANS = gendiff.1 rpm.8 rpmbuild.8 rpmcache.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8 rpmqpack.8
EXTRA_DIST = $(man_MANS)
--- doc/rpmqpack.8
Index: doc/rpmqpack.8
===================================================================
--- /dev/null
+++ doc/rpmqpack.8
@@ -0,0 +1,25 @@
+.TH RPMQPACK 8 "Mar 2002"
@ -72,7 +78,9 @@ check if some package is installed. This is a hack.
+
+.SH AUTHOR
+Michael Schroeder <mls@suse.de>
--- rpmqpack.c
Index: rpmqpack.c
===================================================================
--- /dev/null
+++ rpmqpack.c
@@ -0,0 +1,59 @@
+#include <sys/types.h>

View File

@ -4,94 +4,68 @@ Index: rpmrc.in
===================================================================
--- rpmrc.in.orig
+++ rpmrc.in
@@ -15,41 +15,42 @@
@@ -15,16 +15,16 @@
# "fat" binary with both archs, for Darwin
optflags: fat -O2 -g -arch i386 -arch ppc
-optflags: i386 -O2 -g -march=i386 -mcpu=i686
-optflags: i486 -O2 -g -march=i486
-optflags: i586 -O2 -g -march=i586
-optflags: i686 -O2 -g -march=i686
-optflags: i386 -O2 -g -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables
-optflags: i486 -O2 -g -m32 -march=i486 -fasynchronous-unwind-tables
-optflags: i586 -O2 -g -m32 -march=i586 -fasynchronous-unwind-tables
-optflags: i686 -O2 -g -m32 -march=i686 -mtune=generic -fasynchronous-unwind-tables
-optflags: pentium3 -O2 -g -m32 -march=pentium3 -mtune=generic -fasynchronous-unwind-tables
-optflags: pentium4 -O2 -g -m32 -march=pentium4 -mtune=generic -fasynchronous-unwind-tables
-optflags: athlon -O2 -g -m32 -march=athlon -fasynchronous-unwind-tables
+optflags: i386 -O2 -g -m32 -march=i486 -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: i486 -O2 -g -m32 -march=i486
+optflags: i486 -O2 -g -m32 -march=i486 -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: i586 -O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: i686 -O2 -g -m32 -march=i686 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2
optflags: pentium3 -O2 -g -march=pentium3
optflags: pentium4 -O2 -g -march=pentium4
optflags: athlon -O2 -g -march=athlon
-optflags: ia64 -O2 -g
-optflags: x86_64 -O2 -g
+optflags: ia64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: x86_64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2
optflags: amd64 -O2 -g
optflags: ia32e -O2 -g
+optflags: pentium3 -O2 -g -m32 -march=pentium3
+optflags: pentium4 -O2 -g -m32 -march=pentium4
+optflags: athlon -O2 -g -m32 -march=athlon
optflags: geode -Os -g -m32 -march=geode
-optflags: ia64 -O2 -g -m64 -mtune=generic
-optflags: x86_64 -O2 -g -m64 -mtune=generic
+optflags: ia64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: x86_64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2
optflags: amd64 -O2 -g -mtune=generic
optflags: ia32e -O2 -g -m64 -mtune=generic
optflags: alpha -O2 -g -mieee
-optflags: alphaev5 -O2 -g -mieee -mcpu=ev5
-optflags: alphaev56 -O2 -g -mieee -mcpu=ev56
-optflags: alphapca56 -O2 -g -mieee -mcpu=pca56
-optflags: alphaev6 -O2 -g -mieee -mcpu=ev6
-optflags: alphaev67 -O2 -g -mieee -mcpu=ev67
+optflags: alphaev5 -O2 -g -mieee -mtune=ev5
+optflags: alphaev56 -O2 -g -mieee -mtune=ev56
+optflags: alphapca56 -O2 -g -mieee -mtune=pca56
+optflags: alphaev6 -O2 -g -mieee -mtune=ev6
+optflags: alphaev67 -O2 -g -mieee -mtune=ev67
optflags: sparc -O2 -g -m32 -mtune=ultrasparc
optflags: sparcv8 -O2 -g -m32 -mtune=ultrasparc -mv8
-optflags: sparcv9 -O2 -g -m32 -mcpu=ultrasparc
-optflags: sparc64 -O2 -g -m64 -mcpu=ultrasparc
+optflags: sparcv9 -O2 -g -m32 -mtune=ultrasparc
+optflags: sparc64 -O2 -g -m64 -mtune=ultrasparc
@@ -44,15 +44,16 @@ optflags: sparc64v -O2 -g -m64 -march=ni
optflags: m68k -O2 -g -fomit-frame-pointer
-optflags: ppc -O2 -g -fsigned-char
-optflags: ppc8260 -O2 -g -fsigned-char
-optflags: ppc8560 -O2 -g -fsigned-char
-optflags: ppc32dy4 -O2 -g -fsigned-char
-optflags: ppciseries -O2 -g -fsigned-char
-optflags: ppcpseries -O2 -g -fsigned-char
-optflags: ppc64 -O2 -g -fsigned-char
+optflags: ppc -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: ppc8260 -O2 -g
+optflags: ppc8560 -O2 -g
+optflags: ppc32dy4 -O2 -g
+optflags: ppciseries -O2 -g
+optflags: ppcpseries -O2 -g
+optflags: ppc64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2
-optflags: ppc -O2 -g -m32 -fsigned-char
-optflags: ppc8260 -O2 -g -m32 -fsigned-char
-optflags: ppc8560 -O2 -g -m32 -fsigned-char
-optflags: ppc32dy4 -O2 -g -m32 -fsigned-char
-optflags: ppciseries -O2 -g -m32 -fsigned-char
-optflags: ppcpseries -O2 -g -m32 -fsigned-char
-optflags: ppc64 -O2 -g -m64 -fsigned-char
+optflags: ppc -O2 -g -m32 -fmessage-length=0 -D_FORTIFY_SOURCE=2
+optflags: ppc8260 -O2 -g -m32
+optflags: ppc8560 -O2 -g -m32
+optflags: ppc32dy4 -O2 -g -m32
+optflags: ppciseries -O2 -g -m32
+optflags: ppcpseries -O2 -g -m32
+optflags: ppc64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2
optflags: parisc -O2 -g -mpa-risc-1-0
+optflags: hppa -O2 -g -mpa-risc-1-0
optflags: hppa1.0 -O2 -g -mpa-risc-1-0
optflags: hppa1.1 -O2 -g -mpa-risc-1-0
optflags: hppa1.2 -O2 -g -mpa-risc-1-0
@@ -58,9 +59,9 @@ optflags: hppa2.0 -O2 -g -mpa-risc-1-0
optflags: mips -O2 -g
optflags: mipsel -O2 -g
-optflags: armv3l -O2 -g -fsigned-char -fomit-frame-pointer -march=armv3
-optflags: armv4b -O2 -g -fsigned-char -fomit-frame-pointer -march=armv4
-optflags: armv4l -O2 -g -fsigned-char -fomit-frame-pointer -march=armv4
+optflags: armv3l -O2 -g -march=armv3
+optflags: armv4b -O2 -g -march=armv4
+optflags: armv4l -O2 -g -march=armv4
optflags: atarist -O2 -g -fomit-frame-pointer
optflags: atariste -O2 -g -fomit-frame-pointer
@@ -70,8 +71,8 @@ optflags: atariclone -O2 -g -fomit-frame
@@ -77,8 +78,8 @@ optflags: atariclone -O2 -g -fomit-frame
optflags: milan -O2 -g -fomit-frame-pointer
optflags: hades -O2 -g -fomit-frame-pointer
-optflags: s390 -O2 -g
-optflags: s390x -O2 -g
+optflags: s390 -O2 -g -fmessage-length=0
+optflags: s390x -O2 -g -fmessage-length=0
-optflags: s390 -O2 -g -m31
-optflags: s390x -O2 -g -m64
+optflags: s390 -O2 -g -m31 -fmessage-length=0
+optflags: s390x -O2 -g -m64 -fmessage-length=0
#############################################################
# Canonical arch names and numbers
@@ -181,16 +182,16 @@ os_canon: MacOSX: macosx 21
optflags: sh3 -O2 -g
optflags: sh4 -O2 -g
@@ -201,17 +202,17 @@ os_canon: MacOSX: macosx 21
#############################################################
# For a given uname().machine, the default build arch
@ -103,11 +77,13 @@ Index: rpmrc.in
buildarchtranslate: osfmach3_i386: i386
-buildarchtranslate: athlon: i386
-buildarchtranslate: geode: i386
-buildarchtranslate: pentium4: i386
-buildarchtranslate: pentium3: i386
-buildarchtranslate: i686: i386
-buildarchtranslate: i586: i386
+buildarchtranslate: athlon: i586
+buildarchtranslate: geode: i586
+buildarchtranslate: pentium4: i586
+buildarchtranslate: pentium3: i586
+buildarchtranslate: i686: i586
@ -115,17 +91,17 @@ Index: rpmrc.in
buildarchtranslate: i486: i386
buildarchtranslate: i386: i386
@@ -217,6 +218,7 @@ buildarchtranslate: ppciseries: ppc
@@ -240,6 +241,7 @@ buildarchtranslate: ppciseries: ppc
buildarchtranslate: ppcpseries: ppc
buildarchtranslate: ppc64iseries: ppc64
buildarchtranslate: ppc64pseries: ppc64
+buildarchtranslate: powerpc64: ppc64
buildarchtranslate: atarist: m68kmint
buildarchtranslate: atariste: m68kmint
@@ -235,6 +237,15 @@ buildarchtranslate: x86_64: x86_64
buildarchtranslate: amd64: x86_64
buildarchtranslate: ia32e: x86_64
buildarchtranslate: armv3l: armv3l
buildarchtranslate: armv4b: armv4b
@@ -270,6 +272,15 @@ buildarchtranslate: sh3: sh3
buildarchtranslate: sh4: sh4
buildarchtranslate: sh4a: sh4
+buildarchtranslate: parisc: hppa
+buildarchtranslate: hppa2.0: hppa
@ -139,25 +115,26 @@ Index: rpmrc.in
#############################################################
# Architecture compatibility
@@ -287,10 +298,16 @@ arch_compat: mipsel: noarch
arch_compat: hppa2.0: hppa1.2
@@ -326,12 +337,16 @@ arch_compat: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1
arch_compat: hppa1.1: hppa1.0
-arch_compat: hppa1.0: parisc
arch_compat: hppa1.0: parisc
-arch_compat: parisc: noarch
+arch_compat: hppa1.0: hppa
+arch_compat: hppa: parisc
arch_compat: parisc: noarch
+arch_compat: hppa: noarch
+arch_compat: armv5teb: armv5b
+arch_compat: armv5b: armv4b
arch_compat: armv4b: noarch
+
arch_compat: armv6l: armv5tejl
arch_compat: armv5tejl: armv5tel
-arch_compat: armv5tel: armv4tl
+arch_compat: armv5tel: armv5l
+arch_compat: armv5l: armv4l
+arch_compat: armv5l: armv4tl
arch_compat: armv4tl: armv4l
arch_compat: armv4l: armv3l
arch_compat: armv3l: noarch
@@ -306,9 +323,9 @@ arch_compat: i370: noarch
@@ -348,9 +363,9 @@ arch_compat: i370: noarch
arch_compat: s390: noarch
arch_compat: s390x: s390 noarch
@ -169,15 +146,21 @@ Index: rpmrc.in
arch_compat: amd64: x86_64 athlon noarch
arch_compat: ia32e: x86_64 athlon noarch
@@ -384,11 +401,16 @@ buildarch_compat: mipsel: noarch
buildarch_compat: armv3l: noarch
buildarch_compat: armv4b: noarch
buildarch_compat: armv4l: noarch
+buildarch_compat: armv5b: noarch
+buildarch_compat: armv5l: noarch
+buildarch_compat: armv5teb: noarch
+buildarch_compat: armv5tel: noarch
@@ -431,10 +446,12 @@ buildarch_compat: ppc64iseries: ppc64
buildarch_compat: mips: noarch
buildarch_compat: mipsel: noarch
+buildarch_compat: armv5b: noarch
buildarch_compat: armv4b: noarch
buildarch_compat: armv6l: armv5tejl
buildarch_compat: armv5tejl: armv5tel
-buildarch_compat: armv5tel: armv4tl
+buildarch_compat: armv5tel: armv5l
+buildarch_compat: armv5l: armv4tl
buildarch_compat: armv4tl: armv4l
buildarch_compat: armv4l: armv3l
buildarch_compat: armv3l: noarch
@@ -442,7 +459,8 @@ buildarch_compat: armv3l: noarch
buildarch_compat: hppa2.0: hppa1.2
buildarch_compat: hppa1.2: hppa1.1
buildarch_compat: hppa1.1: hppa1.0
@ -187,9 +170,9 @@ Index: rpmrc.in
buildarch_compat: parisc: noarch
buildarch_compat: atarist: m68kmint noarch
@@ -408,7 +430,7 @@ buildarch_compat: x86_64: noarch
buildarch_compat: amd64: x86_64
buildarch_compat: ia32e: x86_64
@@ -466,7 +484,7 @@ buildarch_compat: sh3: noarch
buildarch_compat: sh4: noarch
buildarch_compat: sh4a: sh4
-macrofiles: @RPMCONFIGDIR@/macros:@RPMCONFIGDIR@/%{_target}/macros:@SYSCONFIGDIR@/macros.*:@SYSCONFIGDIR@/macros:@SYSCONFIGDIR@/%{_target}/macros:~/.rpmmacros
+macrofiles: @RPMCONFIGDIR@/macros:@RPMCONFIGDIR@/%{_target}/macros:@RPMCONFIGDIR@/suse_macros:@SYSCONFIGDIR@/macros.*:@SYSCONFIGDIR@/macros:@SYSCONFIGDIR@/%{_target}/macros:~/.rpmmacros

View File

@ -1,8 +1,9 @@
Patch machine detection code: always use "ppc", restore SIGILL
handler, detect transmeta. [#52713]
Patch machine detection code: detect transmeta, rename parisc to hppa. [#52713]
--- ./lib/rpmrc.c.orig 2005-01-17 18:46:23.000000000 +0000
+++ ./lib/rpmrc.c 2005-12-16 18:30:29.000000000 +0000
Index: lib/rpmrc.c
===================================================================
--- lib/rpmrc.c.orig
+++ lib/rpmrc.c
@@ -2,9 +2,6 @@
#include "system.h"
@ -13,35 +14,11 @@ handler, detect transmeta. [#52713]
#include <ctype.h> /* XXX for /etc/rpm/platform contents */
@@ -953,20 +950,38 @@ static inline int RPMClass(void)
{
int cpu;
unsigned int tfms, junk, cap, capamd;
+ struct sigaction oldsa;
+ sigaction(SIGILL, NULL, &oldsa);
signal(SIGILL, model3);
- if (sigsetjmp(jenv, 1))
+ if (sigsetjmp(jenv, 1)) {
+ sigaction(SIGILL, &oldsa, NULL);
return 3;
+ }
- if (cpuid_eax(0x000000000)==0)
+ if (cpuid_eax(0x000000000)==0) {
+ sigaction(SIGILL, &oldsa, NULL);
return 4;
+ }
cpuid(0x00000001, &tfms, &junk, &junk, &cap);
cpuid(0x80000001, &junk, &junk, &junk, &capamd);
@@ -975,6 +972,14 @@ static inline int RPMClass(void)
cpu = (tfms>>8)&15;
+ /* Check if we have a Transmeta i686-compatible CPU
+ that reports as being i586 */
+ if(cpu == 5
+ if (cpu == 5
+ && cpuid_ecx(0)=='68xM'
+ && cpuid_edx(0)=='Teni'
+ && (cpuid_edx(1) & ((1<<8)|(1<<15))) == ((1<<8)|(1<<15))) {
@ -49,13 +26,11 @@ handler, detect transmeta. [#52713]
+ return 6; /* has CX8 and CMOV */
+ }
+
+ sigaction(SIGILL, &oldsa, NULL);
+
if (cpu < 6)
return cpu;
@@ -1076,15 +1091,6 @@ static int is_pentium4()
sigaction(SIGILL, &oldsa, NULL);
if (cpu < 6)
@@ -1112,15 +1117,6 @@ static int is_geode()
}
#endif
-#if defined(__linux__) && defined(__powerpc__)
@ -70,7 +45,7 @@ handler, detect transmeta. [#52713]
/**
*/
static void defaultMachine(/*@out@*/ const char ** arch,
@@ -1219,6 +1225,11 @@ static void defaultMachine(/*@out@*/ con
@@ -1255,6 +1251,11 @@ static void defaultMachine(/*@out@*/ con
/* big endian */
strcpy(un.machine, "mips");
# endif
@ -82,31 +57,3 @@ handler, detect transmeta. [#52713]
# if defined(__hpux) && defined(_SC_CPU_VERSION)
{
@@ -1326,27 +1337,6 @@ static void defaultMachine(/*@out@*/ con
}
# endif
-# if defined(__linux__) && defined(__powerpc__)
- {
- unsigned pvr = 0;
- __sighandler_t oldh = signal(SIGILL, mfspr_ill);
- if (setjmp(mfspr_jmpbuf) == 0) {
- __asm__ __volatile__ ("mfspr %0, 287" : "=r" (pvr));
- }
- signal(SIGILL, oldh);
-
- if ( pvr ) {
- pvr >>= 16;
- if ( pvr >= 0x40)
- strcpy(un.machine, "ppcpseries");
- else if ( (pvr == 0x36) || (pvr == 0x37) )
- strcpy(un.machine, "ppciseries");
- else
- strcpy(un.machine, "ppc");
- }
- }
-# endif
-
/* the uname() result goes through the arch_canon table */
canon = lookupInCanonTable(un.machine,
tables[RPM_MACHTABLE_INSTARCH].canons,

View File

@ -1,105 +0,0 @@
When deleting files, drop any s-bit first, so that a malicious
user does not have access to old programs if he hard links them
to some other directory. [#50376] rh#125517
Already in rpm-4.4.7.
Index: lib/cpio.h
===================================================================
--- lib/cpio.h.orig
+++ lib/cpio.h
@@ -64,7 +64,8 @@ typedef enum cpioMapFlags_e {
CPIO_MAP_ABSOLUTE = (1 << 5),
CPIO_MAP_ADDDOT = (1 << 6),
CPIO_ALL_HARDLINKS = (1 << 7), /*!< fail if hardlinks are missing. */
- CPIO_MAP_TYPE = (1 << 8) /*!< only for building. */
+ CPIO_MAP_TYPE = (1 << 8), /*!< only for building. */
+ CPIO_SBIT_CHECK = (1 << 9)
} cpioMapFlags;
#define CPIO_NEWC_MAGIC "070701"
Index: lib/fsm.c
===================================================================
--- lib/fsm.c.orig
+++ lib/fsm.c
@@ -2127,6 +2127,11 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
/*@notreached@*/ break;
case FSM_UNLINK:
+ if (fsm->mapFlags & CPIO_SBIT_CHECK) {
+ struct stat stb;
+ if (Lstat(fsm->path, &stb) == 0 && S_ISREG(stb.st_mode) && (stb.st_mode & 06000) != 0)
+ chmod(fsm->path, stb.st_mode & 0777);
+ }
rc = Unlink(fsm->path);
if (_fsm_debug && (stage & FSM_SYSCALL))
rpmMessage(RPMMESS_DEBUG, " %8s (%s) %s\n", cur,
Index: lib/psm.c
===================================================================
--- lib/psm.c.orig
+++ lib/psm.c
@@ -1472,7 +1472,7 @@ assert(psm->mi == NULL);
fi->striplen = (xx ? strlen(p) + 1 : 1);
}
fi->mapflags =
- CPIO_MAP_PATH | CPIO_MAP_MODE | CPIO_MAP_UID | CPIO_MAP_GID;
+ CPIO_MAP_PATH | CPIO_MAP_MODE | CPIO_MAP_UID | CPIO_MAP_GID | (fi->mapflags & CPIO_SBIT_CHECK);
if (headerIsEntry(fi->h, RPMTAG_ORIGBASENAMES))
rpmfiBuildFNames(fi->h, RPMTAG_ORIGBASENAMES, &fi->apath, NULL);
Index: lib/transaction.c
===================================================================
--- lib/transaction.c.orig
+++ lib/transaction.c
@@ -187,6 +187,13 @@ static int handleInstInstalledFiles(cons
if (XFA_SKIPPING(fi->actions[fileNum]))
continue;
+ if (!(fi->mapflags & CPIO_SBIT_CHECK)) {
+ int_16 omode = rpmfiFMode(otherFi);
+ if (S_ISREG(omode) && (omode & 06000) != 0) {
+ fi->mapflags |= CPIO_SBIT_CHECK;
+ }
+ }
+
if (rpmfiCompare(otherFi, fi)) {
int rConflicts;
@@ -1843,6 +1850,20 @@ rpmMessage(RPMMESS_DEBUG, _("computing f
case TR_REMOVED:
/*@switchbreak@*/ break;
}
+ /* check for s-bit files to be removed */
+ if (rpmteType(p) == TR_REMOVED) {
+ fi = rpmfiInit(fi, 0);
+ while ((i = rpmfiNext(fi)) >= 0) {
+ int_16 mode;
+ if (XFA_SKIPPING(fi->actions[i]))
+ continue;
+ (void) rpmfiSetFX(fi, i);
+ mode = rpmfiFMode(fi);
+ if (S_ISREG(mode) && (mode & 06000) != 0) {
+ fi->mapflags |= CPIO_SBIT_CHECK;
+ }
+ }
+ }
(void) rpmswExit(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), fc);
}
pi = rpmtsiFree(pi);
@@ -2088,6 +2109,7 @@ assert(psm != NULL);
{
char * fstates = fi->fstates;
fileAction * actions = fi->actions;
+ int mapflags = fi->mapflags;
rpmte savep;
fi->fstates = NULL;
@@ -2106,6 +2128,8 @@ assert(psm != NULL);
fi->fstates = fstates;
fi->actions = _free(fi->actions);
fi->actions = actions;
+ if (mapflags & CPIO_SBIT_CHECK)
+ fi->mapflags |= CPIO_SBIT_CHECK;
p->fi = fi;
}
}

View File

@ -1,20 +0,0 @@
Deal with bad lines in --setperms and --setugids. Happens for example if
a package is not installed (--pipe also captures stderr). [#52122]
--- ./rpmpopt.in.orig 2005-02-16 19:05:36.000000000 +0000
+++ ./rpmpopt.in 2006-03-21 17:58:43.000000000 +0000
@@ -37,12 +37,12 @@ rpm alias --scripts --qf '\
--POPTdesc=$"list install/erase scriptlets from package(s)"
rpm alias --setperms -q --qf '[\[ -L %{FILENAMES:shescape} \] || chmod %7.7{FILEMODES:octal} %{FILENAMES:shescape}\n]' \
- --pipe "grep -v \(none\) | sed 's/chmod .../chmod /' | sh" \
+ --pipe "grep -v \(none\) | grep '^. -L ' | sed 's/chmod .../chmod /' | sh" \
--POPTdesc=$"set permissions of files in a package"
rpm alias --setugids -q --qf \
'[ch %{FILEUSERNAME:shescape} %{FILEGROUPNAME:shescape} %{FILENAMES:shescape}\n]' \
- --pipe "(echo 'ch() { chown -- \"$1\" \"$3\";chgrp -- \"$2\" \"$3\"; }';grep -v \(none\))|sh" \
+ --pipe "(echo 'ch() { chown -h -- \"$1\" \"$3\";chgrp -h -- \"$2\" \"$3\"; }';grep '^ch '|grep -v \(none\))|sh" \
--POPTdesc=$"set user/group ownership of files in a package"
rpm alias --conflicts --qf \

View File

@ -1,49 +0,0 @@
Index: rpmpopt.in
===================================================================
--- rpmpopt.in.orig
+++ rpmpopt.in
@@ -33,6 +33,14 @@ rpm alias --scripts --qf '\
{%|POSTUNPROG?{postuninstall program: %{POSTUNPROG}\n}|}|\
\
%|VERIFYSCRIPT?{verify scriptlet:\n%{VERIFYSCRIPT}\n}|\
+\
+%|PRETRANS?{pretrans scriptlet\
+%|PRETRANSPROG?{ (using %{PRETRANSPROG})}|:\n%{PRETRANS}\n}:\
+{%|PRETRANSPROG?{pretrans program: %{PRETRANSPROG}\n}|}|\
+\
+%|POSTTRANS?{posttrans scriptlet\
+%|POSTTRANSPROG?{ (using %{POSTTRANSPROG})}|:\n%{POSTTRANS}\n}:\
+{%|POSTTRANSPROG?{posttrans program: %{POSTTRANSPROG}\n}|}|\
' \
--POPTdesc=$"list install/erase scriptlets from package(s)"
@@ -343,6 +351,14 @@ rpmq alias --scripts --qf '\
{%|POSTUNPROG?{postuninstall program: %{POSTUNPROG}\n}|}|\
\
%|VERIFYSCRIPT?{verify scriptlet:\n%{VERIFYSCRIPT}\n}|\
+\
+%|PRETRANS?{pretrans scriptlet\
+%|PRETRANSPROG?{ (using %{PRETRANSPROG})}|:\n%{PRETRANS}\n}:\
+{%|PRETRANSPROG?{pretrans program: %{PRETRANSPROG}\n}|}|\
+\
+%|POSTTRANS?{posttrans scriptlet\
+%|POSTTRANSPROG?{ (using %{POSTTRANSPROG})}|:\n%{POSTTRANS}\n}:\
+{%|POSTTRANSPROG?{posttrans program: %{POSTTRANSPROG}\n}|}|\
' \
--POPTdesc=$"list install/erase scriptlets from package(s)"
@@ -462,6 +478,14 @@ rpmquery alias --scripts --qf '\
{%|POSTUNPROG?{postuninstall program: %{POSTUNPROG}\n}|}|\
\
%|VERIFYSCRIPT?{verify scriptlet:\n%{VERIFYSCRIPT}\n}|\
+\
+%|PRETRANS?{pretrans scriptlet\
+%|PRETRANSPROG?{ (using %{PRETRANSPROG})}|:\n%{PRETRANS}\n}:\
+{%|PRETRANSPROG?{pretrans program: %{PRETRANSPROG}\n}|}|\
+\
+%|POSTTRANS?{posttrans scriptlet\
+%|POSTTRANSPROG?{ (using %{POSTTRANSPROG})}|:\n%{POSTTRANS}\n}:\
+{%|POSTTRANSPROG?{posttrans program: %{POSTTRANSPROG}\n}|}|\
' \
--POPTdesc=$"list install/erase scriptlets from package(s)"

View File

@ -1,21 +0,0 @@
Backported fix.
--- ./lib/signature.c.orig 2005-12-14 21:14:45.000000000 +0000
+++ ./lib/signature.c 2005-12-16 18:24:53.000000000 +0000
@@ -268,7 +268,7 @@ rpmRC rpmReadSignature(FD_t fd, Header *
xx = headerVerifyInfo(1, dl, info, &entry->info, 1);
if (xx != -1 ||
- !(entry->info.tag == RPMTAG_HEADERSIGNATURES
+ !((entry->info.tag == RPMTAG_HEADERSIGNATURES || entry->info.tag == RPMTAG_HEADERIMAGE)
&& entry->info.type == RPM_BIN_TYPE
&& entry->info.count == REGION_TAG_COUNT))
{
@@ -583,6 +583,7 @@ static int makeGPGSignature(const char *
if (gpg_path && *gpg_path != '\0')
(void) dosetenv("GNUPGHOME", gpg_path, 1);
/*@=boundsread@*/
+ (void) dosetenv("LC_ALL", "C", 1);
unsetenv("MALLOC_CHECK_");
cmd = rpmExpand("%{?__gpg_sign_cmd}", NULL);

View File

@ -1,16 +0,0 @@
Call Fflush at the end of writeing a signed package to catch out
of disk space errors.
--- ./lib/rpmchecksig.c.orig 2005-12-14 20:54:39.000000000 +0000
+++ ./lib/rpmchecksig.c 2006-03-21 18:00:22.000000000 +0000
@@ -116,6 +116,10 @@ static int copyFile(FD_t *sfdp, const ch
rpmError(RPMERR_FREAD, _("%s: Fread failed: %s\n"), *sfnp, Fstrerror(*sfdp));
goto exit;
}
+ if (Fflush(*tfdp) != 0) {
+ rpmError(RPMERR_FWRITE, _("%s: Fflush failed: %s\n"), *tfnp,
+ Fstrerror(*tfdp));
+ }
rc = 0;

View File

@ -1,19 +0,0 @@
Allow characters >127 that don't fit the current locale in the
specfile (e.g. latin1 in utf-8 locale).
--- ./build.c.orig 2004-10-17 19:00:10.000000000 +0000
+++ ./build.c 2005-12-19 17:52:25.000000000 +0000
@@ -87,8 +87,13 @@ static int isSpecFile(const char * specf
/*@switchbreak@*/ break;
/*@-boundsread@*/
default:
+#if 0
if (checking && !(isprint(*s) || isspace(*s))) return 0;
/*@switchbreak@*/ break;
+#else
+ if (checking && !(isprint(*s) || isspace(*s)) && *(unsigned char *)s < 32) return 0;
+ /*@switchbreak@*/ break;
+#endif
/*@=boundsread@*/
}
}

View File

@ -1,119 +0,0 @@
Backported fix. AFAIK needed for smart.
Index: rpmio/rpmsq.c
===================================================================
--- rpmio/rpmsq.c.orig
+++ rpmio/rpmsq.c
@@ -218,7 +218,6 @@ fprintf(stderr, " Insert(%p): %p\n",
sq->id = ME();
ret = pthread_mutex_init(&sq->mutex, NULL);
- ret = pthread_cond_init(&sq->cond, NULL);
insque(elem, (prev != NULL ? prev : rpmsqQueue));
ret = sigrelse(SIGCHLD);
}
@@ -240,8 +239,11 @@ fprintf(stderr, " Remove(%p): %p\n",
ret = sighold (SIGCHLD);
if (ret == 0) {
remque(elem);
- ret = pthread_cond_destroy(&sq->cond);
- ret = pthread_mutex_destroy(&sq->mutex);
+
+ /* Unlock the mutex and then destroy it */
+ if((ret = pthread_mutex_unlock(&sq->mutex)) == 0)
+ ret = pthread_mutex_destroy(&sq->mutex);
+
sq->id = NULL;
/*@-bounds@*/
if (sq->pipes[1]) ret = close(sq->pipes[1]);
@@ -315,11 +317,20 @@ void rpmsqAction(int signum,
sq != NULL && sq != rpmsqQueue;
sq = sq->q_forw)
{
+ int ret;
+
if (sq->child != reaped)
/*@innercontinue@*/ continue;
sq->reaped = reaped;
sq->status = status;
- (void) pthread_cond_signal(&sq->cond);
+
+ /* Unlock the mutex. The waiter will then be able to
+ * aquire the lock.
+ *
+ * XXX: jbj, wtd, if this fails?
+ */
+ ret = pthread_mutex_unlock(&sq->mutex);
+
/*@innerbreak@*/ break;
}
}
@@ -391,6 +402,7 @@ pid_t rpmsqFork(rpmsq sq)
{
pid_t pid;
int xx;
+ int nothreads = 0; /* XXX: Shouldn't this be a global? */
if (sq->reaper) {
xx = rpmsqInsert(sq, NULL);
@@ -405,6 +417,24 @@ fprintf(stderr, " Enable(%p): %p\n",
xx = sighold(SIGCHLD);
+ /*
+ * Initialize the cond var mutex. We have to aquire the lock we
+ * use for the condition before we fork. Otherwise it is possible for
+ * the child to exit, we get sigchild and the sig handler to send
+ * the condition signal before we are waiting on the condition.
+ */
+ if (!nothreads) {
+ if(pthread_mutex_lock(&sq->mutex)) {
+ /* Yack we did not get the lock, lets just give up */
+/*@-bounds@*/
+ xx = close(sq->pipes[0]);
+ xx = close(sq->pipes[1]);
+ sq->pipes[0] = sq->pipes[1] = -1;
+/*@=bounds@*/
+ goto out;
+ }
+ }
+
pid = fork();
if (pid < (pid_t) 0) { /* fork failed. */
sq->child = (pid_t)-1;
@@ -463,10 +493,6 @@ static int rpmsqWaitUnregister(rpmsq sq)
/* Protect sq->reaped from handler changes. */
ret = sighold(SIGCHLD);
- /* Initialize the cond var mutex. */
- if (!nothreads)
- ret = pthread_mutex_lock(&sq->mutex);
-
/* Start the child, linux often runs child before parent. */
/*@-bounds@*/
if (sq->pipes[0] >= 0)
@@ -487,7 +513,13 @@ static int rpmsqWaitUnregister(rpmsq sq)
ret = sigpause(SIGCHLD);
else {
xx = sigrelse(SIGCHLD);
- ret = pthread_cond_wait(&sq->cond, &sq->mutex);
+
+ /*
+ * We start before the fork with this mutex locked;
+ * The only one that unlocks this the signal handler.
+ * So if we get the lock the child has been reaped.
+ */
+ ret = pthread_mutex_lock(&sq->mutex);
xx = sighold(SIGCHLD);
}
}
@@ -496,9 +528,6 @@ static int rpmsqWaitUnregister(rpmsq sq)
/* Accumulate stopwatch time spent waiting, potential performance gain. */
sq->ms_scriptlets += rpmswExit(&sq->op, -1)/1000;
- /* Tear down cond var mutex, our child has been reaped. */
- if (!nothreads)
- xx = pthread_mutex_unlock(&sq->mutex);
xx = sigrelse(SIGCHLD);
#ifdef _RPMSQ_DEBUG

View File

@ -1,68 +0,0 @@
Add new srcdefattr macro. Usefull for assuring that all files
in the src rpms belong to root:root [#48870] rh#125515
--- ./build/files.c.orig 2005-12-14 19:22:43.000000000 +0000
+++ ./build/files.c 2006-02-17 13:57:25.000000000 +0000
@@ -2260,7 +2274,15 @@ int processSourceFiles(Spec spec)
struct FileList_s fl;
char *s, **files, **fp;
Package pkg;
+ static char *_srcdefattr;
+ static int oneshot;
+ if (!oneshot) {
+ _srcdefattr = rpmExpand("%{?_srcdefattr}", NULL);
+ if (_srcdefattr && !*_srcdefattr)
+ _srcdefattr = _free(_srcdefattr);
+ oneshot = 1;
+ }
sourceFiles = newStringBuf();
/* XXX
@@ -2311,6 +2333,15 @@ int processSourceFiles(Spec spec)
spec->sourceCpioList = NULL;
+ /* Init the file list structure */
+ memset(&fl, 0, sizeof(fl));
+ if (_srcdefattr) {
+ char *a = xmalloc(strlen(_srcdefattr) + 9 + 1);
+ strcpy(a, "%defattr ");
+ strcpy(a + 9, _srcdefattr);
+ parseForAttr(a, &fl);
+ a = _free(a);
+ }
fl.fileList = xcalloc((spec->numSources + 1), sizeof(*fl.fileList));
fl.processingFailed = 0;
fl.fileListRecsUsed = 0;
@@ -2359,8 +2390,20 @@ int processSourceFiles(Spec spec)
fl.processingFailed = 1;
}
- flp->uname = getUname(flp->fl_uid);
- flp->gname = getGname(flp->fl_gid);
+ if (fl.def_ar.ar_fmodestr) {
+ flp->fl_mode &= S_IFMT;
+ flp->fl_mode |= fl.def_ar.ar_fmode;
+ }
+ if (fl.def_ar.ar_user) {
+ flp->uname = getUnameS(fl.def_ar.ar_user);
+ } else {
+ flp->uname = getUname(flp->fl_uid);
+ }
+ if (fl.def_ar.ar_group) {
+ flp->gname = getGnameS(fl.def_ar.ar_group);
+ } else {
+ flp->gname = getGname(flp->fl_gid);
+ }
flp->langs = xstrdup("");
fl.totalFileSize += flp->fl_size;
@@ -2384,6 +2427,7 @@ int processSourceFiles(Spec spec)
sourceFiles = freeStringBuf(sourceFiles);
fl.fileList = freeFileList(fl.fileList, fl.fileListRecsUsed);
+ freeAttrRec(&fl.def_ar);
return fl.processingFailed;
}

View File

@ -9,7 +9,7 @@ Index: lib/psm.c
===================================================================
--- lib/psm.c.orig
+++ lib/psm.c
@@ -799,6 +799,8 @@ static rpmRC runScript(rpmpsm psm, Heade
@@ -813,6 +813,8 @@ static rpmRC runScript(rpmpsm psm, Heade
}
if (out == NULL) return RPMRC_FAIL; /* XXX can't happen */
@ -18,7 +18,7 @@ Index: lib/psm.c
/*@-branchstate@*/
xx = rpmsqFork(&psm->sq);
if (psm->sq.child == 0) {
@@ -924,6 +926,8 @@ static rpmRC runScript(rpmpsm psm, Heade
@@ -933,6 +935,8 @@ static rpmRC runScript(rpmpsm psm, Heade
(void) psmWait(psm);
@ -47,7 +47,7 @@ Index: lib/rpmts.h
===================================================================
--- lib/rpmts.h.orig
+++ lib/rpmts.h
@@ -470,6 +470,10 @@ int rpmtsRebuildDB(rpmts ts)
@@ -476,6 +476,10 @@ int rpmtsRebuildDB(rpmts ts)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;

View File

@ -6,7 +6,7 @@ Index: rpmdb/rpmdb.c
===================================================================
--- rpmdb/rpmdb.c.orig
+++ rpmdb/rpmdb.c
@@ -1223,6 +1223,16 @@ int rpmdbVerify(const char * prefix)
@@ -1215,6 +1215,16 @@ int rpmdbVerify(const char * prefix)
return rc;
}
@ -23,7 +23,7 @@ Index: rpmdb/rpmdb.c
/**
* Find file matches in database.
* @param db rpm database
@@ -1302,6 +1312,11 @@ if (key->size == 0) key->size++; /* XXX
@@ -1294,6 +1304,11 @@ if (key->size == 0) key->size++; /* XXX
if (rc == 0)
(void) dbt2set(dbi, data, &allMatches);
@ -35,7 +35,7 @@ Index: rpmdb/rpmdb.c
xx = dbiCclose(dbi, dbcursor, 0);
dbcursor = NULL;
} else
@@ -2408,7 +2423,7 @@ static void rpmdbSortIterator(/*@null@*/
@@ -2411,7 +2426,7 @@ static void rpmdbSortIterator(/*@null@*/
}
/*@-bounds@*/ /* LCL: segfault */
@ -44,7 +44,7 @@ Index: rpmdb/rpmdb.c
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/
{
@@ -2456,10 +2471,16 @@ static int rpmdbGrowIterator(/*@null@*/
@@ -2459,10 +2474,16 @@ static int rpmdbGrowIterator(/*@null@*/
set = NULL;
(void) dbt2set(dbi, data, &set);
@ -87,7 +87,7 @@ Index: rpmdb/rpmdb.c
if (_noDirTokens)
expandFilelist(h);
@@ -3243,6 +3273,11 @@ data->size = 0;
@@ -3240,6 +3270,11 @@ data->size = 0;
*/
rec->tagNum = i;
switch (dbi->dbi_rpmtag) {
@ -99,7 +99,7 @@ Index: rpmdb/rpmdb.c
case RPMTAG_PUBKEYS:
/*@switchbreak@*/ break;
case RPMTAG_FILEMD5S:
@@ -3417,6 +3452,8 @@ if (key->size == 0) key->size++; /* XXX
@@ -3414,6 +3449,8 @@ if (key->size == 0) key->size++; /* XXX
}
exit:
@ -108,7 +108,7 @@ Index: rpmdb/rpmdb.c
(void) unblockSignals(db, &signalMask);
return ret;
@@ -3505,7 +3542,7 @@ if (key->size == 0) key->size++; /* XXX
@@ -3495,7 +3532,7 @@ if (key->size == 0) key->size++; /* XXX
if (!exclude && skipDir(fpList[i].entry->dirName))
continue;

View File

@ -4,7 +4,7 @@ Index: lib/rpmlib.h
===================================================================
--- lib/rpmlib.h.orig
+++ lib/rpmlib.h
@@ -447,6 +447,19 @@ typedef enum rpmTag_e {
@@ -447,7 +447,19 @@ typedef enum rpmTag_e {
RPMTAG_PRIORITY = 1162, /* i extension placeholder */
RPMTAG_CVSID = 1163, /* s */
#define RPMTAG_SVNID RPMTAG_CVSID /* s */
@ -15,7 +15,7 @@ Index: lib/rpmlib.h
+ RPMTAG_FLINKHDRID = 1168, /* s[] */
+ RPMTAG_FLINKNEVRA = 1169, /* s[] */
+ RPMTAG_PACKAGEORIGIN = 1170, /* s */
+ RPMTAG_TRIGGERPREIN = 1171, /*!< internal */
RPMTAG_TRIGGERPREIN = 1171, /*!< internal */
+ RPMTAG_BUILDSUGGESTS = 1172, /*!< internal */
+ RPMTAG_BUILDENHANCES = 1173, /*!< internal */
+ RPMTAG_SCRIPTSTATES = 1174, /*!< i scriptlet exit codes */
@ -24,7 +24,7 @@ Index: lib/rpmlib.h
/*@-enummemuse@*/
RPMTAG_FIRSTFREE_TAG /*!< internal */
@@ -530,7 +543,9 @@ typedef enum rpmsenseFlags_e {
@@ -531,7 +543,9 @@ typedef enum rpmsenseFlags_e {
/*@=enummemuse@*/
RPMSENSE_KEYRING = (1 << 26),
RPMSENSE_PATCHES = (1 << 27),

View File

@ -1,13 +0,0 @@
Index: build.c
===================================================================
--- build.c.orig
+++ build.c
@@ -161,7 +161,7 @@ static int buildForTarget(rpmts ts, cons
/* Try again */
(void) pclose(fp);
- sprintf(cmd, "%s < %s | tar xOvf - \\*.spec 2>&1 > %s",
+ sprintf(cmd, "%s < %s | tar xOvf - --wildcards \\*.spec 2>&1 > %s",
zcmds[res & 0x3], arg, tmpSpecFile);
if (!(fp = popen(cmd, "r"))) {
rpmError(RPMERR_POPEN, _("Failed to open tar pipe: %m\n"));

View File

@ -1,134 +0,0 @@
Do not run pre/posttrans scripts in test mode
Index: lib/transaction.c
===================================================================
--- lib/transaction.c.orig
+++ lib/transaction.c
@@ -1747,7 +1747,7 @@ rpmMessage(RPMMESS_DEBUG, _("sanity chec
/* Run pre-transaction scripts, but only if there are no known
* problems up to this point. */
- if (!((rpmtsFlags(ts) & RPMTRANS_FLAG_BUILD_PROBS)
+ if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_TEST))
|| (ts->probs->numProblems &&
(okProbs == NULL || rpmpsTrim(ts->probs, okProbs))))) {
rpmMessage(RPMMESS_DEBUG, _("running pre-transaction scripts\n"));
@@ -2476,68 +2476,70 @@ assert(psm != NULL);
if (rollbackOnFailure && rollbackTransaction != NULL)
rollbackTransaction = rpmtsFree(rollbackTransaction);
- rpmMessage(RPMMESS_DEBUG, _("running post-transaction scripts\n"));
- pi = rpmtsiInit(ts);
- while ((p = rpmtsiNext(pi, TR_ADDED)) != NULL) {
- int haspostscript;
+ if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_TEST)) {
+ rpmMessage(RPMMESS_DEBUG, _("running post-transaction scripts\n"));
+ pi = rpmtsiInit(ts);
+ while ((p = rpmtsiNext(pi, TR_ADDED)) != NULL) {
+ int haspostscript;
- if ((fi = rpmtsiFi(pi)) == NULL)
- continue; /* XXX can't happen */
+ if ((fi = rpmtsiFi(pi)) == NULL)
+ continue; /* XXX can't happen */
- haspostscript = (fi->posttrans != NULL ? 1 : 0);
- p->fi = rpmfiFree(p->fi);
+ haspostscript = (fi->posttrans != NULL ? 1 : 0);
+ p->fi = rpmfiFree(p->fi);
- /* If no post-transaction script, then don't bother. */
- if (!haspostscript)
- continue;
+ /* If no post-transaction script, then don't bother. */
+ if (!haspostscript)
+ continue;
- p->fd = ts->notify(p->h, RPMCALLBACK_INST_OPEN_FILE, 0, 0,
- rpmteKey(p), ts->notifyData);
- p->h = NULL;
- if (rpmteFd(p) != NULL) {
- rpmVSFlags ovsflags = rpmtsVSFlags(ts);
- rpmVSFlags vsflags = ovsflags | RPMVSF_NEEDPAYLOAD;
- rpmRC rpmrc;
- ovsflags = rpmtsSetVSFlags(ts, vsflags);
- rpmrc = rpmReadPackageFile(ts, rpmteFd(p),
- rpmteNEVR(p), &p->h);
- vsflags = rpmtsSetVSFlags(ts, ovsflags);
- switch (rpmrc) {
- default:
- p->fd = ts->notify(p->h, RPMCALLBACK_INST_CLOSE_FILE,
- 0, 0, rpmteKey(p), ts->notifyData);
- p->fd = NULL;
- /*@switchbreak@*/ break;
- case RPMRC_NOTTRUSTED:
- case RPMRC_NOKEY:
- case RPMRC_OK:
- /*@switchbreak@*/ break;
+ p->fd = ts->notify(p->h, RPMCALLBACK_INST_OPEN_FILE, 0, 0,
+ rpmteKey(p), ts->notifyData);
+ p->h = NULL;
+ if (rpmteFd(p) != NULL) {
+ rpmVSFlags ovsflags = rpmtsVSFlags(ts);
+ rpmVSFlags vsflags = ovsflags | RPMVSF_NEEDPAYLOAD;
+ rpmRC rpmrc;
+ ovsflags = rpmtsSetVSFlags(ts, vsflags);
+ rpmrc = rpmReadPackageFile(ts, rpmteFd(p),
+ rpmteNEVR(p), &p->h);
+ vsflags = rpmtsSetVSFlags(ts, ovsflags);
+ switch (rpmrc) {
+ default:
+ p->fd = ts->notify(p->h, RPMCALLBACK_INST_CLOSE_FILE,
+ 0, 0, rpmteKey(p), ts->notifyData);
+ p->fd = NULL;
+ /*@switchbreak@*/ break;
+ case RPMRC_NOTTRUSTED:
+ case RPMRC_NOKEY:
+ case RPMRC_OK:
+ /*@switchbreak@*/ break;
+ }
}
- }
- if (rpmteFd(p) != NULL) {
- p->fi = rpmfiNew(ts, p->h, RPMTAG_BASENAMES, 1);
- if (p->fi != NULL) /* XXX can't happen */
- p->fi->te = p;
+ if (rpmteFd(p) != NULL) {
+ p->fi = rpmfiNew(ts, p->h, RPMTAG_BASENAMES, 1);
+ if (p->fi != NULL) /* XXX can't happen */
+ p->fi->te = p;
/*@-compdef -usereleased@*/ /* p->fi->te undefined */
- psm = rpmpsmNew(ts, p, p->fi);
+ psm = rpmpsmNew(ts, p, p->fi);
/*@=compdef =usereleased@*/
assert(psm != NULL);
- psm->scriptTag = RPMTAG_POSTTRANS;
- psm->progTag = RPMTAG_POSTTRANSPROG;
- xx = rpmpsmStage(psm, PSM_SCRIPT);
- psm = rpmpsmFree(psm);
+ psm->scriptTag = RPMTAG_POSTTRANS;
+ psm->progTag = RPMTAG_POSTTRANSPROG;
+ xx = rpmpsmStage(psm, PSM_SCRIPT);
+ psm = rpmpsmFree(psm);
/*@-noeffectuncon -compdef -usereleased @*/
- (void) ts->notify(p->h, RPMCALLBACK_INST_CLOSE_FILE, 0, 0,
- rpmteKey(p), ts->notifyData);
+ (void) ts->notify(p->h, RPMCALLBACK_INST_CLOSE_FILE, 0, 0,
+ rpmteKey(p), ts->notifyData);
/*@=noeffectuncon =compdef =usereleased @*/
- p->fd = NULL;
- p->fi = rpmfiFree(p->fi);
- p->h = headerFree(p->h);
+ p->fd = NULL;
+ p->fi = rpmfiFree(p->fi);
+ p->h = headerFree(p->h);
+ }
}
+ pi = rpmtsiFree(pi);
}
- pi = rpmtsiFree(pi);
rpmtsFreeLock(lock);

View File

@ -1,13 +0,0 @@
Do not could exlcuded files in disk space calculation. Backported.
--- ./build/files.c.orig 2005-12-14 19:22:43.000000000 +0000
+++ ./build/files.c 2006-02-17 13:57:25.000000000 +0000
@@ -1677,7 +1689,7 @@ static int addFile(FileList fl, const ch
} else
i = fl->fileListRecsUsed;
- if (S_ISREG(flp->fl_mode) && i >= fl->fileListRecsUsed)
+ if (!(flp->flags & RPMFILE_EXCLUDE) && S_ISREG(flp->fl_mode) && i >= fl->fileListRecsUsed)
fl->totalFileSize += flp->fl_size;
}

View File

@ -1,37 +0,0 @@
Obey --root option when calculating the directory of the
transaction lock.
Already fixed in rpm-4.4.7.
--- ./lib/rpmlock.c.orig 2005-12-21 14:34:27.000000000 +0000
+++ ./lib/rpmlock.c 2005-12-21 14:42:59.000000000 +0000
@@ -45,12 +45,18 @@ static rpmlock rpmlock_new(/*@unused@*/
}
if (lock != NULL) {
mode_t oldmask = umask(022);
- lock->fd = open(rpmlock_path, O_RDWR|O_CREAT, 0644);
+ char *path = rpmlock_path;
+ if (rootdir && *rootdir == '/' && rootdir[1] != 0) {
+ path = xmalloc(strlen(rootdir) + strlen(rpmlock_path) + 1);
+ strcpy(path, rootdir);
+ strcat(path, rpmlock_path);
+ }
+ lock->fd = open(path, O_RDWR|O_CREAT, 0644);
(void) umask(oldmask);
/*@-branchstate@*/
if (lock->fd == -1) {
- lock->fd = open(rpmlock_path, O_RDONLY);
+ lock->fd = open(path, O_RDONLY);
if (lock->fd == -1) {
free(lock);
lock = NULL;
@@ -64,6 +70,8 @@ static rpmlock rpmlock_new(/*@unused@*/
lock->openmode = RPMLOCK_WRITE | RPMLOCK_READ;
/*@=nullderef@*/
}
+ if (path != rpmlock_path)
+ free(path);
/*@=branchstate@*/
}
/*@-compdef@*/

View File

@ -1,31 +0,0 @@
Patch rpmvercmp corner case where it said both A < B and B < A.
Also clarifies some comments.
Patch from Peter Bowan.
--- ./lib/rpmvercmp.c.orig 2006-02-10 16:22:02.000000000 +0000
+++ ./lib/rpmvercmp.c 2006-02-10 16:20:49.000000000 +0000
@@ -39,6 +39,9 @@ int rpmvercmp(const char * a, const char
while (*one && !xisalnum(*one)) one++;
while (*two && !xisalnum(*two)) two++;
+ /* If we ran to the end of either, we are finished with the loop */
+ if (!(*one && *two)) break;
+
str1 = one;
str2 = two;
@@ -64,9 +67,13 @@ int rpmvercmp(const char * a, const char
*str2 = '\0';
/*@=boundswrite@*/
+ /* this cannot happen, as we previously tested to make sure that */
+ /* the first string has a non-null segment */
+ if (one == str1) return -1; /* arbitrary */
+
/* take care of the case where the two version segments are */
/* different types: one numeric, the other alpha (i.e. empty) */
- if (one == str1) return -1; /* arbitrary */
+ /* numeric segments are always newer than alpha segments */
/* XXX See patch #60884 (and details) from bugzilla #50977. */
if (two == str2) return (isnum ? 1 : -1);

View File

@ -1,17 +0,0 @@
Tell user the reason why the lstat failed in a verify operation.
Index: lib/verify.c
===================================================================
--- lib/verify.c.orig
+++ lib/verify.c
@@ -327,6 +327,10 @@ static int verifyHeader(QVA_t qva, const
(fileAttrs & RPMFILE_README) ? 'r' : ' '),
rpmfiFN(fi));
te += strlen(te);
+ if ((verifyResult & RPMVERIFY_LSTATFAIL) != 0 && errno != ENOENT) {
+ sprintf(te, " (%s)", strerror(errno));
+ te += strlen(te);
+ }
ec = rc;
}
} else if (verifyResult || rpmIsVerbose()) {

View File

@ -1,8 +1,10 @@
Fix global (DB_PRIVATE) lock code: fix recursion counter, retry
failed lock operations for up to 3 minutes.
--- ./rpmdb/db3.c.orig 2005-03-23 18:15:28.000000000 +0000
+++ ./rpmdb/db3.c 2006-01-27 20:08:29.000000000 +0000
@@ -759,6 +769,8 @@ assert(db != NULL);
Index: rpmdb/db3.c
===================================================================
--- rpmdb/db3.c.orig
+++ rpmdb/db3.c
@@ -769,6 +769,8 @@ assert(db != NULL);
}
/*@=mustmod@*/
@ -11,7 +13,7 @@ failed lock operations for up to 3 minutes.
/*@-moduncon@*/ /* FIX: annotate db3 methods */
static int db3close(/*@only@*/ dbiIndex dbi, /*@unused@*/ unsigned int flags)
/*@globals rpmGlobalMacroContext, h_errno,
@@ -818,6 +830,10 @@ static int db3close(/*@only@*/ dbiIndex
@@ -828,6 +830,10 @@ static int db3close(/*@only@*/ dbiIndex
rpmMessage(RPMMESS_DEBUG, _("closed db index %s/%s\n"),
dbhome, (dbfile ? dbfile : tagName(dbi->dbi_rpmtag)));
@ -22,7 +24,7 @@ failed lock operations for up to 3 minutes.
}
@@ -1138,8 +1157,6 @@ static int db3open(rpmdb rpmdb, rpmTag r
@@ -1148,8 +1154,6 @@ static int db3open(rpmdb rpmdb, rpmTag r
prDbiOpenFlags(oflags, 0), dbi->dbi_mode);
if (rc == 0) {
@ -31,7 +33,7 @@ failed lock operations for up to 3 minutes.
/*@-moduncon@*/ /* FIX: annotate db3 methods */
rc = db_create(&db, dbenv, dbi->dbi_cflags);
/*@=moduncon@*/
@@ -1356,6 +1373,7 @@ static int db3open(rpmdb rpmdb, rpmTag r
@@ -1366,6 +1370,7 @@ static int db3open(rpmdb rpmdb, rpmTag r
if (!(db->fd(db, &fdno) == 0 && fdno >= 0)) {
rc = 1;
} else {
@ -39,7 +41,7 @@ failed lock operations for up to 3 minutes.
struct flock l;
/*@-boundswrite@*/
memset(&l, 0, sizeof(l));
@@ -1367,24 +1385,40 @@ static int db3open(rpmdb rpmdb, rpmTag r
@@ -1377,24 +1382,40 @@ static int db3open(rpmdb rpmdb, rpmTag r
? F_WRLCK : F_RDLCK;
l.l_pid = 0;

Some files were not shown because too many files have changed in this diff Show More