diff --git a/rpm-4.5.90-gstreamer-provides.patch b/rpm-4.5.90-gstreamer-provides.patch new file mode 100644 index 0000000..a9ebfe2 --- /dev/null +++ b/rpm-4.5.90-gstreamer-provides.patch @@ -0,0 +1,16 @@ +diff --git a/build/rpmfc.c b/build/rpmfc.c +index 94fb68e..525915b 100644 +--- a/build/rpmfc.c ++++ b/build/rpmfc.c +@@ -1093,6 +1093,11 @@ assert(s != NULL); + free(buf); + } + ++ /* Add possible GStreamer provides */ ++ if (!fc->skipProv && isDSO) { ++ xx = rpmfcHelper(fc, 'P', "gstreamer"); ++ } ++ + exit: + soname = _free(soname); + if (elf) (void) elf_end(elf); diff --git a/rpm-4.5.90-macro-args.patch b/rpm-4.5.90-macro-args.patch new file mode 100644 index 0000000..8c3e601 --- /dev/null +++ b/rpm-4.5.90-macro-args.patch @@ -0,0 +1,37 @@ +diff --git a/rpmio/macro.c b/rpmio/macro.c +index ad1f94a..1e292c6 100644 +--- a/rpmio/macro.c ++++ b/rpmio/macro.c +@@ -780,7 +780,7 @@ static const char * + grabArgs(MacroBuf mb, const rpmMacroEntry me, const char * se, + const char * lastc) + { +- const char *opts, *o, *ret; ++ const char *opts, *o; + char *args = NULL; + ARGV_t argv = NULL; + int argc = 0; +@@ -792,13 +792,10 @@ grabArgs(MacroBuf mb, const rpmMacroEntry me, const char * se, + + /* + * Make a copy of se up to lastc string that we can pass to argvSplit(). +- * Append the results to main argv, save return value. ++ * Append the results to main argv. + */ + { ARGV_t av = NULL; + char *s = xcalloc((lastc-se)+1, sizeof(*s)); +- +- /* XXX expandMacro() expects next \0 which can be beyond lastc */ +- ret = strchr(se, '\0'); + memcpy(s, se, (lastc-se)); + + argvSplit(&av, s, " "); +@@ -884,7 +881,7 @@ grabArgs(MacroBuf mb, const rpmMacroEntry me, const char * se, + + exit: + argvFree(argv); +- return ret; ++ return *lastc ? lastc + 1 : lastc; + } + + /** diff --git a/rpm.spec b/rpm.spec index e3332be..d957d52 100644 --- a/rpm.spec +++ b/rpm.spec @@ -18,7 +18,7 @@ Summary: The RPM package management system Name: rpm Version: %{rpmver} -Release: 0.%{snapver}.6 +Release: 0.%{snapver}.7 Group: System Environment/Base Url: http://www.rpm.org/ Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2 @@ -28,6 +28,7 @@ Source1: db-%{bdbver}.tar.gz Patch0: rpm-4.5.90-devel-autodep.patch Patch1: rpm-4.5.90-pkgconfig-path.patch +Patch2: rpm-4.5.90-gstreamer-provides.patch # XXX only create provides for pkgconfig and libtool initially Patch100: rpm-4.6.x-no-pkgconfig-reqs.patch @@ -40,6 +41,7 @@ Patch204: rpm-4.5.90-patches.patch Patch205: rpm-4.5.90-topdir.patch Patch206: rpm-4.5.90-rpmbuild-dirs.patch Patch207: rpm-4.5.90-cpio-hardlink.patch +Patch208: rpm-4.5.90-macro-args.patch # These are not yet upstream Patch300: rpm-4.5.90-posttrans.patch @@ -168,6 +170,7 @@ that will manipulate RPM packages and databases. %setup -q -n %{name}-%{srcver} %{?with_int_bdb:-a 1} %patch0 -p1 -b .devel-autodep %patch1 -p1 -b .pkgconfig-path +%patch2 -p1 -b .gstreamer-prov %patch100 -p1 -b .pkgconfig-deps %patch200 -p1 -b .archivesize @@ -178,6 +181,7 @@ that will manipulate RPM packages and databases. %patch205 -p1 -b .topdir %patch206 -p1 -b .rpmbuild-dirs %patch207 -p1 -b .cpio-hardlink +%patch208 -p1 -b .macro-args # needs a bit of upstream love first... #%patch300 -p1 -b .posttrans @@ -356,6 +360,10 @@ exit 0 %doc doc/librpm/html/* %changelog +* Thu Sep 11 2008 Panu Matilainen +- add hack to support extracting gstreamer plugin provides (#438225) +- fix another macro argument handling regression (#461180) + * Thu Sep 11 2008 Jindrich Novy - create directory structure for rpmbuild prior to build if it doesn't exist (#455387) - create _topdir if it doesn't exist when installing SRPM