Accepting request 76541 from Base:System

->

OBS-URL: https://build.opensuse.org/request/show/76541
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpm?expand=0&rev=148
This commit is contained in:
Sascha Peilicke 2011-07-21 06:49:28 +00:00 committed by Git OBS Bridge
commit 3aac1446b2
19 changed files with 238 additions and 418 deletions

View File

@ -1,5 +1,5 @@
--- ./autodeps/linux.prov.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./autodeps/linux.prov 2011-05-11 14:27:40.000000000 +0000
--- ./autodeps/linux.prov.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./autodeps/linux.prov 2011-07-18 16:47:39.000000000 +0000
@@ -2,60 +2,72 @@
# This script reads filenames from STDIN and outputs any relevant provides
@ -101,26 +101,27 @@
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
exit 0
--- ./autodeps/linux.req.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./autodeps/linux.req 2011-05-11 14:28:45.000000000 +0000
@@ -19,18 +19,21 @@ fi
--- ./autodeps/linux.req.orig 2011-07-15 09:32:41.000000000 +0000
+++ ./autodeps/linux.req 2011-07-18 16:51:24.000000000 +0000
@@ -18,20 +18,21 @@ fi
#
# --- Grab the file manifest and classify files.
#filelist=`sed "s/['\"]/\\\&/g"`
-#filelist=`sed "s/['\"]/\\\&/g"`
-filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
-exelist=`echo $filelist | xargs -r file | grep -Ev ":.* (commands|script) " | \
- grep ":.*executable" | cut -d: -f1`
-scriptlist=`echo $filelist | xargs -r file | \
- grep -E ":.* (commands|script) " | cut -d: -f1`
-liblist=`echo $filelist | xargs -r file | \
- grep ":.*shared object" | cut -d : -f1`
-exelist=`echo $filelist | xargs -r file | \
+#filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
+filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
+exelist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
+ egrep -v ":.* (commands|script) " | \
grep -Ev ":.* (commands|script)[, ]" | \
- grep ":.*executable" | cut -d: -f1`
-scriptlist=`echo $filelist | xargs -r file | \
- grep -E ":.* (commands|script)[, ]" | cut -d: -f1`
-liblist=`echo $filelist | xargs -r file | \
- grep ":.*shared object" | cut -d : -f1`
+ grep ":.*executable" | cut -d: -f1))
+scriptlist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
+ egrep ":.* (commands|script) " | cut -d: -f1))
+ grep -E ":.* (commands|script)[, ]" | cut -d: -f1))
+liblist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
+ grep ":.*shared object" | cut -d : -f1))
@ -136,7 +137,7 @@
#
# --- Alpha does not mark 64bit dependencies
@@ -42,12 +45,12 @@ esac
@@ -43,12 +44,12 @@ esac
if [ "$needed" -eq 0 ]; then
#
# --- Executable dependency sonames.
@ -154,7 +155,7 @@
gsub(/'\''"/,"\\&",$1);
printf "%s'$lib64'\n", $1
}
@@ -56,12 +59,12 @@ if [ "$needed" -eq 0 ]; then
@@ -57,12 +58,12 @@ if [ "$needed" -eq 0 ]; then
#
# --- Library dependency sonames.
@ -172,7 +173,7 @@
gsub(/'\''"/,"\\&",$1);
printf "%s'$lib64'\n", $1
}
@@ -71,30 +74,30 @@ fi
@@ -72,30 +73,30 @@ fi
#
# --- Script interpreters.
@ -215,7 +216,7 @@
/^$/ { START=0; }
/^Dynamic Section:$/ { START=1; }
(START==1) && /NEEDED/ {
@@ -111,7 +114,7 @@ for f in $liblist $exelist ; do
@@ -112,7 +113,7 @@ for f in $liblist $exelist ; do
sub(/:/, "", $3);
LIBNAME=$3;
}
@ -224,7 +225,7 @@
print LIBNAME "(" $4 ")'$lib64'";
}
'
@@ -119,17 +122,29 @@ done | sort -u
@@ -120,17 +121,29 @@ done | sort -u
#
# --- Perl modules.

View File

@ -1,6 +1,6 @@
--- build/rpmfc.c.orig 2011-06-06 11:27:32.000000000 +0000
+++ build/rpmfc.c 2011-06-09 08:30:25.000000000 +0000
@@ -165,12 +165,14 @@ static int sigpipe_init(void)
--- ./build/rpmfc.c.orig 2011-07-18 17:40:37.000000000 +0000
+++ ./build/rpmfc.c 2011-07-18 17:40:56.000000000 +0000
@@ -182,12 +182,14 @@ static int sigpipe_init(void)
fcntl(_sigpipe[1], F_SETFD, (fcntl(_sigpipe[1], F_GETFD)|FD_CLOEXEC));
/* XXX SIGPIPE too, but NSPR disables it already, dont mess with it */
signal(SIGCHLD, sigpipe_handler);
@ -15,23 +15,3 @@
close(_sigpipe[0]);
close(_sigpipe[1]);
_sigpipe[0] = -1;
@@ -290,6 +292,7 @@ static StringBuf getOutputFrom(ARGV_t ar
if (FD_ISSET(fromProg[0], &ibits)) {
int nbr = read(fromProg[0], buf, sizeof(buf)-1);
if (nbr < 0 && errno == EINTR) continue;
+ if (nbr == 0) break; /* EOF, we're done */
if (nbr < 0) {
myerrno = errno;
break;
@@ -298,10 +301,9 @@ static StringBuf getOutputFrom(ARGV_t ar
appendStringBuf(readBuff, buf);
}
- /* Child exited, we're done */
+ /* Child exited, we're maybe done */
if (FD_ISSET(sigpipe, &ibits)) {
while (read(sigpipe, buf, sizeof(buf)) > 0) {};
- break;
}
}

View File

@ -1,50 +0,0 @@
Do not abort if chown/chmod fails but the file is already correct
--- ./lib/fsm.c.orig 2011-03-02 06:46:13.000000000 +0000
+++ ./lib/fsm.c 2011-05-10 16:30:55.000000000 +0000
@@ -1449,6 +1449,11 @@ static int fsmRename(FSM_t fsm)
static int fsmChown(FSM_t fsm)
{
int rc = chown(fsm->path, fsm->sb.st_uid, fsm->sb.st_gid);
+ if (rc < 0) {
+ struct stat st;
+ if (lstat(fsm->path, &st) == 0 && st.st_uid == fsm->sb.st_uid && st.st_gid == fsm->sb.st_gid)
+ rc = 0;
+ }
if (_fsm_debug && (FSM_CHOWN & FSM_SYSCALL))
rpmlog(RPMLOG_DEBUG, " %8s (%s, %d, %d) %s\n", fileStageString(FSM_CHOWN),
fsm->path, (int)fsm->sb.st_uid, (int)fsm->sb.st_gid,
@@ -1461,6 +1466,11 @@ static int fsmLChown(FSM_t fsm)
{
int rc = 0;
rc = lchown(fsm->path, fsm->sb.st_uid, fsm->sb.st_gid);
+ if (rc < 0) {
+ struct stat st;
+ if (lstat(fsm->path, &st) == 0 && st.st_uid == fsm->sb.st_uid && st.st_gid == fsm->sb.st_gid)
+ rc = 0;
+ }
if (_fsm_debug && (FSM_LCHOWN & FSM_SYSCALL))
rpmlog(RPMLOG_DEBUG, " %8s (%s, %d, %d) %s\n", fileStageString(FSM_LCHOWN),
fsm->path, (int)fsm->sb.st_uid, (int)fsm->sb.st_gid,
@@ -1472,6 +1482,11 @@ static int fsmLChown(FSM_t fsm)
static int fsmChmod(FSM_t fsm)
{
int rc = chmod(fsm->path, (fsm->sb.st_mode & 07777));
+ if (rc < 0) {
+ struct stat st;
+ if (lstat(fsm->path, &st) == 0 && (st.st_mode & 07777) == (fsm->sb.st_mode & 07777))
+ rc = 0;
+ }
if (_fsm_debug && (FSM_CHMOD & FSM_SYSCALL))
rpmlog(RPMLOG_DEBUG, " %8s (%s, 0%04o) %s\n", fileStageString(FSM_CHMOD),
fsm->path, (unsigned)(fsm->sb.st_mode & 07777),
@@ -2033,6 +2048,9 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
st->st_mtime = rpmfiFMtimeIndex(fi, fsm->ix);
rc = fsmUtime(fsm);
st->st_mtime = mtime;
+ /* utime error is not critical for directories */
+ if (rc && S_ISDIR(st->st_mode))
+ rc = 0;
}
#if WITH_CAP
if (!rc && !S_ISDIR(st->st_mode) && !getuid()) {

View File

@ -1,6 +1,6 @@
--- ./tools/debugedit.c.orig 2011-05-20 11:26:04.000000000 +0000
+++ ./tools/debugedit.c 2011-05-20 11:27:56.000000000 +0000
@@ -158,7 +158,7 @@ strptr (DSO *dso, int sec, off_t offset)
--- ./tools/debugedit.c.orig 2011-07-18 16:53:12.000000000 +0000
+++ ./tools/debugedit.c 2011-07-18 17:15:27.000000000 +0000
@@ -162,7 +162,7 @@ strptr (DSO *dso, int sec, off_t offset)
{
if (data->d_buf
&& offset >= data->d_off
@ -9,7 +9,7 @@
return (const char *) data->d_buf + (offset - data->d_off);
}
}
@@ -496,9 +496,10 @@ static int
@@ -503,9 +503,10 @@ static int
edit_dwarf2_line (DSO *dso, uint32_t off, char *comp_dir, int phase)
{
unsigned char *ptr = debug_sections[DEBUG_LINE].data, *dir;
@ -21,15 +21,15 @@
unsigned char opcode_base;
uint32_t value, dirt_cnt;
size_t comp_dir_len = strlen (comp_dir);
@@ -542,6 +543,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
@@ -549,6 +550,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
return 1;
}
+ line_base = (char) (ptr[2] & 0xff);
opcode_base = ptr[4];
ptr = dir = ptr + 4 + opcode_base;
+ line_base = (char) (ptr[2 + (value >= 4)] & 0xff);
opcode_base = ptr[4 + (value >= 4)];
ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
@@ -553,13 +555,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
@@ -560,13 +562,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
++value;
}
@ -45,7 +45,7 @@
ptr = (unsigned char *) strchr ((char *)ptr, 0) + 1;
}
ptr++;
@@ -672,7 +674,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
@@ -679,7 +681,7 @@ edit_dwarf2_line (DSO *dso, uint32_t off
if (dest_dir)
{
@ -54,7 +54,7 @@
size_t base_len = strlen (base_dir);
size_t dest_len = strlen (dest_dir);
size_t shrank = 0;
@@ -686,11 +688,14 @@ edit_dwarf2_line (DSO *dso, uint32_t off
@@ -693,11 +695,14 @@ edit_dwarf2_line (DSO *dso, uint32_t off
ptr = dir;
}
else
@ -71,7 +71,7 @@
char *orig = strdup ((const char *) srcptr);
@@ -717,10 +722,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
@@ -724,10 +729,13 @@ edit_dwarf2_line (DSO *dso, uint32_t off
if (shrank > 0)
{
@ -86,7 +86,7 @@
{
memset (ptr, 'X', shrank);
ptr += shrank;
@@ -756,21 +764,26 @@ edit_dwarf2_line (DSO *dso, uint32_t off
@@ -763,21 +771,26 @@ edit_dwarf2_line (DSO *dso, uint32_t off
}
dirty_section (DEBUG_STR);
}

View File

@ -1,11 +0,0 @@
--- ./build/parseChangelog.c.orig 2011-05-23 14:19:48.000000000 +0000
+++ ./build/parseChangelog.c 2011-05-23 14:20:36.000000000 +0000
@@ -238,7 +238,7 @@ int parseChangelog(rpmSpec spec)
}
}
- if (addChangelog(spec->packages->header, sb)) {
+ if (sb && addChangelog(spec->packages->header, sb)) {
goto exit;
}
res = nextPart;

View File

@ -1,13 +0,0 @@
Do not segfault if the prep section is empty
--- build/parsePrep.c.orig 2011-05-13 16:22:59.000000000 +0000
+++ build/parsePrep.c 2011-05-13 16:23:41.000000000 +0000
@@ -518,7 +518,7 @@ int parsePrep(rpmSpec spec)
}
}
- for (ARGV_const_t lines = saveLines; *lines; lines++) {
+ for (ARGV_const_t lines = saveLines; lines && *lines; lines++) {
res = 0;
if (rstreqn(*lines, "%setup", sizeof("%setup")-1)) {
res = doSetupMacro(spec, *lines);

View File

@ -1,50 +1,5 @@
Index: fileattrs/debuginfo.attr
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ fileattrs/debuginfo.attr 2011-06-06 16:16:00.853820498 +0200
@@ -0,0 +1,2 @@
+%__debuginfo_provides %{_rpmconfigdir}/debuginfo.prov
+%__debuginfo_path ^/usr/lib/debug/
Index: fileattrs/elf.attr
===================================================================
--- fileattrs/elf.attr.orig 2011-06-06 16:15:01.591403879 +0200
+++ fileattrs/elf.attr 2011-06-06 16:16:00.853820498 +0200
@@ -1,4 +1,5 @@
%__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
%__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
-%__elf_magic ^ELF (32|64)-bit.*$
+%__elf_magic ^ELF (32|64)-bit.*executable
%__elf_flags exeonly
+%__elf_exclude_path ^/usr/lib/debug/
Index: fileattrs/elflib.attr
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ fileattrs/elflib.attr 2011-06-06 16:16:00.854820404 +0200
@@ -0,0 +1,4 @@
+%__elflib_provides %{_rpmconfigdir}/elfdeps --assume-exec --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
+%__elflib_requires %{_rpmconfigdir}/elfdeps --assume-exec --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
+%__elflib_magic ^ELF (32|64)-bit.*shared object
+%__elflib_exclude_path ^/usr/lib/debug/
Index: fileattrs/firmware.attr
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ fileattrs/firmware.attr 2011-06-06 16:16:00.854820404 +0200
@@ -0,0 +1,2 @@
+%__firmware_provides %{_rpmconfigdir}/firmware.prov
+%__firmware_path /lib/firmware/
Index: fileattrs/ksyms.attr
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ fileattrs/ksyms.attr 2011-06-06 16:16:00.854820404 +0200
@@ -0,0 +1,4 @@
+%__ksyms_provides %{_rpmconfigdir}/find-provides.ksyms %name
+%__ksyms_requires %{_rpmconfigdir}/find-requires.ksyms %name
+%__ksyms_supplements %{_rpmconfigdir}/find-supplements.ksyms %name
+%__ksyms_path (/lib/modules/.*\.ko(\.gz)?)|(/boot/vmlinu[xz].*)$
Index: fileattrs/Makefile.am
===================================================================
--- fileattrs/Makefile.am.orig 2011-06-06 16:15:01.590403974 +0200
+++ fileattrs/Makefile.am 2011-06-06 16:16:08.852066946 +0200
--- ./fileattrs/Makefile.am.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./fileattrs/Makefile.am 2011-07-18 17:29:11.000000000 +0000
@@ -5,7 +5,8 @@ include $(top_srcdir)/rpm.am
fattrsdir = $(rpmconfigdir)/fileattrs
@ -56,30 +11,57 @@ Index: fileattrs/Makefile.am
+ debuginfo.attr elflib.attr firmware.attr ksyms.attr sysvinit.attr
EXTRA_DIST = $(fattrs_DATA)
Index: fileattrs/perl.attr
===================================================================
--- fileattrs/perl.attr.orig 2011-06-06 16:15:01.591403879 +0200
+++ fileattrs/perl.attr 2011-06-06 16:16:00.855820310 +0200
--- ./fileattrs/debuginfo.attr.orig 2011-07-18 17:29:11.000000000 +0000
+++ ./fileattrs/debuginfo.attr 2011-07-18 17:29:11.000000000 +0000
@@ -0,0 +1,2 @@
+%__debuginfo_provides %{_rpmconfigdir}/debuginfo.prov
+%__debuginfo_path ^/usr/lib/debug/
--- ./fileattrs/elf.attr.orig 2011-07-15 09:32:41.000000000 +0000
+++ ./fileattrs/elf.attr 2011-07-18 17:31:52.000000000 +0000
@@ -1,4 +1,5 @@
%__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
%__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
-%__elf_magic ^(sticky )?ELF (32|64)-bit.*$
+%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*executable
%__elf_flags exeonly
+%__elf_exclude_path ^/usr/lib/debug/
--- ./fileattrs/elflib.attr.orig 2011-07-18 17:29:11.000000000 +0000
+++ ./fileattrs/elflib.attr 2011-07-18 17:32:28.000000000 +0000
@@ -0,0 +1,4 @@
+%__elflib_provides %{_rpmconfigdir}/elfdeps --assume-exec --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
+%__elflib_requires %{_rpmconfigdir}/elfdeps --assume-exec --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
+%__elflib_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*shared object
+%__elflib_exclude_path ^/usr/lib/debug/
--- ./fileattrs/firmware.attr.orig 2011-07-18 17:29:11.000000000 +0000
+++ ./fileattrs/firmware.attr 2011-07-18 17:29:11.000000000 +0000
@@ -0,0 +1,2 @@
+%__firmware_provides %{_rpmconfigdir}/firmware.prov
+%__firmware_path /lib/firmware/
--- ./fileattrs/ksyms.attr.orig 2011-07-18 17:29:11.000000000 +0000
+++ ./fileattrs/ksyms.attr 2011-07-18 17:29:11.000000000 +0000
@@ -0,0 +1,4 @@
+%__ksyms_provides %{_rpmconfigdir}/find-provides.ksyms %name
+%__ksyms_requires %{_rpmconfigdir}/find-requires.ksyms %name
+%__ksyms_supplements %{_rpmconfigdir}/find-supplements.ksyms %name
+%__ksyms_path (/lib/modules/.*\.ko(\.gz)?)|(/boot/vmlinu[xz].*)$
--- ./fileattrs/perl.attr.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./fileattrs/perl.attr 2011-07-18 17:29:11.000000000 +0000
@@ -1,3 +1,4 @@
-%__perl_requires %{_rpmconfigdir}/perl.req
+# disabled for now
+#%__perl_requires %{_rpmconfigdir}/perl.req
%__perl_magic ^.*perl .*$
%__perl_flags exeonly
Index: fileattrs/perllib.attr
===================================================================
--- fileattrs/perllib.attr.orig 2011-06-06 16:15:01.591403879 +0200
+++ fileattrs/perllib.attr 2011-06-06 16:16:00.855820310 +0200
--- ./fileattrs/perllib.attr.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./fileattrs/perllib.attr 2011-07-18 17:29:11.000000000 +0000
@@ -1,3 +1,4 @@
%__perllib_provides %{_rpmconfigdir}/perl.prov
-%__perllib_requires %{_rpmconfigdir}/perl.req
+#disabled for now
+#%__perllib_requires %{_rpmconfigdir}/perl.req
%__perllib_magic ^Perl[[:digit:]] module source.*
Index: fileattrs/sysvinit.attr
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ fileattrs/sysvinit.attr 2011-06-06 16:16:00.856820216 +0200
--- ./fileattrs/sysvinit.attr.orig 2011-07-18 17:29:11.000000000 +0000
+++ ./fileattrs/sysvinit.attr 2011-07-18 17:29:11.000000000 +0000
@@ -0,0 +1,2 @@
+%__sysvinit_provides %{_rpmconfigdir}/sysvinitdeps.sh --provides
+%__sysvinit_path ^/etc/init\.d/

View File

@ -1,6 +1,6 @@
--- ./macros.in.orig 2011-05-11 15:59:44.000000000 +0000
+++ ./macros.in 2011-05-11 16:45:30.000000000 +0000
@@ -1247,6 +1247,7 @@ EOF
--- ./macros.in.orig 2011-07-18 17:18:24.000000000 +0000
+++ ./macros.in 2011-07-18 17:18:36.000000000 +0000
@@ -1249,6 +1249,7 @@ EOF
# %files -f %{name}.lang
#
%find_lang %{_rpmconfigdir}/find-lang.sh %{buildroot}
@ -8,8 +8,8 @@
# Commands + opts to use for retrieving remote files
# Proxy opts can be set through --httpproxy/--httpport popt aliases,
--- ./scripts/find-lang.sh.orig 2011-05-11 14:53:34.000000000 +0000
+++ ./scripts/find-lang.sh 2011-05-11 16:45:30.000000000 +0000
--- ./scripts/find-lang.sh.orig 2011-07-18 17:18:24.000000000 +0000
+++ ./scripts/find-lang.sh 2011-07-18 17:18:36.000000000 +0000
@@ -62,6 +62,8 @@ MO=
MO_NAME=$NAME.lang
ALL_NAME=#
@ -99,7 +99,7 @@
/^$/d' >> $MO_NAME_NEW
fi
@@ -182,6 +203,8 @@ s:'"$TOP_DIR"'::
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}_[a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
s:^[^%].*::
+'"$ONLY_C"'/%lang(C)/!d

View File

@ -1,23 +0,0 @@
Allow "magic_and_path" flag to configure that files must
match both regexpes to be sent to the dependency generator.
--- build/rpmfc.c.orig 2011-05-16 10:46:20.000000000 +0000
+++ build/rpmfc.c 2011-05-16 11:02:56.000000000 +0000
@@ -630,10 +631,13 @@ static void rpmfcAttributes(rpmfc fc, co
continue;
/* Add attributes on libmagic type & path pattern matches */
- if (regMatch((*attr)->magic, ftype))
- argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
- if (regMatch((*attr)->path, path))
- argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+ if ((*attr)->magic && (*attr)->path && hasAttr((*attr)->flags, "magic_and_path")) {
+ if (regMatch((*attr)->magic, ftype) && regMatch((*attr)->path, path))
+ argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+ } else {
+ if (regMatch((*attr)->magic, ftype) || regMatch((*attr)->path, path))
+ argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+ }
}
}

View File

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

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

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

View File

@ -1,5 +1,5 @@
--- ./config.h.in.orig 2011-03-02 06:46:47.000000000 +0000
+++ ./config.h.in 2011-05-10 15:54:41.000000000 +0000
--- ./config.h.in.orig 2011-07-15 09:37:41.000000000 +0000
+++ ./config.h.in 2011-07-18 16:34:29.000000000 +0000
@@ -13,6 +13,9 @@
/* Define to 1 if you have the `basename' function. */
#undef HAVE_BASENAME
@ -19,7 +19,7 @@
#undef HAVE_ICONV
/* Define to 1 if you have the <inttypes.h> header file. */
@@ -224,6 +227,10 @@
@@ -227,6 +230,10 @@
*/
#undef LT_OBJDIR
@ -30,7 +30,7 @@
/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
*/
#undef MAJOR_IN_MKDEV
@@ -308,6 +315,9 @@
@@ -311,6 +318,9 @@
/* Build with acl support? */
#undef WITH_ACL
@ -40,9 +40,9 @@
/* Build with capability support? */
#undef WITH_CAP
--- ./configure.ac.orig 2011-03-02 06:46:20.000000000 +0000
+++ ./configure.ac 2011-05-10 15:54:41.000000000 +0000
@@ -246,12 +246,43 @@ AC_CHECK_HEADERS([dwarf.h], [
--- ./configure.ac.orig 2011-07-15 09:37:20.000000000 +0000
+++ ./configure.ac 2011-07-18 16:34:29.000000000 +0000
@@ -252,12 +252,43 @@ AC_CHECK_HEADERS([dwarf.h], [
AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes])
#=================
@ -86,7 +86,7 @@
AC_CHECK_HEADERS([nspr.h nss.h sechash.h], [], [
AC_MSG_ERROR([missing required NSPR / NSS header])
])
@@ -260,6 +291,7 @@ AC_CHECK_LIB(nss3, NSS_NoDB_Init, [
@@ -266,6 +297,7 @@ AC_CHECK_LIB(nss3, NSS_NoDB_Init, [
], [
AC_MSG_ERROR([missing required NSS library 'nss3'])
])
@ -94,17 +94,17 @@
AC_SUBST(WITH_NSS_INCLUDE)
AC_SUBST(WITH_NSS_LIB)
--- ./rpmio/Makefile.am.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./rpmio/Makefile.am 2011-05-10 15:56:13.000000000 +0000
--- ./rpmio/Makefile.am.orig 2011-07-15 09:36:33.000000000 +0000
+++ ./rpmio/Makefile.am 2011-07-18 16:36:35.000000000 +0000
@@ -2,6 +2,7 @@
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/include/
AM_CPPFLAGS += @WITH_NSS_INCLUDE@
+AM_CPPFLAGS += @WITH_BEECRYPT_INCLUDE@
AM_CPPFLAGS += @WITH_LUA_INCLUDE@
AM_CPPFLAGS += @WITH_POPT_INCLUDE@
AM_CPPFLAGS += -I$(top_srcdir)/misc
@@ -18,10 +19,17 @@ librpmio_la_SOURCES = \
AM_CPPFLAGS += -DRPMCONFIGDIR="\"@RPMCONFIGDIR@\""
@@ -17,10 +18,17 @@ librpmio_la_SOURCES = \
rpmstring.c rpmfileutil.c \
rpmkeyring.c
@ -114,15 +114,15 @@
+librpmio_la_SOURCES += digest_nss.c
+endif
+
librpmio_la_LDFLAGS = -version-info 2:0:0
librpmio_la_LDFLAGS = -version-info 2:1:0
librpmio_la_LIBADD = \
../misc/libmisc.la \
@WITH_NSS_LIB@ \
+ @WITH_BEECRYPT_LIB@ \
@WITH_LUA_LIB@ \
@WITH_BZ2_LIB@ \
@WITH_ZLIB_LIB@ \
@@ -30,6 +38,15 @@ librpmio_la_LIBADD = \
@WITH_LIBELF_LIB@ \
@@ -28,6 +36,15 @@ librpmio_la_LIBADD = \
@WITH_LZMA_LIB@ \
-lpthread
@ -135,11 +135,11 @@
+ sed -e 's/libdir=.*/libdir=/' < $(top_builddir)/beecrypt/libbeecrypt.la > $(top_builddir)/beecrypt/libbeecrypt_nolibdir.la
+endif
+
if WITH_LUAEXT
if WITH_LUA
AM_CPPFLAGS += -I$(top_srcdir)/luaext/
librpmio_la_LIBADD += $(top_builddir)/luaext/libluaext.la
--- ./rpmio/base64.c.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./rpmio/base64.c 2011-05-10 15:54:41.000000000 +0000
AM_CPPFLAGS += @LUA_CFLAGS@
--- ./rpmio/base64.c.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./rpmio/base64.c 2011-07-18 16:34:29.000000000 +0000
@@ -4,8 +4,11 @@
#include <arpa/inet.h>
#include <stdlib.h>
@ -157,8 +157,8 @@
#endif
+#endif /* WITH_BEECRYPT */
--- ./rpmio/digest.c.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./rpmio/digest.c 2011-05-10 16:00:19.000000000 +0000
--- ./rpmio/digest.c.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./rpmio/digest.c 2011-07-18 16:34:29.000000000 +0000
@@ -4,25 +4,12 @@
#include "system.h"
@ -326,8 +326,8 @@
- return 0;
-}
-
--- ./rpmio/digest.h.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./rpmio/digest.h 2011-05-10 15:54:41.000000000 +0000
--- ./rpmio/digest.h.orig 2011-07-12 11:28:13.000000000 +0000
+++ ./rpmio/digest.h 2011-07-18 16:34:29.000000000 +0000
@@ -1,11 +1,6 @@
#ifndef _RPMDIGEST_H
#define _RPMDIGEST_H
@ -361,8 +361,8 @@
+int pgpVerifyDSA(pgpDig dig, uint8_t *hash, size_t hashlen);
+
#endif /* _RPMDIGEST_H */
--- ./rpmio/digest_beecrypt.c.orig 2011-05-10 15:54:41.000000000 +0000
+++ ./rpmio/digest_beecrypt.c 2011-05-10 15:54:41.000000000 +0000
--- ./rpmio/digest_beecrypt.c.orig 2011-07-18 16:34:29.000000000 +0000
+++ ./rpmio/digest_beecrypt.c 2011-07-18 16:34:29.000000000 +0000
@@ -0,0 +1,493 @@
+#include "system.h"
+
@ -857,8 +857,8 @@
+ free(ctx);
+ return 0;
+}
--- ./rpmio/digest_nss.c.orig 2011-05-10 15:54:41.000000000 +0000
+++ ./rpmio/digest_nss.c 2011-05-10 15:54:41.000000000 +0000
--- ./rpmio/digest_nss.c.orig 2011-07-18 16:34:29.000000000 +0000
+++ ./rpmio/digest_nss.c 2011-07-18 16:34:29.000000000 +0000
@@ -0,0 +1,500 @@
+#include <nss.h>
+#include <sechash.h>
@ -1360,8 +1360,8 @@
+ free(ctx);
+ return 0;
+}
--- ./rpmio/rpmpgp.c.orig 2010-12-03 12:11:57.000000000 +0000
+++ ./rpmio/rpmpgp.c 2011-05-10 16:01:58.000000000 +0000
--- ./rpmio/rpmpgp.c.orig 2011-07-15 09:32:41.000000000 +0000
+++ ./rpmio/rpmpgp.c 2011-07-18 16:42:25.000000000 +0000
@@ -20,9 +20,6 @@ static int _debug = 0;
static int _print = 0;
@ -1527,7 +1527,7 @@
}
pgpPrtStr("", pgpSigDSA[i]);
} else {
@@ -838,49 +717,11 @@ static const uint8_t * pgpPrtPubkeyParam
@@ -842,49 +721,11 @@ static const uint8_t * pgpPrtPubkeyParam
char * mpi;
if (pubkey_algo == PGPPUBKEYALGO_RSA) {
if (i >= 2) break;
@ -1535,7 +1535,7 @@
- if (_dig->keydata == NULL) {
- _dig->keydata = pgpNewPublicKey(rsaKey);
- if (_dig->keydata == NULL)
- break; /* error abort? */
- return NULL;
- }
- switch (i) {
- case 0: /* n */
@ -1556,7 +1556,7 @@
- if (_dig->keydata == NULL) {
- _dig->keydata = pgpNewPublicKey(dsaKey);
- if (_dig->keydata == NULL)
- break; /* error abort? */
- return NULL;
- }
- switch (i) {
- case 0: /* p */
@ -1579,7 +1579,7 @@
pgpPrtStr("", pgpPublicDSA[i]);
} else if (pubkey_algo == PGPPUBKEYALGO_ELGAMAL_ENCRYPT) {
if (i >= 3) break;
@@ -1265,15 +1106,7 @@ void pgpCleanDig(pgpDig dig)
@@ -1269,15 +1110,7 @@ void pgpCleanDig(pgpDig dig)
memset(&dig->signature, 0, sizeof(dig->signature));
memset(&dig->pubkey, 0, sizeof(dig->pubkey));
@ -1596,7 +1596,7 @@
}
return;
}
@@ -1315,39 +1148,6 @@ int pgpPrtPkts(const uint8_t * pkts, siz
@@ -1319,39 +1152,6 @@ int pgpPrtPkts(const uint8_t * pkts, siz
return 0;
}
@ -1636,15 +1636,15 @@
char *pgpIdentItem(pgpDigParams digp)
{
char *id = NULL;
@@ -1396,30 +1196,12 @@ rpmRC pgpVerifySig(pgpDig dig, DIGEST_CT
/* Compare leading 16 bits of digest for quick check. */
if (hash && memcmp(hash, sigp->signhash16, 2) == 0) {
@@ -1409,30 +1209,12 @@ rpmRC pgpVerifySig(pgpDig dig, DIGEST_CT
if (dig->keydata == NULL) {
res = RPMRC_NOKEY;
} else {
- SECItem digest = { .type = siBuffer, .data = hash, .len = hashlen };
- SECItem *sig = dig->sigdata;
-
- /* Zero-pad RSA signature to expected size if necessary */
- if (sigp->pubkey_algo == PGPPUBKEYALGO_RSA) {
if (sigp->pubkey_algo == PGPPUBKEYALGO_RSA) {
- size_t siglen = SECKEY_SignatureLen(dig->keydata);
- if (siglen > sig->len) {
- size_t pad = siglen - sig->len;
@ -1664,7 +1664,6 @@
-
- if (sig != dig->sigdata) {
- SECITEM_ZfreeItem(sig, 1);
+ if (sigp->pubkey_algo == PGPPUBKEYALGO_RSA) {
+ if (!pgpVerifyRSA(dig, hash, hashlen))
+ res = RPMRC_OK;
+ } else if (sigp->pubkey_algo == PGPPUBKEYALGO_DSA) {
@ -1673,7 +1672,7 @@
}
}
@@ -1607,50 +1389,3 @@ char * pgpArmorWrap(int atype, const uns
@@ -1620,50 +1402,3 @@ char * pgpArmorWrap(int atype, const uns
return val;
}

View File

@ -25,7 +25,7 @@ BuildRequires: libacl-devel libcap-devel python-devel xz-devel zlib-devel
License: GPLv2+
Group: System/Packages
Summary: Python Bindings for Manipulating RPM Packages
Version: 4.9.0
Version: 4.9.1
Release: 10
Requires: rpm = %{version}
%py_requires

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Wed Jul 20 13:42:16 CEST 2011 - mls@suse.de
- fix problem with trailing slashes on dir files
-------------------------------------------------------------------
Mon Jul 18 19:43:34 CEST 2011 - mls@suse.de
- update to rpm-4.9.1
* fixed a bug in signature checking
* fixed crash on rpm --import for multiple keys [bnc#704589]
* got rid of a couple of patches
- fixed dependency generation for suid binaries [bnc#702857]
-------------------------------------------------------------------
Fri Jun 17 11:14:38 UTC 2011 - fcrozat@suse.com

139
rpm.spec
View File

@ -28,7 +28,7 @@ Provides: rpminst
PreReq: %insserv_prereq %fillup_prereq permissions
AutoReqProv: on
Summary: The RPM Package Manager
Version: 4.9.0
Version: 4.9.1
Release: 19
Source: rpm-%{version}.tar.bz2
Source1: RPM-HOWTO.tar.bz2
@ -49,75 +49,69 @@ Patch11: debugedit.diff
Patch12: localetag.diff
Patch13: missingok.diff
Patch14: nameversioncompare.diff
Patch15: chownwarn.diff
Patch16: dbfsync.diff
Patch17: dbrointerruptable.diff
Patch18: extcond.diff
Patch19: refreshtestarch.diff
Patch20: rpmrctests.diff
Patch21: waitlock.diff
Patch22: suspendlock.diff
Patch23: weakdeps.diff
Patch24: autodeps.diff
Patch25: brp.diff
Patch26: brpcompress.diff
Patch27: checkfilesnoinfodir.diff
Patch28: finddebuginfo.diff
Patch29: findksyms.diff
Patch30: findlang.diff
Patch31: macrosin.diff
Patch32: modalias.diff
Patch33: platformin.diff
Patch34: rpmpopt.diff
Patch35: rpmrc.diff
Patch36: taggedfileindex.diff
Patch37: rpmqpack.diff
Patch38: convertdb1static.diff
Patch39: build.diff
Patch40: modalias-kernel_module.diff
Patch41: files.diff
Patch42: debugedit-comp-dir.diff
Patch43: perlprov.diff
Patch44: rpm-shorten-changelog.diff
Patch45: debugsource-package.diff
Patch46: whatrequires-doc.diff
Patch47: remove-brp-strips.diff
Patch48: requires-ge-macro.diff
Patch50: debugedit-canon-fix.diff
Patch51: finddebuginfo-absolute-links.diff
Patch52: firmware.diff
Patch53: specfilemacro.diff
Patch54: modalias-encode.diff
Patch55: disttag-macro.diff
Patch56: buildidprov.diff
Patch57: debugsubpkg.diff
Patch58: debuglink.diff
Patch59: debuginfo-mono.patch
Patch60: lazystatfs.diff
Patch61: repackage-nomd5.diff
Patch62: safeugid.diff
Patch63: noprereqdeprec.diff
Patch64: pythondeps.diff
Patch65: fontprovides.diff
Patch66: rpm-gst-provides.patch
Patch67: langnoc.diff
Patch68: initscriptsprov.diff
Patch69: remove-translations.diff
Patch70: no_rep_autop.diff
Patch71: headeradddb.diff
Patch72: rpmdb_get_open_flags.diff
Patch73: verify_p.diff
Patch74: dbprivate.diff
Patch75: nobuildcolor.diff
Patch76: fileattrs.diff
Patch77: emptyprep.diff
Patch78: nomagiccheck.diff
Patch79: findsupplements.diff
Patch80: magic_and_path.diff
Patch81: safemacro.diff
Patch82: emptychangelog.diff
Patch83: assumeexec.diff
Patch84: buildpipe.diff
Patch15: dbfsync.diff
Patch16: dbrointerruptable.diff
Patch17: extcond.diff
Patch18: refreshtestarch.diff
Patch19: rpmrctests.diff
Patch20: waitlock.diff
Patch21: suspendlock.diff
Patch22: weakdeps.diff
Patch23: autodeps.diff
Patch24: brp.diff
Patch25: brpcompress.diff
Patch26: checkfilesnoinfodir.diff
Patch27: finddebuginfo.diff
Patch28: findksyms.diff
Patch29: findlang.diff
Patch30: macrosin.diff
Patch31: modalias.diff
Patch32: platformin.diff
Patch33: rpmpopt.diff
Patch34: rpmrc.diff
Patch35: taggedfileindex.diff
Patch36: rpmqpack.diff
Patch37: convertdb1static.diff
Patch38: build.diff
Patch39: modalias-kernel_module.diff
Patch40: files.diff
Patch41: debugedit-comp-dir.diff
Patch42: perlprov.diff
Patch43: rpm-shorten-changelog.diff
Patch44: debugsource-package.diff
Patch45: whatrequires-doc.diff
Patch46: remove-brp-strips.diff
Patch47: requires-ge-macro.diff
Patch48: debugedit-canon-fix.diff
Patch49: finddebuginfo-absolute-links.diff
Patch50: firmware.diff
Patch51: specfilemacro.diff
Patch52: modalias-encode.diff
Patch53: disttag-macro.diff
Patch54: buildidprov.diff
Patch55: debugsubpkg.diff
Patch56: debuglink.diff
Patch57: debuginfo-mono.patch
Patch58: lazystatfs.diff
Patch59: repackage-nomd5.diff
Patch60: safeugid.diff
Patch61: noprereqdeprec.diff
Patch62: pythondeps.diff
Patch63: fontprovides.diff
Patch64: rpm-gst-provides.patch
Patch65: langnoc.diff
Patch66: initscriptsprov.diff
Patch67: remove-translations.diff
Patch68: no_rep_autop.diff
Patch69: headeradddb.diff
Patch70: dbprivate.diff
Patch71: nobuildcolor.diff
Patch72: fileattrs.diff
Patch73: nomagiccheck.diff
Patch74: findsupplements.diff
Patch75: assumeexec.diff
Patch76: buildpipe.diff
Patch77: trailslash.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
# avoid bootstrapping problem
@ -177,11 +171,10 @@ rm -f rpmdb/db.h
%patch -P 10 -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19
%patch -P 20 -P 21 -P 22 -P 23 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
%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
%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
%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77
#chmod 755 scripts/find-supplements{,.ksyms}
#chmod 755 scripts/find-provides.ksyms scripts/find-requires.ksyms
#chmod 755 scripts/firmware.prov

View File

@ -1,13 +0,0 @@
Suppress berkeleydb error messages when doing 'rpm --verifydb'.
--- lib/rpmdb.c.orig 2011-05-12 14:08:07.000000000 +0000
+++ lib/rpmdb.c 2011-05-12 14:09:06.000000000 +0000
@@ -165,7 +165,7 @@ static dbiIndex rpmdbOpenIndex(rpmdb db,
uintId, uintCmp, NULL);
}
/* If primary got created, we can safely run without fsync */
- if ((dbiFlags(dbi) & DBI_CREATED) || db->cfg.db_no_fsync) {
+ if ((!verifyonly && (dbiFlags(dbi) & DBI_CREATED)) || db->cfg.db_no_fsync) {
rpmlog(RPMLOG_DEBUG, "disabling fsync on database\n");
db->cfg.db_no_fsync = 1;
dbSetFSync(db->db_dbenv, 0);

View File

@ -1,21 +0,0 @@
--- rpmio/macro.c.orig 2011-05-17 08:43:40.000000000 +0000
+++ rpmio/macro.c 2011-05-17 08:44:48.000000000 +0000
@@ -1016,12 +1016,12 @@ expandMacro(MacroBuf mb, const char *src
char *source = NULL;
/* Handle non-terminated substrings by creating a terminated copy */
- if (slen > 0) {
- source = xmalloc(slen + 1);
- strncpy(source, src, slen);
- source[slen] = '\0';
- s = source;
- }
+ if (!slen)
+ slen = strlen(src);
+ source = xmalloc(slen + 1);
+ strncpy(source, src, slen);
+ source[slen] = '\0';
+ s = source;
if (mb->buf == NULL) {
size_t blen = MACROBUFSIZ + strlen(s);

31
trailslash.diff Normal file
View File

@ -0,0 +1,31 @@
--- ./build/files.c.orig 2011-07-20 11:37:45.000000000 +0000
+++ ./build/files.c 2011-07-20 11:39:20.000000000 +0000
@@ -1678,9 +1678,6 @@ static rpmRC processBinaryFile(Package p
* /.././../usr/../bin//./sh
*/
diskPath = rpmGenPath(fl->buildRoot, NULL, fileName);
- /* Arrange trailing slash on directories */
- if (fl->isDir)
- diskPath = rstrcat(&diskPath, "/");
if (doGlob) {
ARGV_t argv = NULL;
@@ -1694,8 +1691,18 @@ static rpmRC processBinaryFile(Package p
goto exit;
}
+ /* Arrange trailing slash on directories */
+ if (fl->isDir)
+ diskPath = rstrcat(&diskPath, "/");
+
if (rpmGlob(diskPath, &argc, &argv) == 0 && argc >= 1) {
for (i = 0; i < argc; i++) {
+ if (fl->isDir) {
+ /* strip trailing slash again */
+ int l = strlen(argv[i]);
+ if (l > 1 && argv[i][l - 1] == '/')
+ argv[i][l - 1] = 0;
+ }
rc = addFile(fl, argv[i], NULL);
}
argvFree(argv);

View File

@ -1,49 +0,0 @@
Make 'rpm -Vp <rpm>' work again.
--- ./lib/rpmte.c.orig 2011-05-12 15:22:06.000000000 +0000
+++ ./lib/rpmte.c 2011-05-12 15:23:39.000000000 +0000
@@ -905,15 +905,19 @@ int rpmteProcess(rpmte te, pkgGoal goal)
}
}
- rpmteRunAllCollections(te, PLUGINHOOK_COLL_PRE_REMOVE);
-
- if (rpmteOpen(te, reset_fi)) {
+ if (goal == PKG_VERIFY) {
failed = rpmpsmRun(te->ts, te, goal);
- rpmteClose(te, reset_fi);
- }
+ } else {
+ rpmteRunAllCollections(te, PLUGINHOOK_COLL_PRE_REMOVE);
+
+ if (rpmteOpen(te, reset_fi)) {
+ failed = rpmpsmRun(te->ts, te, goal);
+ rpmteClose(te, reset_fi);
+ }
- rpmteRunAllCollections(te, PLUGINHOOK_COLL_POST_ADD);
- rpmteRunAllCollections(te, PLUGINHOOK_COLL_POST_ANY);
+ rpmteRunAllCollections(te, PLUGINHOOK_COLL_POST_ADD);
+ rpmteRunAllCollections(te, PLUGINHOOK_COLL_POST_ANY);
+ }
/* XXX should %pretrans failure fail the package install? */
if (failed && !scriptstage) {
--- ./lib/verify.c.orig 2011-05-12 15:22:01.000000000 +0000
+++ ./lib/verify.c 2011-05-12 15:22:49.000000000 +0000
@@ -267,11 +267,11 @@ static int rpmVerifyScript(rpmts ts, Hea
if (headerIsEntry(h, RPMTAG_VERIFYSCRIPT)) {
/* fake up a erasure transaction element */
- (void) rpmtsAddEraseElement(ts, h, -1);
-
- rc = (rpmteProcess(rpmtsElement(ts, 0), PKG_VERIFY) != RPMRC_OK);
-
+ rpmte p = rpmteNew(ts, h, TR_REMOVED, NULL, NULL);
+ rpmteSetHeader(p, h);
+ rc = (rpmteProcess(p, PKG_VERIFY) != RPMRC_OK);
/* clean up our fake transaction bits */
+ rpmteFree(p);
rpmtsEmpty(ts);
}