Automatic import for version 5.4.4

This commit is contained in:
Rosa 2012-02-01 18:08:07 +04:00
parent d5d753e187
commit d5115e0f47
57 changed files with 3293 additions and 134 deletions

View file

@ -1,3 +1,3 @@
sources:
"cpu-os-macros.tar.gz": 68dbf0b8b9c625c59ad607cf0eda665087cead58
"rpm-5.3.12.tar.xz": 81cdbf2d0f432abef56444eeabf9c2eab1d25f8a
"cpu-os-macros.tar.gz": 99c5fa561dd0d897bfa8cd97f2aa60781bc578d4
"rpm-5.4.4.tar.gz": 0c51a217ad7058f9bd79bdfd2fe8602d6220730e

View file

@ -57,7 +57,6 @@
rpm-helper>rpm
# enabling this by default is to be dropped ASAP
%_dependency_whiteout %_dependency_whiteout_mandriva
%_legacy_compat_non_pre_scripts_dont_fail 1
%_legacy_compat_all \

View file

@ -1,22 +1,32 @@
--- rpm-5.3.12/lib/rpmds.c.55810~ 2011-07-12 18:15:29.016085065 +0200
+++ rpm-5.3.12/lib/rpmds.c 2011-07-12 18:15:56.300506314 +0200
@@ -4333,7 +4333,7 @@ assert((rpmdsFlags(B) & RPMSENSE_SENSEMA
--- rpm-5.3.12/lib/rpmds.c.55810~ 2011-07-12 11:54:08.000000000 +0200
+++ rpm-5.3.12/lib/rpmds.c 2011-07-13 16:51:59.699924504 +0200
@@ -4333,9 +4333,10 @@ assert((rpmdsFlags(B) & RPMSENSE_SENSEMA
case 'D': ix = RPMEVR_D; /*@switchbreak@*/break;
}
#if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */
- if(ix == RPMEVR_R && (bFlags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
- && *(b->F[ix]) == '\0')
- break;
+ if(ix >= RPMEVR_R && (bFlags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
&& *(b->F[ix]) == '\0')
break;
+ && !(ix == RPMEVR_D && (bFlags & RPMSENSE_LESS))
+ && *(b->F[ix]) == '\0')
+ break;
if (a->F[ix] && b->F[ix])
--- rpm-5.3.12/rpmdb/rpmevr.c.55810~ 2011-07-12 18:15:40.964269535 +0200
+++ rpm-5.3.12/rpmdb/rpmevr.c 2011-07-12 18:15:42.897299380 +0200
@@ -286,7 +286,7 @@ assert(b->F[RPMEVR_D] != NULL);
#else
if (a->F[ix] && *a->F[ix] && b->F[ix] && *b->F[ix])
--- rpm-5.3.12/rpmdb/rpmevr.c.55810~ 2011-07-12 11:54:27.000000000 +0200
+++ rpm-5.3.12/rpmdb/rpmevr.c 2011-07-13 16:51:59.700924519 +0200
@@ -286,9 +286,10 @@ assert(b->F[RPMEVR_D] != NULL);
case 'D': ix = RPMEVR_D; /*@switchbreak@*/break;
}
#if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */
- if(ix == RPMEVR_R && (b->Flags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
- && *(b->F[ix]) == '\0')
- break;
+ if(ix >= RPMEVR_R && (b->Flags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
&& *(b->F[ix]) == '\0')
break;
+ && !(ix == RPMEVR_D && (b->Flags & RPMSENSE_LESS))
+ && *(b->F[ix]) == '\0')
+ break;
#endif
rc = compare_values(a->F[ix], b->F[ix]);

61
rpm-5.4.3-no-libsql.patch Normal file
View file

@ -0,0 +1,61 @@
--- rpm-5.4.3/lib/Makefile.am.nolibsql~ 2011-08-15 00:57:10.000000000 +0200
+++ rpm-5.4.3/lib/Makefile.am 2011-10-15 18:58:07.787748136 +0200
@@ -49,7 +49,7 @@ EXTRA_DIST = librpm.vers
EXTRA_PROGRAMS = tevr tgi tsbt
pkglibdir = @USRLIBRPM@
-pkglib_LTLIBRARIES = libsql.la
+#pkglib_LTLIBRARIES = libsql.la
pkgincdir = $(pkgincludedir)$(WITH_PATH_VERSIONED_SUFFIX)
pkginc_HEADERS = \
@@ -84,11 +84,12 @@ if ENABLE_BUILD_MAXEXTLIBDEP
librpm_la_LDFLAGS += $(LDFLAGS)
librpm_la_LIBADD += $(LIBS)
endif
-librpm.la: $(librpm_la_OBJECTS) $(librpm_la_DEPENDENCIES)
- $(librpm_la_LINK) -rpath $(usrlibdir) $(librpm_la_OBJECTS) $(librpm_la_LIBADD)
+#librpm.la: $(librpm_la_OBJECTS) $(librpm_la_DEPENDENCIES)
+# $(librpm_la_LINK) -rpath $(usrlibdir) $(librpm_la_OBJECTS) $(librpm_la_LIBADD)
-libsql_la_SOURCES = libsql.c
-libsql_la_LIBADD = librpm.la $(RPMDB_LDADD_COMMON)
+# fudge it for now...
+#libsql_la_SOURCES = libsql.c
+#libsql_la_LIBADD = librpm.la $(RPMDB_LDADD_COMMON)
install-data-hook:
if !ENABLE_BUILD_LAFILES
--- rpm-5.4.3/lib/Makefile.in.nolibsql~ 2011-10-01 17:02:20.000000000 +0200
+++ rpm-5.4.3/lib/Makefile.in 2011-10-15 18:57:59.234743874 +0200
@@ -652,7 +652,7 @@ RPMBUILD_LDADD_COMMON = \
$(RPM_LDADD_COMMON)
EXTRA_DIST = librpm.vers
-pkglib_LTLIBRARIES = libsql.la
+#pkglib_LTLIBRARIES = libsql.la
pkgincdir = $(pkgincludedir)$(WITH_PATH_VERSIONED_SUFFIX)
pkginc_HEADERS = \
rpmcli.h rpmversion.h rpmds.h rpmfi.h rpmgi.h rpmps.h \
@@ -676,8 +676,8 @@ librpm_la_SOURCES = \
librpm_la_LDFLAGS = -release $(LT_CURRENT).$(LT_REVISION) \
$(am__append_1) $(am__append_3)
librpm_la_LIBADD = $(am__append_2) $(am__append_4)
-libsql_la_SOURCES = libsql.c
-libsql_la_LIBADD = librpm.la $(RPMDB_LDADD_COMMON)
+#libsql_la_SOURCES = libsql.c
+#libsql_la_LIBADD = librpm.la $(RPMDB_LDADD_COMMON)
BUILT_SOURCES = # rpmlib.lcd
#.PHONY: lcov-upload
@@ -788,8 +788,8 @@ clean-usrlibLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libsql.la: $(libsql_la_OBJECTS) $(libsql_la_DEPENDENCIES)
- $(LINK) -rpath $(pkglibdir) $(libsql_la_OBJECTS) $(libsql_la_LIBADD) $(LIBS)
+#libsql.la: $(libsql_la_OBJECTS) $(libsql_la_DEPENDENCIES)
+# $(LINK) -rpath $(pkglibdir) $(libsql_la_OBJECTS) $(libsql_la_LIBADD) $(LIBS)
tevr$(EXEEXT): $(tevr_OBJECTS) $(tevr_DEPENDENCIES)
@rm -f tevr$(EXEEXT)
$(LINK) $(tevr_OBJECTS) $(tevr_LDADD) $(LIBS)

View file

@ -0,0 +1,159 @@
--- rpm-5.4.4/build/pack.c.pkgcheck~ 2010-10-18 09:00:50.000000000 +0200
+++ rpm-5.4.4/build/pack.c 2011-12-22 21:06:55.481563113 +0100
@@ -1127,6 +1127,25 @@ static rpmTag copyTags[] = {
0
};
+static rpmRC checkPackages(const char *pkgcheck)
+{
+ int fail = rpmExpandNumeric("%{?_nonzero_exit_pkgcheck_terminate_build}");
+ int xx;
+
+ rpmlog(RPMLOG_NOTICE, _("Executing \"%s\":\n"), pkgcheck);
+ xx = system(pkgcheck);
+ if (WEXITSTATUS(xx) == -1 || WEXITSTATUS(xx) == 127) {
+ rpmlog(RPMLOG_ERR, _("Execution of \"%s\" failed.\n"), pkgcheck);
+ if (fail) return 127;
+ }
+ if (WEXITSTATUS(xx) != 0) {
+ rpmlog(RPMLOG_ERR, _("Package check \"%s\" failed.\n"), pkgcheck);
+ if (fail) return RPMRC_FAIL;
+ }
+
+ return RPMRC_OK;
+}
+
rpmRC packageBinaries(Spec spec)
{
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
@@ -1136,6 +1155,7 @@ rpmRC packageBinaries(Spec spec)
Package pkg;
rpmRC rc = RPMRC_OK; /* assume success */
int xx;
+ ARGV_t pkglist = NULL;
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
const char *fn;
@@ -1233,11 +1253,46 @@ assert(csa->fi != NULL);
csa->cpioFdIn = fdFree(csa->cpioFdIn, "init (packageBinaries)");
/*@=nullpass =onlytrans =refcounttrans @*/
/*@=type@*/
+ if (rc == RPMRC_OK) {
+ /* Do check each written package if enabled */
+ char *pkgcheck = rpmExpand("%{?_build_pkgcheck} ", fn, NULL);
+ if (pkgcheck[0] != ' ') {
+ rc = checkPackages(pkgcheck);
+ }
+ pkgcheck = _free(pkgcheck);
+ xx = argvAdd(&pkglist, fn);
+ }
fn = _free(fn);
- if (rc)
+ if (rc) {
+ pkglist = argvFree(pkglist);
goto exit;
+ }
}
-
+
+ /* Now check the package set if enabled */
+ if (pkglist != NULL) {
+ char *pkgcheck_set = NULL;
+ char *pkgs = NULL;
+ size_t pkglen = 0;
+ int i;
+ for (i = 0; i < argvCount(pkglist); i++)
+ pkglen += strlen(pkglist[i]) + 1;
+ pkgs = xcalloc(1, pkglen);
+ for (i = 0; i < argvCount(pkglist); i++) {
+ if (i)
+ strcat(pkgs, " ");
+ strcat(pkgs, pkglist[i]);
+ }
+
+ pkgcheck_set = rpmExpand("%{?_build_pkgcheck_set} ", pkgs, NULL);
+ if (pkgcheck_set[0] != ' ') { /* run only if _build_pkgcheck_set is defined */
+ rc = checkPackages(pkgcheck_set);
+ }
+ pkgcheck_set = _free(pkgcheck_set);
+ pkglist = argvFree(pkglist);
+ pkgs = _free(pkgs);
+ }
+
exit:
return rc;
@@ -1310,6 +1365,7 @@ rpmRC packageSources(Spec spec)
/* XXX this should be %_srpmdir */
{ const char *srcrpmdir = rpmGetPath("%{_srcrpmdir}/", NULL);
const char *fn = rpmGetPath("%{_srcrpmdir}/", spec->sourceRpmName,NULL);
+ const char *pkgcheck = rpmExpand("%{?_build_pkgcheck_srpm} ", fn, NULL);
rc = rpmioMkpath(srcrpmdir, 0755, -1, -1);
@@ -1333,6 +1389,11 @@ assert(csa->fi != NULL);
rc = writeRPM(&spec->sourceHeader, &spec->sourcePkgId, fn,
csa, spec->passPhrase, &spec->cookie, spec->dig);
+ /* Do check SRPM package if enabled */
+ if (rc == RPMRC_OK && pkgcheck[0] != ' ') {
+ rc = checkPackages(pkgcheck);
+ }
+
/*@-onlytrans@*/
csa->fi->te = _free(csa->fi->te); /* XXX memory leak */
/*@=onlytrans@*/
@@ -1343,6 +1404,7 @@ assert(csa->fi != NULL);
/*@=type@*/
srcrpmdir = _free(srcrpmdir);
fn = _free(fn);
+ pkgcheck = _free(pkgcheck);
}
rc = (rc ? RPMRC_FAIL : RPMRC_OK);
--- rpm-5.4.4/macros/macros.rpmbuild.in.pkgcheck~ 2011-12-22 21:06:55.422563184 +0100
+++ rpm-5.4.4/macros/macros.rpmbuild.in 2011-12-22 21:06:55.484563110 +0100
@@ -193,6 +193,30 @@ echo "Patch #%{__patch_number} (%{basena
%_missing_doc_files_terminate_build 1
#
+# Program to call for each successfully built and written binary package.
+# The package name is passed to the program as a command-line argument.
+#
+#%_build_pkgcheck %{_bindir}/rpmlint
+
+#
+# Program to call for the whole binary package set after build.
+# The package set is passed to the program via command-line arguments.
+#
+#%_build_pkgcheck_set %{_bindir}/rpmlint
+
+#
+# Program to call for successfully built and written SRPM.
+# The package name is passed to the program as a command-line argument.
+#
+#%_build_pkgcheck_srpm %{_bindir}/rpmlint
+
+#
+# Should the build of packages fail if package checker (if defined) returns
+# non-zero exit status?
+#
+#%_nonzero_exit_pkgcheck_terminate_build 1
+
+#
# Should an ELF file processed by find-debuginfo.sh having no build ID
# terminate a build? This is left undefined to disable it and defined to
# enable.
--- rpm-5.4.4/macros/mandriva.in.pkgcheck~ 2011-12-22 21:06:55.467563130 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-12-22 21:07:48.621500050 +0100
@@ -124,6 +124,10 @@ end\
%_duplicate_files_terminate_build 1
%_unpackaged_subdirs_terminate_build 0
+%_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc
+%_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc
+%_nonzero_exit_pkgcheck_terminate_build 1
+
%_enable_debug_packages 1

View file

@ -0,0 +1,10 @@
--- rpm-5.4.4/build/parseSpec.c.specfile~ 2011-11-11 13:41:29.137827186 +0100
+++ rpm-5.4.4/build/parseSpec.c 2011-11-11 13:42:12.938874762 +0100
@@ -542,6 +542,7 @@ int parseSpec(rpmts ts, const char *spec
* /.././../usr/../bin//./sh (XXX FIXME: dots not handled yet)
*/
spec->specFile = rpmGetPath(specFile, NULL);
+ addMacro(spec->macros, "_specfile", NULL, spec->specFile, RMIL_SPEC);
spec->fileStack = newOpenFileInfo();
spec->fileStack->fileName = xstrdup(spec->specFile);

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/rpmdb/rpmdb.c.repackage~ 2011-11-24 16:28:22.436460713 +0100
+++ rpm-5.4.4/rpmdb/rpmdb.c 2011-11-24 16:28:30.107464575 +0100
@@ -2758,7 +2758,7 @@ int rpmdbAdd(rpmdb db, int iid, Header h
if (_rpmdb_debug)
fprintf(stderr, "--> %s(%p, %u, %p, %p) h# %u\n", __FUNCTION__, db, (unsigned)iid, h, ts, (unsigned)hdrNum);
-assert(headerIsEntry(h, RPMTAG_REMOVETID) == 0); /* XXX sanity */
+//assert(headerIsEntry(h, RPMTAG_REMOVETID) == 0); /* XXX sanity */
/* Add the install transaction id. */
if (iid != 0 && iid != -1) {

View file

@ -0,0 +1,75 @@
--- rpm-5.4.4/lib/rpmfc.c.drop_deps~ 2011-04-12 09:59:26.000000000 +0200
+++ rpm-5.4.4/lib/rpmfc.c 2011-12-22 20:21:07.089502076 +0100
@@ -1658,6 +1658,64 @@ static int rpmfcGenerateScriptletDeps(co
return rc;
}
+static void removeSillyDeps(Header h) {
+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
+ int xx, i, rnum, removed = 0;
+ const char **deps = NULL;
+ const char **versions = NULL;
+ evrFlags *flags = NULL;
+
+ he->tag = RPMTAG_REQUIRENAME;
+ xx = headerGet(h, he, 0);
+ deps = he->p.argv;
+ rnum = he->c;
+
+ he->tag = RPMTAG_REQUIREVERSION;
+ xx = headerGet(h, he, 0);
+ versions = he->p.argv;
+
+ he->tag = RPMTAG_REQUIREFLAGS;
+ xx = headerGet(h, he, 0);
+ flags = (evrFlags*)he->p.ui32p;
+
+ for (i = 0; i < rnum-removed; i++) {
+ if (removed) {
+ deps[i] = deps[i+removed];
+ versions[i] = versions[i+removed];
+ flags[i] = flags[i+removed];
+ }
+ rpmds req = rpmdsSingle(RPMTAG_REQUIRENAME, deps[i], versions[i], flags[i]);
+ rpmds prov = rpmdsNew(h, (*deps[i] == '/' && !*versions[i]) ? RPMTAG_BASENAMES : RPMTAG_PROVIDENAME, 0);
+ if (rpmdsMatch(req, prov)) {
+ if (flags[i] & RPMSENSE_SCRIPT_PRE)
+ rpmlog(RPMLOG_ERR, "Requires(pre): on dependency provided by self: %s\n", rpmdsDNEVR(req));
+ else {
+ rpmlog(RPMLOG_NOTICE, "Removing dependency on self: %s\n", rpmdsDNEVR(req));
+ removed++;
+ i--;
+ }
+ }
+ req = rpmdsFree(req);
+ prov = rpmdsFree(prov);
+ }
+ if (removed) {
+ he->tag = RPMTAG_REQUIRENAME;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = deps;
+ he->c -= removed;
+ headerMod(h, he, 0);
+
+ he->tag = RPMTAG_REQUIREVERSION;
+ he->p.argv = versions;
+ headerMod(h, he, 0);
+
+ he->tag = RPMTAG_REQUIREFLAGS;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = (uint32_t*)flags;
+ headerMod(h, he, 0);
+ }
+
+}
rpmRC rpmfcGenerateDepends(void * specp, void * pkgp)
{
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
@@ -1691,6 +1749,7 @@ rpmRC rpmfcGenerateDepends(void * specp,
if (internaldeps == 0) {
/* ... then generate dependencies using %{__find_requires} et al. */
rc = rpmfcGenerateDependsHelper(spec, pkg, fi);
+ removeSillyDeps(pkg->header);
printDeps(pkg->header);
return rc;
}

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/macros/mandriva.in.compress_debug~ 2011-11-29 16:06:45.381159706 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-11-29 16:07:14.313207927 +0100
@@ -141,7 +141,7 @@ end\
# - %{mklibname test 1 -d 0 -s} => libtest1_0-static-devel
%mklibname(ds) %{_lib}%{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel}
-%debugcflags %{?_enable_debug_packages:-gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2}
+%debugcflags %{?_enable_debug_packages:-Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2}
# common compilation flags

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/scripts/find-debuginfo.sh.gdb_index~ 2011-11-28 17:08:42.543140658 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-11-28 17:08:45.829144152 +0100
@@ -226,6 +226,8 @@ while read nlinks inum f; do
$strict && exit 2
fi
+ [ -x /usr/bin/gdb-add-index ] && /usr/bin/gdb-add-index "$f" > /dev/null 2>&1
+
# A binary already copied into /usr/lib/debug doesn't get stripped,
# just has its file names collected and adjusted.
case "$dn" in

View file

@ -0,0 +1,114 @@
--- rpm-5.4.4/tools/debugedit.c.debugedit_dwarf4~ 2011-11-28 16:29:10.859401835 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-11-28 16:36:32.391927409 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010 Red Hat, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010, 2011 Red Hat, Inc.
Written by Alexander Larsson <alexl@redhat.com>, 2002
Based on code by Jakub Jelinek <jakub@redhat.com>, 2001.
@@ -70,6 +70,10 @@
#include <rpmtag.h>
#define DW_TAG_partial_unit 0x3c
+#define DW_FORM_sec_offset 0x17
+#define DW_FORM_exprloc 0x18
+#define DW_FORM_flag_present 0x19
+#define DW_FORM_ref_sig8 0x20
char *base_dir = NULL;
char *dest_dir = NULL;
@@ -246,6 +250,7 @@ static struct
#define DEBUG_STR 8
#define DEBUG_FRAME 9
#define DEBUG_RANGES 10
+#define DEBUG_TYPES 11
{ ".debug_info", NULL, NULL, 0, 0, 0 },
{ ".debug_abbrev", NULL, NULL, 0, 0, 0 },
{ ".debug_line", NULL, NULL, 0, 0, 0 },
@@ -257,6 +262,7 @@ static struct
{ ".debug_str", NULL, NULL, 0, 0, 0 },
{ ".debug_frame", NULL, NULL, 0, 0, 0 },
{ ".debug_ranges", NULL, NULL, 0, 0, 0 },
+ { ".debug_types", NULL, NULL, 0, 0, 0 },
{ NULL, NULL, NULL, 0, 0, 0 }
};
@@ -349,7 +355,8 @@ no_memory:
goto no_memory;
}
form = read_uleb128 (ptr);
- if (form == 2 || form > DW_FORM_indirect)
+ if (form == 2
+ || (form > DW_FORM_flag_present && form != DW_FORM_ref_sig8))
{
error (0, 0, "%s: Unknown DWARF DW_FORM_%d", dso->filename, form);
htab_delete (h);
@@ -519,7 +526,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
}
value = read_16 (ptr);
- if (value != 2 && value != 3)
+ if (value != 2 && value != 3 && value != 4)
{
error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
value);
@@ -535,8 +542,8 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
return 1;
}
- opcode_base = ptr[4];
- ptr = dir = ptr + 4 + opcode_base;
+ opcode_base = ptr[4 + (value >= 4)];
+ ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
/* dir table: */
value = 1;
@@ -763,7 +770,8 @@ edit_attributes (DSO *dso, unsigned char
{
if (t->attr[i].attr == DW_AT_stmt_list)
{
- if (form == DW_FORM_data4)
+ if (form == DW_FORM_data4
+ || form == DW_FORM_sec_offset)
{
list_offs = do_read_32_relocated (ptr);
found_list_offs = 1;
@@ -866,6 +874,8 @@ edit_attributes (DSO *dso, unsigned char
else
ptr += 4;
break;
+ case DW_FORM_flag_present:
+ break;
case DW_FORM_addr:
ptr += ptr_size;
break;
@@ -880,10 +890,12 @@ edit_attributes (DSO *dso, unsigned char
break;
case DW_FORM_ref4:
case DW_FORM_data4:
+ case DW_FORM_sec_offset:
ptr += 4;
break;
case DW_FORM_ref8:
case DW_FORM_data8:
+ case DW_FORM_ref_sig8:
ptr += 8;
break;
case DW_FORM_sdata:
@@ -912,6 +924,7 @@ edit_attributes (DSO *dso, unsigned char
form = DW_FORM_block1;
break;
case DW_FORM_block:
+ case DW_FORM_exprloc:
len = read_uleb128 (ptr);
form = DW_FORM_block1;
assert (len < UINT_MAX);
@@ -1215,7 +1228,7 @@ edit_dwarf2 (DSO *dso)
}
cu_version = read_16 (ptr);
- if (cu_version != 2 && cu_version != 3)
+ if (cu_version != 2 && cu_version != 3 && cu_version != 4)
{
error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
cu_version);

View file

@ -0,0 +1,17 @@
--- rpm-5.4.4/tools/debugedit.c.stabs_fail~ 2011-11-28 16:26:30.102211728 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-11-28 16:29:10.859401835 +0100
@@ -1604,10 +1604,11 @@ main (int argc, char *argv[])
case SHT_MIPS_DWARF:
name = strptr (dso, dso->ehdr.e_shstrndx, dso->shdr[i].sh_name);
/* TODO: Handle stabs */
-#if 0
if (strcmp (name, ".stab") == 0)
- edit_stabs (dso, i);
-#endif
+ {
+ fprintf (stderr, "Stabs debuginfo not supported: %s\n", file);
+ exit (1);
+ }
if (strcmp (name, ".debug_info") == 0)
edit_dwarf2 (dso);

View file

@ -0,0 +1,20 @@
--- rpm-5.4.4/tools/debugedit.c.error_messages 2011-11-28 16:22:43.045944430 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-11-28 16:22:58.231962263 +0100
@@ -703,7 +703,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
size_t len = (abs_dir_cnt + abs_file_cnt) * (base_len - dest_len);
if (len == 1)
- error (EXIT_FAILURE, 0, "-b arg has to be either the same length as -d arg, or more than 1 char shorter");
+ error (EXIT_FAILURE, 0, "-b arg has to be either the same length as -d arg, or more than 1 char longer");
memset (ptr, 'X', len - 1);
ptr += len - 1;
*ptr++ = '\0';
@@ -1540,7 +1540,7 @@ main (int argc, char *argv[])
}
if (strlen (dest_dir) > strlen (base_dir))
{
- fprintf (stderr, "Only dest dir longer than base dir not supported\n");
+ fprintf (stderr, "Dest dir longer than base dir is not supported\n");
exit (1);
}
}

View file

@ -0,0 +1,18 @@
--- rpm-5.4.4/tools/debugedit.c.debug_macro~ 2011-12-16 16:14:38.049872549 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-12-20 11:51:58.427115549 +0100
@@ -251,6 +251,7 @@ static struct
#define DEBUG_FRAME 9
#define DEBUG_RANGES 10
#define DEBUG_TYPES 11
+#define DEBUG_MACRO 12
{ ".debug_info", NULL, NULL, 0, 0, 0 },
{ ".debug_abbrev", NULL, NULL, 0, 0, 0 },
{ ".debug_line", NULL, NULL, 0, 0, 0 },
@@ -263,6 +264,7 @@ static struct
{ ".debug_frame", NULL, NULL, 0, 0, 0 },
{ ".debug_ranges", NULL, NULL, 0, 0, 0 },
{ ".debug_types", NULL, NULL, 0, 0, 0 },
+ { ".debug_macro", NULL, NULL, 0, 0, 0 },
{ NULL, NULL, NULL, 0, 0, 0 }
};

View file

@ -0,0 +1,99 @@
--- rpm-5.4.4/tools/debugedit.c.recompute~ 2011-11-28 16:17:11.223517307 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-11-28 16:17:32.113546358 +0100
@@ -464,6 +464,14 @@ canonicalize_path (const char *s, char *
return rv;
}
+static int dirty_elf;
+static void
+dirty_section (unsigned int sec)
+{
+ elf_flagdata (debug_sections[sec].elf_data, ELF_C_SET, ELF_F_DIRTY);
+ dirty_elf = 1;
+}
+
static int
has_prefix (const char *str,
const char *prefix)
@@ -654,6 +662,8 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
size_t len = strlen ((char *)srcptr) + 1;
const unsigned char *readptr = srcptr;
+ char *orig = strdup ((const char *) srcptr);
+
if (*srcptr == '/' && has_prefix ((char *)srcptr, base_dir))
{
if (dest_len < base_len)
@@ -670,8 +680,9 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
shrank -= len;
ptr += len;
- elf_flagdata (debug_sections[DEBUG_STR].elf_data,
- ELF_C_SET, ELF_F_DIRTY);
+ if (memcmp (orig, ptr - len, len))
+ dirty_section (DEBUG_STR);
+ free (orig);
}
if (shrank > 0)
@@ -713,8 +724,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
len - base_len);
ptr += dest_len - base_len;
}
- elf_flagdata (debug_sections[DEBUG_STR].elf_data,
- ELF_C_SET, ELF_F_DIRTY);
+ dirty_section (DEBUG_STR);
}
else if (ptr != srcptr)
memmove (ptr, srcptr, len);
@@ -782,11 +792,9 @@ edit_attributes (DSO *dso, unsigned char
}
- elf_flagdata (debug_sections[DEBUG_INFO].elf_data,
- ELF_C_SET, ELF_F_DIRTY);
+ dirty_section (DEBUG_INFO);
}
}
-
else if (form == DW_FORM_strp &&
debug_sections[DEBUG_STR].data)
{
@@ -809,8 +817,7 @@ edit_attributes (DSO *dso, unsigned char
memmove (dir + dest_len, dir + base_len,
strlen (dir + base_len) + 1);
}
- elf_flagdata (debug_sections[DEBUG_STR].elf_data,
- ELF_C_SET, ELF_F_DIRTY);
+ dirty_section (DEBUG_STR);
}
}
}
@@ -849,8 +856,7 @@ edit_attributes (DSO *dso, unsigned char
memmove (name + dest_len, name + base_len,
strlen (name + base_len) + 1);
}
- elf_flagdata (debug_sections[DEBUG_STR].elf_data,
- ELF_C_SET, ELF_F_DIRTY);
+ dirty_section (DEBUG_STR);
}
}
@@ -1387,6 +1393,9 @@ handle_build_id (DSO *dso, Elf_Data *bui
exit (1);
}
+ if (!dirty_elf)
+ goto print;
+
if (elf_update (dso->elf, ELF_C_NULL) < 0)
{
fprintf (stderr, "Failed to update file: %s\n",
@@ -1471,6 +1480,7 @@ handle_build_id (DSO *dso, Elf_Data *bui
elf_flagdata (build_id, ELF_C_SET, ELF_F_DIRTY);
+ print:
/* Now format the build ID bits in hex to print out. */
{
const rpmuint8_t * id = (rpmuint8_t *)build_id->d_buf + build_id_offset;

View file

@ -0,0 +1,18 @@
--- rpm-5.4.4/tools/debugedit.c.unused_variable~ 2011-11-28 16:22:58.231962263 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-11-28 16:26:30.102211728 +0100
@@ -378,7 +378,6 @@ static char *
canonicalize_path (const char *s, char *d)
{
char *rv = d;
- const char *sroot;
char *droot;
if (IS_DIR_SEPARATOR (*s))
@@ -394,7 +393,6 @@ canonicalize_path (const char *s, char *
s++;
}
droot = d;
- sroot = s;
while (*s)
{

View file

@ -0,0 +1,374 @@
--- rpm-5.4.4/tools/debugedit.c.whitespace~ 2011-11-28 15:40:48.395405934 +0100
+++ rpm-5.4.4/tools/debugedit.c 2011-11-28 16:15:17.538359147 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009 Red Hat, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010 Red Hat, Inc.
Written by Alexander Larsson <alexl@redhat.com>, 2002
Based on code by Jakub Jelinek <jakub@redhat.com>, 2001.
@@ -470,13 +470,13 @@ has_prefix (const char *str,
{
size_t str_len;
size_t prefix_len;
-
+
str_len = strlen (str);
prefix_len = strlen (prefix);
if (str_len < prefix_len)
return 0;
-
+
return strncmp (str, prefix, prefix_len) == 0;
}
@@ -494,9 +494,9 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
if (phase != 0)
return 0;
-
+
ptr += off;
-
+
endcu = ptr + 4;
endcu += read_32 (ptr);
if (endcu == ptr + 0xffffffff)
@@ -528,10 +528,10 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
dso->filename);
return 1;
}
-
+
opcode_base = ptr[4];
ptr = dir = ptr + 4 + opcode_base;
-
+
/* dir table: */
value = 1;
while (*ptr != 0)
@@ -626,12 +626,12 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
}
free (s);
-
+
read_uleb128 (ptr);
read_uleb128 (ptr);
}
++ptr;
-
+
if (dest_dir)
{
unsigned char *srcptr, *buf = NULL;
@@ -657,11 +657,11 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
if (*srcptr == '/' && has_prefix ((char *)srcptr, base_dir))
{
if (dest_len < base_len)
- ++abs_dir_cnt;
+ ++abs_dir_cnt;
memcpy (ptr, dest_dir, dest_len);
ptr += dest_len;
readptr += base_len;
- }
+ }
srcptr += len;
shrank += srcptr - readptr;
@@ -670,9 +670,9 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
shrank -= len;
ptr += len;
- elf_flagdata (debug_sections[DEBUG_STR].elf_data,
- ELF_C_SET, ELF_F_DIRTY);
- }
+ elf_flagdata (debug_sections[DEBUG_STR].elf_data,
+ ELF_C_SET, ELF_F_DIRTY);
+ }
if (shrank > 0)
{
@@ -680,7 +680,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
error (EXIT_FAILURE, 0,
"canonicalization unexpectedly shrank by one character");
else
- {
+ {
memset (ptr, 'X', shrank);
ptr += shrank;
*ptr++ = '\0';
@@ -734,8 +734,6 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
return 0;
}
-
-
static unsigned char *
edit_attributes (DSO *dso, unsigned char *ptr, struct abbrev_tag *t, int phase)
{
@@ -752,7 +750,6 @@ edit_attributes (DSO *dso, unsigned char
rpmuint32_t form = t->attr[i].form;
size_t len = 0;
size_t base_len, dest_len;
-
while (1)
{
@@ -766,14 +763,14 @@ edit_attributes (DSO *dso, unsigned char
}
if (t->attr[i].attr == DW_AT_comp_dir)
- {
- if ( form == DW_FORM_string )
- {
+ {
+ if (form == DW_FORM_string)
+ {
free (comp_dir);
comp_dir = strdup ((char *)ptr);
if (phase == 1 && dest_dir && has_prefix ((char *)ptr, base_dir))
- {
+ {
base_len = strlen (base_dir);
dest_len = strlen (dest_dir);
@@ -783,15 +780,16 @@ edit_attributes (DSO *dso, unsigned char
memset(ptr + dest_len, '/',
base_len - dest_len);
- }
+
+ }
elf_flagdata (debug_sections[DEBUG_INFO].elf_data,
ELF_C_SET, ELF_F_DIRTY);
- }
- }
-
+ }
+ }
+
else if (form == DW_FORM_strp &&
debug_sections[DEBUG_STR].data)
- {
+ {
char *dir;
dir = (char *) debug_sections[DEBUG_STR].data
@@ -801,21 +799,21 @@ edit_attributes (DSO *dso, unsigned char
comp_dir = strdup (dir);
if (phase == 1 && dest_dir && has_prefix (dir, base_dir))
- {
+ {
base_len = strlen (base_dir);
dest_len = strlen (dest_dir);
memcpy (dir, dest_dir, dest_len);
if (dest_len < base_len)
- {
+ {
memmove (dir + dest_len, dir + base_len,
strlen (dir + base_len) + 1);
- }
+ }
elf_flagdata (debug_sections[DEBUG_STR].elf_data,
ELF_C_SET, ELF_F_DIRTY);
- }
- }
- }
+ }
+ }
+ }
else if ((t->tag == DW_TAG_compile_unit
|| t->tag == DW_TAG_partial_unit)
&& t->attr[i].attr == DW_AT_name
@@ -823,9 +821,9 @@ edit_attributes (DSO *dso, unsigned char
&& debug_sections[DEBUG_STR].data)
{
char *name;
-
+
name = (char *) debug_sections[DEBUG_STR].data
- + do_read_32_relocated (ptr);
+ + do_read_32_relocated (ptr);
if (*name == '/' && comp_dir == NULL)
{
char *enddir = strrchr (name, '/');
@@ -844,7 +842,7 @@ edit_attributes (DSO *dso, unsigned char
{
base_len = strlen (base_dir);
dest_len = strlen (dest_dir);
-
+
memcpy (name, dest_dir, dest_len);
if (dest_len < base_len)
{
@@ -922,7 +920,7 @@ edit_attributes (DSO *dso, unsigned char
if (form == DW_FORM_block1)
ptr += len;
-
+
break;
}
}
@@ -1011,7 +1009,7 @@ edit_dwarf2 (DSO *dso)
return 1;
}
- scn = dso->scn[i];
+ scn = dso->scn[i];
data = elf_rawdata (scn, NULL);
assert (data != NULL && data->d_buf != NULL);
assert (elf_rawdata (scn, data) == NULL);
@@ -1087,7 +1085,7 @@ edit_dwarf2 (DSO *dso)
int rtype;
i = debug_sections[DEBUG_INFO].relsec;
- scn = dso->scn[i];
+ scn = dso->scn[i];
data = elf_getdata (scn, NULL);
assert (data != NULL && data->d_buf != NULL);
assert (elf_getdata (scn, data) == NULL);
@@ -1205,13 +1203,13 @@ edit_dwarf2 (DSO *dso)
error (0, 0, "%s: 64-bit DWARF not supported", dso->filename);
return 1;
}
-
+
if (endcu > endsec)
{
error (0, 0, "%s: .debug_info too small", dso->filename);
return 1;
}
-
+
cu_version = read_16 (ptr);
if (cu_version != 2 && cu_version != 3)
{
@@ -1219,7 +1217,7 @@ edit_dwarf2 (DSO *dso)
cu_version);
return 1;
}
-
+
value = read_32_relocated (ptr);
if (value >= debug_sections[DEBUG_ABBREV].size)
{
@@ -1230,7 +1228,7 @@ edit_dwarf2 (DSO *dso)
dso->filename);
return 1;
}
-
+
if (ptr_size == 0)
{
ptr_size = read_1 (ptr);
@@ -1247,12 +1245,12 @@ edit_dwarf2 (DSO *dso)
dso->filename);
return 1;
}
-
+
abbrev = read_abbrev (dso,
debug_sections[DEBUG_ABBREV].data + value);
if (abbrev == NULL)
return 1;
-
+
while (ptr < endcu)
{
tag.entry = read_uleb128 (ptr);
@@ -1266,18 +1264,18 @@ edit_dwarf2 (DSO *dso)
htab_delete (abbrev);
return 1;
}
-
+
ptr = edit_attributes (dso, ptr, t, phase);
if (ptr == NULL)
break;
}
-
+
htab_delete (abbrev);
}
}
free (relbuf);
}
-
+
return 0;
}
@@ -1340,7 +1338,7 @@ fdopen_dso (int fd, const char *name)
}
elf_flagelf (elf, ELF_C_SET, ELF_F_LAYOUT);
-
+
memset (dso, 0, sizeof(DSO));
dso->elf = elf;
dso->ehdr = ehdr;
@@ -1515,7 +1513,7 @@ main (int argc, char *argv[])
argv[0]);
exit (1);
}
-
+
args = poptGetArgs (optCon);
if (args == NULL || args[0] == NULL || args[1] != NULL)
{
@@ -1554,12 +1552,12 @@ main (int argc, char *argv[])
free (dest_dir);
dest_dir = p;
}
-
+
if (list_file != NULL)
{
list_file_fd = open (list_file, O_WRONLY|O_CREAT|O_APPEND, 0644);
}
-
+
file = args[0];
if (elf_version(EV_CURRENT) == EV_NONE)
@@ -1591,7 +1589,7 @@ main (int argc, char *argv[])
for (i = 1; i < dso->ehdr.e_shnum; i++)
{
const char *name;
-
+
switch (dso->shdr[i].sh_type)
{
case SHT_PROGBITS:
@@ -1621,7 +1619,7 @@ main (int argc, char *argv[])
Elf_Data src = dst;
src.d_buf = data->d_buf;
assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr));
- while ((char *) data->d_buf + data->d_size -
+ while ((char *) data->d_buf + data->d_size -
(char *) src.d_buf > (int) sizeof nh
&& elf32_xlatetom (&dst, &src, dso->ehdr.e_ident[EI_DATA]))
{
@@ -1632,7 +1630,7 @@ main (int argc, char *argv[])
&& !memcmp ((char *) src.d_buf + sizeof nh, "GNU", sizeof "GNU"))
{
build_id = data;
- build_id_offset = (char *) src.d_buf + len -
+ build_id_offset = (char *) src.d_buf + len -
(char *) data->d_buf;
build_id_size = nh.n_descsz;
break;
@@ -1666,7 +1664,7 @@ main (int argc, char *argv[])
/* Restore old access rights */
chmod (file, stat_buf.st_mode);
-
+
poptFreeContext (optCon);
return 0;

View file

@ -0,0 +1,62 @@
--- rpm-5.4.4/rpmdb/hdrfmt.c.suggests~ 2011-11-26 02:53:41.909644462 +0100
+++ rpm-5.4.4/rpmdb/hdrfmt.c 2011-11-26 02:53:45.520695846 +0100
@@ -1551,6 +1551,38 @@ assert(ix == 0);
}
/**
+ * Format dependency flags for display.
+ * @param he tag container
+ * @param av parameter list (or NULL)
+ * @return formatted string
+ */
+static /*@only@*/
+char * hintFormat(HE_t he, /*@unused@*/ /*@null@*/ const char ** av)
+ /*@*/
+{
+ int ix = (he->ix > 0 ? he->ix : 0);
+ char * val;
+
+assert(ix == 0);
+ if (he->t != RPM_UINT64_TYPE) {
+ val = xstrdup(_("(invalid type)"));
+ } else {
+ rpmuint64_t anint = he->p.ui64p[ix];
+ char *t, *buf;
+
+ t = buf = alloca(32);
+ *t = '\0';
+
+ if (anint & RPMSENSE_MISSINGOK)
+ t = stpcpy(t, "(hint)");
+ *t = '\0';
+
+ val = xstrdup(buf);
+ }
+
+ return val;
+}
+/**
* Retrieve install prefixes.
* @param h header
* @retval *he tag container
@@ -5143,6 +5175,8 @@ static struct headerSprintfExtension_s _
{ .fmtFunction = digestFormat } },
{ HEADER_EXT_FORMAT, "fflags",
{ .fmtFunction = fflagsFormat } },
+ { HEADER_EXT_FORMAT, "hint",
+ { .fmtFunction = hintFormat } },
{ HEADER_EXT_FORMAT, "iconv",
{ .fmtFunction = iconvFormat } },
{ HEADER_EXT_FORMAT, "json",
--- rpm-5.4.4/rpmpopt.in.suggests~ 2011-11-26 02:53:55.297834650 +0100
+++ rpm-5.4.4/rpmpopt.in 2011-11-26 02:54:34.101380884 +0100
@@ -98,7 +98,8 @@ rpm alias --provides --qf \
--POPTdesc=$"list capabilities that this package provides"
rpm alias --requires --qf \
- "[%{REQUIRENAME}%{REQUIREFLAGS:depflags}%{REQUIREVERSION}\n]" \
+ "[%{REQUIRENAME}%{REQUIREFLAGS:hint:depflags}%{REQUIREVERSION}\n]" \
+ --pipe "grep -v \(hint\)" \
--POPTdesc=$"list capabilities required by package(s)"
rpm alias -R --requires

View file

@ -0,0 +1,15 @@
--- rpm-5.4.4/build/reqprov.c.drop_basedeps~ 2011-12-11 03:55:58.958164657 +0100
+++ rpm-5.4.4/build/reqprov.c 2011-12-11 03:56:04.794169328 +0100
@@ -48,6 +48,12 @@ int addReqProv(/*@unused@*/ Spec spec, H
indextag = RPMTAG_TRIGGERINDEX;
extra = Flags & RPMSENSE_TRIGGER;
} else {
+#if defined(RPM_VENDOR_MANDRIVA)
+ if (!strcmp(N, "/bin/sh") || !strcmp(N, "/sbin/ldconfig")) {
+ rpmlog(RPMLOG_DEBUG, "%s will be satisfied by glibc or it's dependencies, won't add dependency to package\n");
+ return 0;
+ }
+#endif
nametag = RPMTAG_REQUIRENAME;
versiontag = RPMTAG_REQUIREVERSION;
flagtag = RPMTAG_REQUIREFLAGS;

View file

@ -0,0 +1,23 @@
--- rpm-5.4.4/scripts/pkgconfigdeps.sh.oneshot~ 2011-12-11 01:40:12.599487103 +0100
+++ rpm-5.4.4/scripts/pkgconfigdeps.sh 2011-12-11 01:40:14.418488230 +0100
@@ -37,12 +37,10 @@ case $1 in
done
;;
-R|--requires)
- oneshot="pkgconfig"
while read filename ; do
case "${filename}" in
*.pc)
if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then
- [ -n "$oneshot" ] && echo "$oneshot"; oneshot=""
# Query the dependencies of the package.
DIR=`dirname ${filename}`
PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
@@ -54,7 +52,6 @@ case $1 in
else
echo "pkgconfig($n)"
fi
- oneshot=""
done
fi
;;

View file

@ -0,0 +1,65 @@
--- rpm-5.4.4/build/files.c.dups_terminate~ 2011-12-05 20:29:26.967255130 +0100
+++ rpm-5.4.4/build/files.c 2011-12-05 20:34:20.850092893 +0100
@@ -2909,7 +2909,8 @@ exit:
/* auxiliary function for checkDuplicateFiles() */
/* XXX need to pass Header because fi->h is NULL */
-static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, size_t buildrootL)
+static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2,
+ size_t buildrootL, int _duplicate_files_terminate_build)
/*@globals internalState @*/
/*@modifies fi1, fi2, internalState @*/
{
@@ -2947,7 +2948,7 @@ static int fiIntersect(/*@null@*/ rpmfi
he->tag = RPMTAG_NVRA;
N2 = (headerGet(fi2->h, he, 0) ? he->p.str : NULL);
- rpmlog(RPMLOG_WARNING,
+ rpmlog(_duplicate_files_terminate_build ? RPMLOG_ERR : RPMLOG_WARNING,
_("File(s) packaged into both %s and %s:\n%s"),
N1, N2, rpmiobStr(dups));
@@ -2964,7 +2965,8 @@ static int fiIntersect(/*@null@*/ rpmfi
* @param spec spec file control structure
* @return number of duplicate files
*/
-static int checkDuplicateFiles(Spec spec, size_t buildrootL)
+static int checkDuplicateFiles(Spec spec, size_t buildrootL,
+ int _duplicate_files_terminate_build)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies *spec->packages,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -2989,7 +2991,7 @@ static int checkDuplicateFiles(Spec spec
#endif
if (fi2 == NULL) continue;
(void) rpmfiSetHeader(fi2, pkg2->header);
- n += fiIntersect(fi1, fi2, buildrootL);
+ n += fiIntersect(fi1, fi2, buildrootL, _duplicate_files_terminate_build);
(void) rpmfiSetHeader(fi2, NULL);
fi2 = rpmfiFree(fi2);
}
@@ -3172,9 +3174,13 @@ rpmRC processBinaryFiles(Spec spec, int
}
if (res == RPMRC_OK) {
+ int _duplicate_files_terminate_build =
+ rpmExpandNumeric("%{?_duplicate_files_terminate_build}");
if (checkUnpackagedFiles(spec) > 0)
res = RPMRC_FAIL;
- (void) checkDuplicateFiles(spec, buildrootL);
+ if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 &&
+ _duplicate_files_terminate_build)
+ res = RPMRC_FAIL;
(void) checkUnpackagedSubdirs(spec, buildrootL);
}
--- rpm-5.4.4/macros/mandriva.in.dups_terminate~ 2011-12-05 20:29:36.660283699 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-12-05 20:29:43.800304703 +0100
@@ -119,6 +119,7 @@ end\
# TODO: fix check script and implement support for using
#%_multiarch_required_terminate_build 1
+%_duplicate_files_terminate_build 1
%_enable_debug_packages 1

View file

@ -0,0 +1,12 @@
--- rpm-5.4.4/macros/mandriva.in.net_transport~ 2011-12-11 00:11:49.185221624 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-12-11 00:13:30.790281912 +0100
@@ -28,6 +28,9 @@
%_changelog_truncate 3 years ago
+# mdvbz#64914
+%_rpmgio .ufdio
+
# This will die as soon as remaining usage has been phased out...
%mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel}
%manbo_mkrel() %mkrel

View file

@ -0,0 +1,74 @@
--- rpm-5.4.4/build/files.c.twice_terminate~ 2012-01-23 10:20:48.711612232 +0100
+++ rpm-5.4.4/build/files.c 2012-01-23 10:20:48.716612237 +0100
@@ -1329,7 +1329,7 @@ static rpmuint32_t getDigestAlgo(Header
* @param h
* @param isSrc
*/
-static void genCpioListAndHeader(/*@partial@*/ FileList fl,
+static rpmRC genCpioListAndHeader(/*@partial@*/ FileList fl,
rpmfi * fip, Header h, int isSrc)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies h, *fip, fl->processingFailed, fl->fileList,
@@ -1349,6 +1349,7 @@ static void genCpioListAndHeader(/*@part
rpmuint32_t dalgo = getDigestAlgo(h, isSrc);
char buf[BUFSIZ];
int i, xx;
+ rpmRC rc = RPMRC_OK;
memset(buf, 0, sizeof(buf)); /* XXX valgrind on rhel6 beta pickier */
@@ -1377,9 +1378,14 @@ memset(buf, 0, sizeof(buf)); /* XXX valg
/* file flags */
flp[1].flags |= flp->flags;
- if (!(flp[1].flags & RPMFILE_EXCLUDE))
- rpmlog(RPMLOG_WARNING, _("File listed twice: %s\n"),
+ if (!(flp[1].flags & RPMFILE_EXCLUDE)) {
+ int terminate = rpmExpandNumeric("%{?_files_listed_twice_terminate_build}");
+
+ rpmlog(terminate ? RPMLOG_ERR : RPMLOG_WARNING, _("File listed twice: %s\n"),
flp->fileURL);
+ if (terminate)
+ rc = RPMRC_FAIL;
+ }
/* file mode */
if (S_ISDIR(flp->fl_mode)) {
@@ -1784,6 +1790,8 @@ if (_rpmbuildFlags & 4) {
fi = rpmfiFree(fi);
/*@=compdef@*/
}
+
+ return rc;
}
/**
@@ -2506,7 +2514,8 @@ static rpmRC processPackageFiles(Spec sp
"PartialHardlinkSets", "4.0.4-1");
/* XXX should tags be added if filelist is empty? */
- genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0);
+ if (genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0) != RPMRC_OK)
+ fl.processingFailed = 1;
if (spec->timeCheck)
timeCheck(spec->timeCheck, pkg->header);
@@ -2820,7 +2829,7 @@ int processSourceFiles(Spec spec)
/* XXX should tags be added if filelist is empty? */
spec->fi = NULL;
- genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1);
+ rc = genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1);
exit:
*sfp = rpmiobFree(*sfp);
--- rpm-5.4.4/macros/mandriva.in.twice_terminate~ 2012-01-23 10:20:48.000000000 +0100
+++ rpm-5.4.4/macros/mandriva.in 2012-01-23 10:21:35.342670233 +0100
@@ -125,6 +125,7 @@ end\
%_duplicate_files_terminate_build 1
%_unpackaged_subdirs_terminate_build 0
+%_files_listed_twice_terminate_build 1
%_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc
%_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc
%_nonzero_exit_pkgcheck_terminate_build 1

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/scripts/find-debuginfo.sh.partial_strip~ 2011-11-30 16:23:34.000000000 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-11-30 16:24:39.907094918 +0100
@@ -101,6 +101,8 @@ strip_to_debug()
$strip_g && case "$(file -bi "$2")" in
application/x-sharedlib*) g=-g ;;
esac
+ [ -n "$EXCLUDE_FULL_REGEXP" ] && grep -E -q "$EXCLUDE_FULL_REGEXP" <<< "$2" && g=-g
+
eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" || exit
[ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit
}

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/scripts/find-debuginfo.sh.strip_silent~ 2011-12-06 08:32:19.205381136 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-12-06 08:33:02.954406789 +0100
@@ -103,7 +103,7 @@ strip_to_debug()
esac
[ -n "$EXCLUDE_FULL_REGEXP" ] && grep -E -q "$EXCLUDE_FULL_REGEXP" <<< "$2" && g=-g
- eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" || exit
+ eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" 1> /dev/null || exit
[ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit
}

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/scripts/find-debuginfo.sh.no_sort~ 2011-11-17 13:40:39.178304643 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-11-17 13:40:55.838325261 +0100
@@ -260,7 +260,7 @@ if [ -s "$SOURCEFILE" ]; then
LC_ALL=C sort -z -u "$SOURCEFILE" | egrep -v -z '(<internal>|<built-in>)$' |
(cd "$RPM_BUILD_DIR"; cpio -pd0mL "${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 | LANG=C sort |
+ find "${RPM_BUILD_ROOT}/usr/src/debug" -type d -print0 |
xargs --no-run-if-empty -0 chmod a+rx
fi

View file

@ -0,0 +1,110 @@
--- rpm-5.4.4/configure.ac.reloc_debug~ 2011-11-28 16:47:13.267698364 +0100
+++ rpm-5.4.4/configure.ac 2011-11-28 16:48:21.989781551 +0100
@@ -617,6 +617,35 @@ AC_PATH_PROG(__STRIP, strip, %{_bindir}/
AC_CHECK_PROGS(LIBTOOLIZE, libtoolize glibtoolize, libtoolize)
AC_SUBST(LIBTOOLIZE)
+# check for elfutils eu-strip --reloc-debug_sections
+# elfutils-0.153 introduce the --reloc-debug-sections
+# This is a new option to eu-strip that strips
+# out/resolves relocations between .debug_* elf sections in ET_REL files.
+# This can save a lot of space for kernel module.
+# Use this option in find-debuginfo if supported
+# Check also for the eu_strip path and AC_SUBST it if found
+# not used really today
+old_PATH=$PATH
+PATH=$MYPATH
+AC_CACHE_CHECK([whether eu-strip supports --reloc-debug-sections], [ac_cv_path_EU_STRIP],
+ [AC_PATH_PROGS_FEATURE_CHECK([EU_STRIP], [eu-strip strip],
+ [[eu_stripout=`$ac_path_EU_STRIP --help | grep "\--reloc-debug-sections"`
+ test "x$eu_stripout" != x \
+ && ac_cv_path_EU_STRIP=$ac_path_EU_STRIP debuginfo_eu_strip_reloc_debug_sections="-r"]],
+ [[ debuginfo_eu_strip_reloc_debug_sections="" ]]
+)])
+PATH=$old_PATH
+AC_SUBST([debuginfo_eu_strip_reloc_debug_sections])
+AS_IF([test "x$ac_cv_path_EU_STRIP" != x], [
+ AC_SUBST([EU_STRIP], [$ac_cv_path_EU_STRIP])
+], [
+ AC_SUBST([EU_STRIP], [:])
+ AC_MSG_RESULT([no])
+])
+
+
+
+
dnl # check for id -u
AC_MSG_CHECKING(whether id supports -u)
if ${__ID} -u 2>&1 > /dev/null; then
--- rpm-5.4.4/macros/macros.in.reloc_debug~ 2011-09-13 03:12:51.000000000 +0200
+++ rpm-5.4.4/macros/macros.in 2011-11-28 16:49:04.073832540 +0100
@@ -145,7 +145,7 @@
# the script. See the script for details.
#
%__debug_install_post \
- %{_rpmhome}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
+ %{_rpmhome}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} @debuginfo_eu_strip_reloc_debug_sections@ "%{_builddir}/%{?buildsubdir}"\
%{nil}
# Template for debug information sub-package.
--- rpm-5.4.4/macros/macros.rpmbuild.in.reloc_debug~ 2011-10-21 17:39:02.000000000 +0200
+++ rpm-5.4.4/macros/macros.rpmbuild.in 2011-11-28 16:49:27.438860866 +0100
@@ -21,6 +21,7 @@
%__ranlib @RANLIB@
%__remsh %{__rsh}
%__strip @__STRIP@
+%__eu_strip @__EU_STRIP@
# XXX avoid failures if tools are not installed when rpm is built.
%__libtoolize @LIBTOOLIZE@
--- rpm-5.4.4/scripts/find-debuginfo.sh.reloc_debug~ 2011-11-25 14:36:31.003837273 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-11-28 16:50:50.324961429 +0100
@@ -2,7 +2,7 @@
#find-debuginfo.sh - automagically generate debug info and file list
#for inclusion in an rpm spec file.
#
-# Usage: find-debuginfo.sh [--strict-build-id] [-g]
+# Usage: find-debuginfo.sh [--strict-build-id] [-g] [-r]
# [-o debugfiles.list]
# [[-l filelist]... [-p 'pattern'] -o debuginfo.list]
# [builddir]
@@ -18,12 +18,16 @@
# the -l filelist file, or whose names match the -p pattern.
# The -p argument is an egrep-style regexp matching the a file name,
# and must not use anchors (^ or $).
+# The -r flag says to use eu-strip --reloc-debug-sections.
#
# All file names in switches are relative to builddir (. if not given).
#
# With -g arg, pass it to strip on libraries.
strip_g=false
+# with -r arg, pass --reloc-debug-sections to eu-strip.
+strip_r=false
+
# Barf on missing build IDs.
strict=false
@@ -40,6 +44,9 @@ while [ $# -gt 0 ]; do
-g)
strip_g=true
;;
+ -r)
+ strip_r=true
+ ;;
-o)
if [ -z "${lists[$nout]}" -a -z "${ptns[$nout]}" ]; then
out=$2
@@ -90,10 +97,11 @@ debugdir="${RPM_BUILD_ROOT}/usr/lib/debu
strip_to_debug()
{
local g=
+ $strip_r && r=--reloc-debug-sections
$strip_g && case "$(file -bi "$2")" in
application/x-sharedlib*) g=-g ;;
esac
- eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo -f "$1") "$2" || exit
+ eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" || exit
[ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit
}

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/scripts/find-lang.sh.man_comp~ 2011-11-17 13:13:59.283373348 +0100
+++ rpm-5.4.4/scripts/find-lang.sh 2011-11-17 13:14:06.727384048 +0100
@@ -207,7 +206,7 @@ s:^\([^%].*\)::
s:%lang(C) ::
/^$/d' >> $MO_NAME
-find "$TOP_DIR" -type f -o -type l|sed '
+find "$TOP_DIR" -type f -o -type l|sed -r 's/\.(bz2|gz|xz|lzma|Z)$//g' | sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
s:^\([^%].*\)::

View file

@ -0,0 +1,70 @@
--- rpm-5.4.4/scripts/find-lang.sh.multi~ 2011-11-16 17:38:32.041205264 +0100
+++ rpm-5.4.4/scripts/find-lang.sh 2011-11-16 19:19:38.995191384 +0100
@@ -13,6 +13,7 @@
# 2011-11-16 Per Øyvind Karlsen <peroyvind@mandriva.org>
# * add support for HTML files (from Mandriva)
+# * add support for multiple names
# 2004-06-20 Arkadiusz Miśkiewicz <arekm@pld-linux.org>
# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD)
# 1999-10-19 Artur Frysiak <wiget@pld-linux.org>
@@ -52,7 +53,7 @@ fi
shift
if [ -z "$1" ] ; then usage
-else NAME=$1
+else NAMES[0]=$1
fi
shift
@@ -62,10 +63,9 @@ QT=#
MAN=#
HTML=#
MO=
-MO_NAME=$NAME.lang
+MO_NAME=${NAMES[0]}.lang
ALL_NAME=#
NO_ALL_NAME=
-
while test $# -gt 0 ; do
case "${1}" in
--with-gnome )
@@ -98,19 +98,28 @@ while test $# -gt 0 ; do
shift
;;
* )
+ if [ $MO_NAME != $NAME.lang ]; then
+ NAMES[${#NAMES[@]}]=$MO_NAME
+ fi
MO_NAME=${1}
shift
;;
esac
done
+if [ -f $MO_NAME ]; then
+ rm $MO_NAME
+fi
+
+for NAME in ${NAMES[@]}; do
+
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
s:%lang(C) ::
-/^$/d' > $MO_NAME
+/^$/d' >> $MO_NAME
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
@@ -205,6 +214,8 @@ s:^\([^%].*\)::
s:%lang(C) ::
/^$/d' >> $MO_NAME
+done
+
if ! grep -q / $MO_NAME; then
echo "No translations found for ${NAME} in ${TOP_DIR}"
exit 1

View file

@ -0,0 +1,55 @@
--- rpm-5.4.4/scripts/find-lang.sh.html~ 2011-12-11 01:32:55.311224149 +0100
+++ rpm-5.4.4/scripts/find-lang.sh 2011-12-11 01:35:12.559304829 +0100
@@ -11,6 +11,8 @@
#in tact and are included with any redistribution of this file or any
#work based on this file.
+# 2011-11-16 Per Øyvind Karlsen <peroyvind@mandriva.org>
+# * add support for HTML files (from Mandriva)
# 2004-06-20 Arkadiusz Miśkiewicz <arekm@pld-linux.org>
# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD)
# 1999-10-19 Artur Frysiak <wiget@pld-linux.org>
@@ -33,6 +35,7 @@ Additional options:
--with-gnome find GNOME help files
--with-kde find KDE help files
--with-qt find Qt translation files
+ --with-html find HTML files
--with-man find localized man pages
--all-name match all package/domain names
--without-mo do not find locale files
@@ -58,6 +61,7 @@ GNOME=#
KDE=#
QT=#
MAN=#
+HTML=#
MO=
MO_NAME=$NAME.lang
ALL_NAME=#
@@ -81,6 +85,10 @@ while test $# -gt 0 ; do
MAN=
shift
;;
+ --with-html )
+ HTML=
+ shift
+ ;;
--without-mo )
MO=#
shift
@@ -159,6 +167,16 @@ s:%lang(C) ::
/^$/d' >> $MO_NAME
fi
+find "$TOP_DIR" -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\)::
+'"$NO_ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
+'"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
+'"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$QT"'s:\(.*/'"$NAME"'_\([a-zA-Z]\{2\}\([_@].*\)\?\)\.qm$\):%lang(\2) \1:

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/macros/mandriva.in.macros_dir~ 2011-12-02 17:32:01.637645782 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-12-04 02:38:26.872452015 +0100
@@ -198,7 +198,7 @@ export CFLAGS="%optflags -fPIE"; export
%__gzip /bin/gzip
-%_sys_macros_dir %{_sysconfdir}/macros.d
+%_sys_macros_dir %{_sysconfdir}/rpm/macros.d
%build_sysmacrospath() %{_sys_macros_dir}/%{?1:%{1}}%{?!1:%{name}}.macros
# when %_with_git_repository is set, these macros modify the behaviour of "%prep" step:

View file

@ -0,0 +1,19 @@
--- rpm-5.4.4/build/parseDescription.c.mdvbz62979~ 2011-04-07 01:34:01.000000000 +0200
+++ rpm-5.4.4/build/parseDescription.c 2011-11-12 18:11:36.736325952 +0100
@@ -90,6 +90,8 @@ int parseDescription(Spec spec)
}
/* Lose the inheirited %description (if present). */
+
+#if !defined(RPM_VENDOR_MANDRIVA) /* mdvbz#62979 */
if (spec->packages->header != pkg->header) {
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
int xx;
@@ -99,6 +101,7 @@ int parseDescription(Spec spec)
if (xx && he->t == RPM_STRING_TYPE)
xx = headerDel(pkg->header, he, 0);
}
+#endif
t = stashSt(spec, pkg->header, RPMTAG_DESCRIPTION, lang);

View file

@ -0,0 +1,95 @@
--- rpm-5.4.4/build/reqprov.c.overlap~ 2011-04-01 12:39:50.000000000 +0200
+++ rpm-5.4.4/build/reqprov.c 2011-11-26 02:21:00.125251492 +0100
@@ -9,6 +9,8 @@
#include <rpmiotypes.h>
#define _RPMEVR_INTERNAL
#include "rpmbuild.h"
+#include <rpmds.h>
+#include <rpmlog.h>
#include "debug.h"
int addReqProv(/*@unused@*/ Spec spec, Header h,
@@ -110,37 +112,61 @@ int addReqProv(/*@unused@*/ Spec spec, H
* TODO: auto-generated deps too
*/
if (flagtag && versions != NULL) {
- int overlap;
+ int overlap = 0, res = 0;
+ rpmds old = rpmdsSingle(flagtag, names[len], versions[len] ? versions[len] : "", flags[len]);
+ rpmds new = rpmdsSingle(flagtag, N, EVR, Flags);
- if(*EVR && !*versions[len]) {
- overlap = 1;
- flags[len] = Flags;
- he->tag = flagtag;
- he->t = RPM_UINT32_TYPE;
- he->p.argv = (void *) &Flags;
- xx = headerMod(h, he, 0);
- } else {
+ overlap = rpmdsCompare(new, old);
+
+ if (overlap) {
EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0),
rEVR = rpmEVRnew(RPMSENSE_ANY, 0);
+ rpmuint32_t newflags;
+ /* if we have both a requires and suggests, we turn it into a requires */
+ if (!(Flags & RPMSENSE_MISSINGOK) || !(flags[len] & RPMSENSE_MISSINGOK)) {
+ flags[len] &= ~RPMSENSE_MISSINGOK;
+ Flags &= ~RPMSENSE_MISSINGOK;
+ }
+
+ /* merge all flags about dependency type */
+ newflags = ((flags[len]| Flags) & _ALL_REQUIRES_MASK);
rpmEVRparse(EVR, lEVR);
rpmEVRparse(versions[len], rEVR);
- lEVR->Flags = Flags | RPMSENSE_EQUAL;
- rEVR->Flags = flags[len] | RPMSENSE_EQUAL;
- overlap = rpmEVRoverlap(lEVR, rEVR);
- if (!overlap)
- if (rpmEVRoverlap(rEVR, lEVR))
- duplicate = 1;
+ lEVR->Flags = Flags;
+ rEVR->Flags = flags[len];
+
+ res = rpmEVRcompare(lEVR, rEVR);
+ /* we only update version if greater */
+ if (res > 0) {
+ flags[len] = Flags;
+
+ versions[len] = EVR;
+ he->tag = versiontag;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = versions;
+ xx = headerMod(h, he, 0);
+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(old), rpmdsDNEVR(new), rpmdsDNEVR(old));
+ } else if (res < 0) {
+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new));
+ } else {
+ rpmlog(RPMLOG_DEBUG, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new));
+ }
+
+ flags[len] |= newflags;
+ he->tag = flagtag;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = flags;
+ xx = headerMod(h, he, 0);
+
lEVR = rpmEVRfree(lEVR);
rEVR = rpmEVRfree(rEVR);
+ duplicate = 1;
}
- if (overlap) {
- versions[len] = EVR;
- he->tag = versiontag;
- he->t = RPM_STRING_ARRAY_TYPE;
- he->p.argv = versions;
- xx = headerMod(h, he, 0);
- } else
+ old = rpmdsFree(old);
+ new = rpmdsFree(new);
+
+ if (!overlap)
continue;
}
#else

View file

@ -0,0 +1,17 @@
--- rpm-5.4.4/lib/query.c.qf_non~ 2011-11-11 13:46:15.366139615 +0100
+++ rpm-5.4.4/lib/query.c 2011-11-11 13:46:53.976182024 +0100
@@ -705,8 +705,13 @@ JBJDEBUG((stderr, "--> %s(%p,%p,%p)\n",
}
qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_FILEPATHS, fn, 0);
- if (qva->qva_mi == NULL && !provides_checked && !gotpattern)
+ if (qva->qva_mi == NULL && !provides_checked && !gotpattern) {
qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, fn, 0);
+#if defined(RPM_VENDOR_MANDRIVA)
+ if(rpmmiCount(qva->qva_mi) == 0)
+ qva->qva_mi = rpmmiFree(qva->qva_mi);
+#endif
+ }
if (qva->qva_mi == NULL) {
struct stat sb;

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/lib/rpmgi.c.rpm_qa~ 2011-11-11 23:03:05.580414137 +0100
+++ rpm-5.4.4/lib/rpmgi.c 2011-11-11 23:03:09.446536939 +0100
@@ -464,7 +464,7 @@ fprintf(stderr, "*** gi %p key %p[%d]\tm
pat = ae;
got++;
}
- if (got) {
+ if (got >= 0) {
if (_rpmgi_debug < 0)
fprintf(stderr, "\tav %p[%d]: \"%s\" -> %s ~= \"%s\"\n", gi->argv, (int)(av - gi->argv), *av, tagName(tag), pat);
got = rpmmiAddPattern(gi->mi, tag, RPMMIRE_DEFAULT, pat);

View file

@ -0,0 +1,20 @@
--- rpm-5.4.4/rpmconstant/rpmconstant.c.locale~ 2008-08-18 12:57:58.000000000 +0200
+++ rpm-5.4.4/rpmconstant/rpmconstant.c 2011-12-16 16:41:27.721549143 +0100
@@ -89,7 +89,7 @@ int rpmconstInitToContext(rpmconst c, co
int rc = 0;
if (!context) return 0; /* programmer error */
for (ptr = lccontext; *ptr != 0; ptr++)
- *ptr = (char)tolower(*ptr);
+ *ptr = (char)xtolower(*ptr);
rpmconstInitL(c);
while (rpmconstNextL(c)) {
if (!strcmp(lccontext, rpmconstContext(c))) {
@@ -108,7 +108,7 @@ int rpmconstNameMatch(rpmconst c, const
char * ucname = strdup(name);
for (uc = ucname; *uc != 0; uc++)
- *uc = (char)toupper(*uc);
+ *uc = (char)xtoupper(*uc);
if (!prefixed) prefixed = ALLCASE_PREFIX;
if (prefixed & WITH_PREFIX)

View file

@ -0,0 +1,22 @@
--- rpm-5.4.4/lib/transaction.c.epoch_cmp~ 2011-11-30 22:25:26.646155379 +0100
+++ rpm-5.4.4/lib/transaction.c 2011-11-30 23:15:28.252768345 +0100
@@ -1187,12 +1187,15 @@ rpmlog(RPMLOG_DEBUG, D_("sanity checking
const char *val = NULL;
he->tag = tags[t];
xx = headerGet(h, he, 0);
- if (he->tag == RPMTAG_EPOCH)
+ if (he->tag == RPMTAG_EPOCH) {
val = rpmteE(p);
- else if (he->tag == RPMTAG_DISTEPOCH)
+ if (val ? atoi(val) : 0 != he->p.ui32p ? *(he->p.ui32p) : 0)
+ nkeys--;
+ } else if (he->tag == RPMTAG_DISTEPOCH) {
val = rpmteD(p);
- if (strcmp(he->p.str ? he->p.str : "", val ? val : ""))
- nkeys--;
+ if (strcmp(he->p.str ? he->p.str : "", val ? val : ""))
+ nkeys--;
+ }
he->p.ptr = _free(he->p.ptr);
}
mi = rpmmiFree(mi);

View file

@ -0,0 +1,33 @@
--- rpm-5.4.4/scripts/brp-strip-comment-note.quotes~ 2007-06-20 18:56:47.000000000 +0200
+++ rpm-5.4.4/scripts/brp-strip-comment-note 2011-11-28 16:59:30.906559660 +0100
@@ -16,7 +16,7 @@ esac
# Strip .comment and .note sections (the latter only if it is not allocated)
# 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 {} \; | \
+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" | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do
note="-R .note"
--- rpm-5.4.4/scripts/brp-strip-shared.quotes~ 2007-06-20 18:56:47.000000000 +0200
+++ rpm-5.4.4/scripts/brp-strip-shared 2011-11-28 16:59:30.906559660 +0100
@@ -18,7 +18,7 @@ esac
# Strip ELF shared objects
# Please note we don't restrict our search to executable files because
# our libraries are not (should not be, at least) +x.
-for f in `find $RPM_BUILD_ROOT -type f -a -exec file {} \; | \
+for f in `find "$RPM_BUILD_ROOT" -type f -a -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
grep ' shared object,' | \
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
--- rpm-5.4.4/scripts/find-debuginfo.sh.quotes~ 2011-11-28 16:59:04.000000000 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-11-28 17:00:14.587605241 +0100
@@ -251,7 +251,7 @@ done || exit
# For each symlink whose target has a .debug file,
# make a .debug symlink to that file.
-find $RPM_BUILD_ROOT ! -path "${debugdir}/*" -type l -print | LANG=C sort |
+find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*" -type l -print | LANG=C sort |
while read f
do
t=$(readlink -m "$f").debug

View file

@ -0,0 +1,24 @@
--- rpm-5.4.4/rpmio/macro.c.glob~ 2011-09-30 20:40:18.000000000 +0200
+++ rpm-5.4.4/rpmio/macro.c 2011-11-17 16:49:16.870465121 +0100
@@ -2798,6 +2798,9 @@ rpmLoadMacroFile(MacroContext mc, const
/* Parse %{load:...} immediately recursively. */
if (s[1] == '{' && !strncmp(s+2, "load:", sizeof("load:")-1)) {
char * se = (char *) matchchar(s, '{', '}');
+ const char ** argv = NULL;
+ int argc = 0;
+ int i;
if (se == NULL) {
rpmlog(RPMLOG_WARNING,
_("%s:%u Missing '}' in \"%s\", skipping.\n"),
@@ -2814,7 +2817,10 @@ rpmLoadMacroFile(MacroContext mc, const
continue;
}
se = rpmMCExpand(mc, s, NULL);
- rc = rpmLoadMacroFile(mc, se, nesting - 1);
+ rc = rpmGlob(se, &argc, &argv);
+ for(i = 0; i < argc; i++)
+ rc |= rpmLoadMacroFile(mc, argv[i], nesting - 1);
+ argv = _free(argv);
se = _free(se);
if (rc != 0)
goto exit;

View file

@ -0,0 +1,34 @@
--- rpm-5.4.4/macros/mandriva.in.common~ 2011-11-24 15:33:32.908914943 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-11-24 15:33:35.721911916 +0100
@@ -165,4 +165,31 @@ export CFLAGS="%optflags -fPIE"; export
%serverbuild \
%{nil}
+#==============================================================================
+# ---- GPG/PGP/PGP5 signature macros.
+# Macro(s) to hold the arguments passed to GPG/PGP for package
+# signing and verification.
+#
+
+# We disable the gpg key automatic querying
+%_hkp_keyserver_query %nil
+
+
+# Verify digest/signature flags for various rpm modes:
+# 0x30300 (_RPMVSF_NODIGESTS) --nohdrchk if set, don't check digest(s)
+# 0xc0c00 (_RPMVSF_NOSIGNATURES) --nosignature if set, don't check signature(s)
+# 0xf0000 (_RPMVSF_NOPAYLOAD) --nolegacy if set, check header+payload (if possible)
+# 0x00f00 (_RPMVSF_NOHEADER) --nohdrchk if set, don't check rpmdb headers
+%_vsflags_query 0xc0c00
+
+
+# Open all indices before doing chroot(2).
+#
+%_openall_before_chroot 1
+
+%_repackage_all_erasures 0
+
+# activate filetriggers (cf http://wiki.mandriva.com/en/Rpm_filetriggers)
+%_filetriggers_dir /var/lib/rpm/filetriggers
+
%{load:/etc/rpm/macros.d/*.macros}

View file

@ -0,0 +1,50 @@
--- rpm-5.4.4/scripts/find-debuginfo.sh.mdv~ 2011-10-21 17:35:46.000000000 +0200
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-11-11 10:25:50.301878554 +0100
@@ -91,10 +91,10 @@ strip_to_debug()
{
local g=
$strip_g && case "$(file -bi "$2")" in
- application/x-sharedlib,*) g=-g ;;
+ application/x-sharedlib*) g=-g ;;
esac
- eu-strip --remove-comment $g -f "$1" "$2" || exit
- chmod 444 "$1" || exit
+ eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo -f "$1") "$2" || exit
+ [ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit
}
# Make a relative symlink to $1 called $3$2
@@ -174,13 +174,23 @@ set -o pipefail
strict_error=ERROR
$strict || strict_error=WARNING
+[[ -n "$EXCLUDE_FROM_STRIP" ]] && \
+EXCLUDE_REGEXP=`perl -e 'print "(", join("|", @ARGV), ")"' $EXCLUDE_FROM_STRIP`
+[[ -n "$EXCLUDE_FROM_FULL_STRIP" ]] && \
+EXCLUDE_FULL_REGEXP=`perl -e 'print "(", join("|", @ARGV), ")"' $EXCLUDE_FROM_FULL_STRIP`
+
+echo $EXCLUDE_REGEXP
# Strip ELF binaries
find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
- \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
+ \( -name \*.ko -or -perm -0100 -or -perm -0010 -or -perm -0001 \) \
-print | LANG=C sort |
file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' |
xargs --no-run-if-empty stat -c '%h %D_%i %n' |
while read nlinks inum f; do
+ [ -n "$EXCLUDE_REGEXP" ] && grep -E -q "$EXCLUDE_REGEXP" <<< "$f" && \
+ continue
+ [ -n "$DISABLE_DEBUG" ] && strip_to_debug "" "$f" && continue
+
get_debugfn "$f"
[ -f "${debugfn}" ] && continue
@@ -256,7 +266,7 @@ fi
if [ -d "${RPM_BUILD_ROOT}/usr/lib" -o -d "${RPM_BUILD_ROOT}/usr/src" ]; then
((nout > 0)) ||
- test ! -d "${RPM_BUILD_ROOT}/usr/lib" ||
+ test ! -d "${RPM_BUILD_ROOT}/usr/lib/debug" ||
(cd "${RPM_BUILD_ROOT}/usr/lib"; find debug -type d) | LANG=C sort |
sed 's,^,%dir /usr/lib/,' >> "$LISTFILE"

View file

@ -0,0 +1,162 @@
--- rpm-5.4.4/scripts/find-lang.sh.rpmorg~ 2011-11-11 11:06:28.698286682 +0100
+++ rpm-5.4.4/scripts/find-lang.sh 2011-11-11 11:06:34.704293763 +0100
@@ -1,7 +1,7 @@
#!/bin/sh
#findlang - automagically generate list of language specific files
#for inclusion in an rpm spec file.
-#This does assume that the *.mo files are under .../share/locale/...
+#This does assume that the *.mo files are under .../locale/...
#Run with no arguments gets a usage message.
#findlang is copyright (c) 1998 by W. L. Estes <wlestes@uncg.edu>
@@ -11,7 +11,7 @@
#in tact and are included with any redistribution of this file or any
#work based on this file.
-# 2004-06-20 Arkadiusz Mi¶kiewicz <arekm@pld-linux.org>
+# 2004-06-20 Arkadiusz MiÅkiewicz <arekm@pld-linux.org>
# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD)
# 1999-10-19 Artur Frysiak <wiget@pld-linux.org>
# * added support for GNOME help files
@@ -32,8 +32,10 @@ to \$3.
Additional options:
--with-gnome find GNOME help files
--with-kde 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
+ --without-mo do not find locale files
EOF
exit 1
}
@@ -54,6 +56,8 @@ shift
GNOME=#
KDE=#
+QT=#
+MAN=#
MO=
MO_NAME=$NAME.lang
ALL_NAME=#
@@ -69,6 +73,14 @@ while test $# -gt 0 ; do
KDE=
shift
;;
+ --with-qt )
+ QT=
+ shift
+ ;;
+ --with-man )
+ MAN=
+ shift
+ ;;
--without-mo )
MO=#
shift
@@ -85,10 +97,10 @@ while test $# -gt 0 ; do
esac
done
-find "$TOP_DIR" -type f -or -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:
+'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
+'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
s:%lang(C) ::
/^$/d' > $MO_NAME
@@ -96,30 +108,79 @@ s:%lang(C) ::
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir \1:
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/..*\)::
-'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_][^/_]*\):%lang(\2) \1\2:
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\{1,\}$\):%dir \1:
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\{1,\}/[a-zA-Z0-9.\_\-]/..*\)::
-'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\{1,\}\/\)\([^/_][^/_]*\):%lang(\2) \1\2:
-s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\{1,\}/[a-zA-Z0-9.\_\-]\{1,\}/.*::
+'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\)::
+'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2:
+'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
+'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\)::
+'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2:
+s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
s:^\([^%].*\)::
s:%lang(C) ::
/^$/d' >> $MO_NAME
+find "$TOP_DIR" -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%dir \1:
+'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
+s:^\([^%].*\)::
+/^$/d' >> $MO_NAME
+
find "$TOP_DIR" -type f|sed '
s:'"$TOP_DIR"'::
-'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\).omf\):%lang(\2) \1:
-'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\).omf\):%lang(\2) \1:
+'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1:
+'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
+s:^[^%].*::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
+KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null`
+if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then
+find "$TOP_DIR$KDE3_HTML" -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\)::
+'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
+'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
+'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+fi
+
+KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null`
+if [ x"$KDE4_HTML" != x -a -d "$TOP_DIR$KDE4_HTML" ]; then
+find "$TOP_DIR$KDE4_HTML" -type d|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\)::
+'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
+'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
+'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+fi
+
+find "$TOP_DIR" -type f -o -type l|sed '
+s:'"$TOP_DIR"'::
+'"$NO_ALL_NAME$QT"'s:\(.*/'"$NAME"'_\([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:
+'"$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:^[^%].*::
s:%lang(C) ::
/^$/d' >> $MO_NAME
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
-'"$NO_ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_][^/_]*\)\(.*/'"$NAME"'/\)::
-'"$NO_ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_][^/_]*\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
-'"$ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_]\{1,\}\)\(.*/[a-zA-Z0-9.\_\-]\{1,\}/\)::
-'"$ALL_NAME$KDE"'s:\(.*/doc/kde/HTML/\)\([^/_]\{1,\}\)\(.*/[a-zA-Z0-9.\_\-]\{1,\}$\):%lang(\2) \1\2\3:
+'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\)::
+'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
+s:^\([^%].*\)::
+s:%lang(C) ::
+/^$/d' >> $MO_NAME
+
+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

View file

@ -0,0 +1,67 @@
--- rpm-5.4.4/macros/mandriva.in.manbo~ 2011-11-17 15:30:12.954792166 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-11-17 15:29:25.105725054 +0100
@@ -79,6 +79,13 @@ end\
%_loop_detection_loglevel 4
+
+%_sysconfdir /etc
+%_defaultdocdir %{_datadir}/doc
+%_localstatedir %{_var}
+%_logdir %{_var}/log
+%_libexecdir %{_libdir}
+
# mdvbz#62741
# standard systemd directories
%_systemdrootdir /lib/systemd
@@ -112,4 +119,50 @@ end\
# TODO: fix check script and implement support for using
#%_multiarch_required_terminate_build 1
+%_enable_debug_packages 1
+
+
+# Default extension to use (for info files)
+%_extension .xz
+
+
+%__install_info /sbin/install-info
+
+%_install_info() if [[ -f %{_infodir}/%{1}%{_extension} ]]; then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir; fi \
+%{nil}
+# (nb: keep the "alone on its line ';'")
+%_remove_install_info() if [ "$1" = "0" ]; then if [[ -f %{_infodir}/%{1}%{_extension} ]]; then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir --remove ; fi; fi \
+%{nil}
+
+
+# Macro: %{mklibname <name> [<major> [<minor>]] [-s] [-d]}
+# - %{mklibname test} => lib64test, on a lib64 platform
+# - %{mklibname test 1 -d} => libtest1-devel
+# - %{mklibname test 1 -d 0 -s} => libtest1_0-static-devel
+%mklibname(ds) %{_lib}%{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel}
+
+%debugcflags %{?_enable_debug_packages:-g -frecord-gcc-switches -Wstrict-aliasing=2}
+
+# common compilation flags
+
+%_fortify_cflags -Wp,-D_FORTIFY_SOURCE=2
+
+# cf http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments
+%Werror_cflags -Wformat -Werror=format-security
+
+%_ssp_cflags -fstack-protector --param=ssp-buffer-size=4%{?_serverbuild_flags: %_serverbuild_flags}
+%__common_cflags -O2 %{debugcflags} -pipe %{Werror_cflags} %{?_fortify_cflags}
+%__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags}
+
+# Servers opt flags.
+# Also set the env variables for backward compatibility (#32050).
+%serverbuild %define _serverbuild_flags -fstack-protector-all \
+export CFLAGS="%optflags -fPIE"; export CXXFLAGS="%optflags -fPIE"; export RPM_OPT_FLAGS="%optflags -fPIE" \
+%{nil}
+
+# Hardened Servers opt flags.
+%serverbuild_hardened %define _hardened_flags -Wl,-z,now -pie \
+%serverbuild \
+%{nil}
+
%{load:/etc/rpm/macros.d/*.macros}

View file

@ -0,0 +1,303 @@
--- rpm-5.4.4/macros/mandriva.in.build~ 2011-11-24 15:52:00.957832674 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-11-24 15:54:35.315919827 +0100
@@ -195,4 +195,300 @@ export CFLAGS="%optflags -fPIE"; export
# use XZ to compress binary packages:
%_binary_payload w5.xzdio
+
+%__gzip /bin/gzip
+
+%_sys_macros_dir %{_sysconfdir}/macros.d
+%build_sysmacrospath() %{_sys_macros_dir}/%{?1:%{1}}%{?!1:%{name}}.macros
+
+# when %_with_git_repository is set, these macros modify the behaviour of "%prep" step:
+%_after_setup %{?_with_git_repository:GIT_URL="%{?git_url}" GIT_REPOSITORY_CACHE=%{?git_repository_cache} @USRLIBRPM@/@RPMCANONVENDOR@/git-repository--after-tarball}
+%_patch %{?_with_git_repository:PKG_NAME=%{name} @USRLIBRPM@/@RPMCANONVENDOR@/git-repository--apply-patch}%{?!_with_git_repository:%__patch -U}
+
+# used by "git-repository--after-tarball":
+%git_repository_cache %_topdir/%{name}.git
+
+
+# Various programs used in rpm scripts
+%_update_desktop_database_bin %{_bindir}/update-desktop-database
+%_update_mime_database_bin %{_bindir}/update-mime-database
+%_update_icon_cache_bin %{_bindir}/gtk-update-icon-cache
+%_gconftool_bin %{_bindir}/gconftool-2
+%_scrollkeeper_bin %{_bindir}/scrollkeeper-update
+
+%__service /sbin/service
+%__chkconfig /sbin/chkconfig
+
+#==============================================================================
+# ---- Required rpmrc macros.
+# Macros that used to be initialized as a side effect of rpmrc parsing.
+# These are the default values that can be overridden by other
+# (e.g. per-platform, per-system, per-packager, per-package) macros.
+#
+
+%debug_package_and_restore %{debug_package} \
+%package __restore__\
+Summary: %{summary}\
+Group: %{group}\
+%description __restore__
+
+%_arch_tag_suffix (%_lib)
+%arch_tagged() %{1}%{_arch_tag_suffix} %{?2:%{2} %{3}%{?!3:%{error:undefined 3rd argument in arch_tagged}}}
+
+# Games macros
+%_gamesdir games
+%_gamesbindir %{_prefix}/%{_gamesdir}
+%_gamesdatadir %{_datadir}/%{_gamesdir}
+
+# Menu directories
+%_menudir %{_prefix}/lib/menu
+%_iconsdir %{_datadir}/icons
+%_miconsdir %{_datadir}/icons/mini
+%_liconsdir %{_datadir}/icons/large
+
+%_xfontdir %_datadir/fonts
+
+%_webconfdir %{_sysconfdir}/httpd/conf
+%_webappconfdir %_webconfdir/webapps.d
+# compatibility
+%webappconfdir %_webappconfdir
+
+#==============================================================================
+# ---- Build configuration macros.
+#
+# Package version macro.
+# The type of package to produce, for compatibility with legacy
+# versions of rpm.
+#
+# Script gets packaged file list on input.
+# Returns list of multiarch files that are not marked as such,
+# i.e. files in $RPM_BUILD_ROOT that have arch-dependent values
+#
+# Note: Disable (by commenting out) for legacy compatibility.
+#%__check_multiarch_files @USRLIBRPM@/check-multiarch-files %{buildroot}
+
+# Use internal dependency generator rather than external helpers?
+%_use_internal_dependency_generator 0
+
+%__find_provides @USRLIBRPM@/@RPMCANONVENDOR@/filter.sh '%{?_provides_exceptions:%{_provides_exceptions}}%{!?_provides_exceptions: }' '%{?_exclude_files_from_autoprov:%{_exclude_files_from_autoprov}}%{!?_exclude_files_from_autoprov: }' '%{buildroot}' @USRLIBRPM@/@RPMCANONVENDOR@/find-provides
+%__find_requires @USRLIBRPM@/@RPMCANONVENDOR@/filter.sh '%{?_requires_exceptions:%{_requires_exceptions}}%{!?_requires_exceptions: }' '%{?_exclude_files_from_autoreq:%{_exclude_files_from_autoreq}}%{!?_exclude_files_from_autoreq: }' '%{buildroot}' @USRLIBRPM@/@RPMCANONVENDOR@/find-requires %{?buildroot:%{buildroot}} %{?_target_cpu:%{_target_cpu}}
+
+# Update Menu
+%_update_menus_bin %{_bindir}/update-menus
+
+# Update Window Managers session.
+%_fndsession_bin %{_sbindir}/fndSession
+%make_session %{nil}
+%make_dm_session if [ -x %{_fndsession_bin} ]; then %{_fndsession_bin} || true ; fi \
+%{nil}
+
+# For rebuilding gcj-db
+%_rebuildgcjdb_bin %{_bindir}/rebuild-gcj-db
+%update_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \
+%{nil}
+
+%clean_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \
+%{nil}
+
+# Rebuild icon cache
+%update_icon_cache() if [ -x %{_update_icon_cache_bin} ]; then \
+%{_update_icon_cache_bin} --force --quiet %{_iconsdir}/%{1} || true; fi \
+%{nil}
+
+%clean_icon_cache() if [ -x %{_update_icon_cache_bin} -a -r %{_iconsdir}/%{1}/index.theme ]; then \
+%{_update_icon_cache_bin} --force --quiet %{_iconsdir}/%{1} || true ; fi \
+%{nil}
+
+# GConf schemas:
+# installation is handled by filetriggers
+%post_install_gconf_schemas() %{nil}
+# but uninstall still need to be done in %preun:
+%preun_uninstall_gconf_schemas() if [ "$1" = "0" -a -x %{_gconftool_bin} ]; then \
+SCHEMAS="" \
+for SCHEMA in %{*} ; do \
+ SCHEMAS="$SCHEMAS %{_sysconfdir}/gconf/schemas/$SCHEMA.schemas" \
+done \
+GCONF_CONFIG_SOURCE=`%{_gconftool_bin} --get-default-source` %{_gconftool_bin} --makefile-uninstall-rule $SCHEMAS > /dev/null || true ; fi \
+%{nil}
+
+# Mandriva Linux version
+# - "9.1" => 910
+# - "10.2.2" => 1022
+# (user may copy the following line in specfile)
+%mdkversion %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1$2".($3||0)' /etc/mandriva-release)
+
+#==============================================================================
+# ---- Build policy macros.
+#
+#---------------------------------------------------------------------
+# Expanded at end of %install scriptlet.
+#
+
+%__os_install_post \
+ %{?__spec_helper_post}%{?!__spec_helper_post:/usr/share/spec-helper/spec-helper} \
+%{nil}
+
+#==============================================================================
+# ---- specfile macros.
+# Macro(s) here can be used reliably for reproducible builds.
+# (Note: Above is the goal, below are the macros under development)
+#
+
+%__fix_libtool_ltmain_from_overlinking @USRLIBRPM@/@RPMCANONVENDOR@/fix-libtool-ltmain-from-overlinking
+%__fix_libtool_from_moving_options_after_libs @USRLIBRPM@/@RPMCANONVENDOR@/fix-libtool-from-moving-options-after-libs
+%__fix_dlsearch_path_in_libtool_for_multilib @USRLIBRPM@/@RPMCANONVENDOR@/fix-dlsearch-path-in-libtool-for-multilib
+
+%__cputoolize cputoolize
+
+%__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ ! -f configure.in -a ! -f configure.ac ] || %{__libtoolize} --copy --force)}
+
+%ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags}%{?_hardened_flags: %_hardened_flags}
+
+%setup_compile_flags \
+ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
+ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
+ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
+ %(if [ -n '%ldflags' ]; then echo 'LDFLAGS="$LDFLAGS%ldflags"; export LDFLAGS ;'; fi)
+
+%before_configure \
+ %setup_compile_flags \
+ CONFIGURE_TOP="${CONFIGURE_TOP:-.}"; \
+ %{?!_disable_ld_as_needed:@USRLIBRPM@/@RPMCANONVENDOR@/force-as-needed-for-shared-lib-in-libtool ;} \
+ %{?!_disable_ld_no_undefined:@USRLIBRPM@/@RPMCANONVENDOR@/drop-ld-no-undefined-for-shared-lib-modules-in-libtool ;} \
+ %{__fix_libtool_ltmain_from_overlinking} ; \
+ %{__fix_libtool_from_moving_options_after_libs} $CONFIGURE_TOP ; \
+ %{__fix_dlsearch_path_in_libtool_for_multilib} $CONFIGURE_TOP %{_lib}
+
+# This is an improved version of %configure (from PLD team).
+%configure \
+ %before_configure ; \
+ %{?!_disable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \
+ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \
+ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \
+ $CONFIGURE_TOP/configure %{_target_platform} \\\
+ --program-prefix=%{?_program_prefix} \\\
+ --prefix=%{_prefix} \\\
+ --exec-prefix=%{_exec_prefix} \\\
+ --bindir=%{_bindir} \\\
+ --sbindir=%{_sbindir} \\\
+ --sysconfdir=%{_sysconfdir} \\\
+ --datadir=%{_datadir} \\\
+ --includedir=%{_includedir} \\\
+ --libdir=%{_libdir} \\\
+ --libexecdir=%{_libexecdir} \\\
+ --localstatedir=%{_localstatedir} \\\
+ --sharedstatedir=%{_sharedstatedir} \\\
+ --mandir=%{_mandir} \\\
+ --infodir=%{_infodir} \\\
+ $CONFIGURE_XPATH
+
+%configure2_5x \
+ %before_configure ; \
+ %{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \
+ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \
+ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \
+ $CONFIGURE_TOP/configure --build=%{_target_platform} \\\
+ --prefix=%{_prefix} \\\
+ --exec-prefix=%{_exec_prefix} \\\
+ --bindir=%{_bindir} \\\
+ --sbindir=%{_sbindir} \\\
+ --sysconfdir=%{_sysconfdir} \\\
+ --datadir=%{_datadir} \\\
+ --includedir=%{_includedir} \\\
+ --libdir=%{_libdir} \\\
+ --libexecdir=%{_libexecdir} \\\
+ --localstatedir=%{_localstatedir} \\\
+ --sharedstatedir=%{_sharedstatedir} \\\
+ --mandir=%{_mandir} \\\
+ --infodir=%{_infodir} \\\
+ $CONFIGURE_XPATH
+
+
+%old_makeinstall \
+ make \\\
+ prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\
+ exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\
+ bindir=%{?buildroot:%{buildroot}}%{_bindir} \\\
+ sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\
+ sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\
+ datadir=%{?buildroot:%{buildroot}}%{_datadir} \\\
+ includedir=%{?buildroot:%{buildroot}}%{_includedir} \\\
+ libdir=%{?buildroot:%{buildroot}}%{_libdir} \\\
+ libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\
+ localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\
+ sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\
+ mandir=%{?buildroot:%{buildroot}}%{_mandir} \\\
+ infodir=%{?buildroot:%{buildroot}}%{_infodir} \\\
+ install
+
+
+%perl_convert_version() %(perl -Mversion -le '
+ $x = "%{1}";
+ $y = $x;
+ $x =~ s/[[:alpha:]]*$//;
+ $y =~ s/^$x//;
+ $x =~ s/\D*$//;
+ $v = version->new($x)->normal;
+ $v =~ s/^v//;
+ print "$v$y";
+')
+
+# kept for compatibility, but should not be used, especially the ugly perl_archlib!
+%perl_sitearch %(eval "`perl -V:installsitearch`"; echo $installsitearch)
+%perl_archlib %(eval "`perl -V:installarchlib`"; echo $installarchlib)
+
+#--------------------------------------------------------------------------------
+# Macro from conectiva
+
+# Shorthand for %{defined with_...}
+# macros provided by rpm 4.4, but buggy :(
+%_with() %{expand: %%{?_with_%1:1} %%{!?_with_%1: %%{?_without_%1:0} %%{!?_without_%1: %%{?with_%1:%%{with_%1}} %%{!?with_%1: %%{?without_%1:!%%{without_%1}} %%{!?without_%1: %%{?2:%%2} %%{!?2:1} } } } } }
+%_without() !%{expand: %%{with %1 %{?2:%2}}}
+
+%_package_i18n(g:f:) \
+%%package -n %{?1:%{1}}%{?!1:%{name}}-i18n\
+Summary: Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\
+License: %{license}\
+Group: %{?-g:%{-g*}}%{?!-g:%{group}}\
+\
+%%description -n %{?1:%{1}}%{?!1:%{name}}-i18n\
+Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\
+\
+%%files -n %{?1:%{1}}%{?!1:%{name}}-i18n %{?-f:%{-f}}%{?!-f:-f %{?1:%{1}}%{?!1:%{name}}.lang}\
+%{nil}
+
+
+#------------------------------------------------------------------------------
+# Ocaml macro
+#
+
+%ocaml_sitelib %(if [ -x /usr/bin/ocamlc ]; then ocamlc -where;fi)/site-lib
+
+#------------------------------------------------------------------------------
+# Redefine RPM sections to allow jumping over them using "--without <section>".
+# This an interesting alternative to --short-circuit.
+# The following are mostly equivalent:
+# % rpmbuild -bi --short-circuit foo.spec && rpmbuild -bb --short-circuit foo.spec
+# % rpmbuild -bb --without build foo.spec
+
+%prep %%prep \
+[ %{_with prep} -eq 1 ] || exit 0 \
+[ %{_with build} -eq 1 ] || exit 0 \
+[ %{_with install} -eq 1 ] || exit 0 \
+%{nil}
+
+%build %%build \
+[ %{_with install} -eq 1 ] || exit 0 \
+[ %{_with build} -eq 1 ] || exit 0 \
+%{nil}
+
+%install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package_and_restore}}}\
+%%install\
+[ %{_with install} -eq 1 ] || exit 0 \
+%{nil}
+
+%check %%check \
+[ %{_with check} -eq 1 ] || exit 0 \
+%{nil}
+
%{load:/etc/rpm/macros.d/*.macros}

View file

@ -0,0 +1,23 @@
--- rpm-5.4.4/macros/macros.rpmbuild.in.builddir~ 2011-12-20 15:36:20.813852241 +0100
+++ rpm-5.4.4/macros/macros.rpmbuild.in 2011-12-20 15:37:43.385806877 +0100
@@ -326,8 +326,9 @@ echo "Patch #%{__patch_number} (%{basena
%___build_args -e
%___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}
%___build_pre \
+ RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
RPM_OPT_FLAGS=\"%{optflags}\"\
- export RPM_OPT_FLAGS\
+ export RPM_BUILD_DIR RPM_OPT_FLAGS\
%{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\
export RPM_BUILD_ROOT}\
%{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\
--- rpm-5.4.4/scripts/find-debuginfo.sh.builddir~ 2011-12-20 15:36:31.962846125 +0100
+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-12-20 15:36:49.492836503 +0100
@@ -32,7 +32,6 @@ strip_r=false
# Barf on missing build IDs.
strict=false
-RPM_BUILD_DIR="`pwd`"
BUILDDIR=.
out=debugfiles.list
nout=0

View file

@ -0,0 +1,76 @@
--- rpm-5.4.4/scripts/pkgconfigdeps.sh.pc_path~ 2011-11-17 15:08:42.400054348 +0100
+++ rpm-5.4.4/scripts/pkgconfigdeps.sh 2011-11-17 15:08:44.380056984 +0100
@@ -16,20 +16,22 @@ case $1 in
while read filename ; do
case "${filename}" in
*.pc)
- # Query the dependencies of the package.
- DIR=`dirname ${filename}`
- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
- export PKG_CONFIG_PATH
- $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do
- [ -n "$n" ] || continue
- # We have a dependency. Make a note that we need the pkgconfig
- # tool for this package.
- if [ -n "$r" ] && [ -n "$v" ]; then
- echo "pkgconfig($n) $r $v"
- else
- echo "pkgconfig($n)"
- fi
- done
+ if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then
+ # Query the dependencies of the package.
+ DIR=`dirname ${filename}`
+ PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
+ export PKG_CONFIG_PATH
+ $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do
+ [ -n "$n" ] || continue
+ # We have a dependency. Make a note that we need the pkgconfig
+ # tool for this package.
+ if [ -n "$r" ] && [ -n "$v" ]; then
+ echo "pkgconfig($n) $r $v"
+ else
+ echo "pkgconfig($n)"
+ fi
+ done
+ fi
;;
esac
done
@@ -39,20 +41,22 @@ case $1 in
while read filename ; do
case "${filename}" in
*.pc)
- [ -n "$oneshot" ] && echo "$oneshot"; oneshot=""
- # Query the dependencies of the package.
- DIR=`dirname ${filename}`
- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
- export PKG_CONFIG_PATH
- $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do
- [ -n "$n" ] || continue
- if [ -n "$r" ] && [ -n "$v" ]; then
- echo "pkgconfig($n) $r $v"
- else
- echo "pkgconfig($n)"
- fi
- oneshot=""
- done
+ if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then
+ [ -n "$oneshot" ] && echo "$oneshot"; oneshot=""
+ # Query the dependencies of the package.
+ DIR=`dirname ${filename}`
+ PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig"
+ export PKG_CONFIG_PATH
+ $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do
+ [ -n "$n" ] || continue
+ if [ -n "$r" ] && [ -n "$v" ]; then
+ echo "pkgconfig($n) $r $v"
+ else
+ echo "pkgconfig($n)"
+ fi
+ oneshot=""
+ done
+ fi
;;
esac
done

View file

@ -0,0 +1,41 @@
--- rpm-5.4.4/build/parseChangelog.c.clean~ 2011-08-15 00:43:47.000000000 +0200
+++ rpm-5.4.4/build/parseChangelog.c 2011-11-12 17:52:00.756971839 +0100
@@ -269,11 +269,7 @@ int parseChangelog(Spec spec)
/* There are no options to %changelog */
if ((rc = readLine(spec, STRIP_COMMENTS)) > 0) {
iob = rpmiobFree(iob);
-#if defined(RPM_VENDOR_MANDRIVA)
- return (spec->clean == NULL) ? PART_CLEAN : PART_NONE;
-#else
return PART_NONE;
-#endif
}
if (rc != RPMRC_OK)
return rc;
@@ -285,11 +281,7 @@ int parseChangelog(Spec spec)
iob = rpmiobAppend(iob, spec->line, 0);
line = _free(line);
if ((rc = readLine(spec, STRIP_COMMENTS | STRIP_NOEXPAND)) > 0) {
-#if defined(RPM_VENDOR_MANDRIVA)
- nextPart = (spec->clean == NULL) ? PART_CLEAN : PART_NONE;
-#else
nextPart = PART_NONE;
-#endif
break;
}
if (rc != RPMRC_OK)
--- rpm-5.4.4/build/parseFiles.c.clean~ 2011-03-25 18:45:46.000000000 +0100
+++ rpm-5.4.4/build/parseFiles.c 2011-11-12 17:52:00.758971903 +0100
@@ -114,12 +114,7 @@ int parseFiles(Spec spec)
}
}
-#if defined(RPM_VENDOR_MANDRIVA)
- /* if no %clean section, add implicit */
- rc = (nextPart == PART_NONE && spec->clean == NULL) ? PART_CLEAN : nextPart;
-#else
rc = nextPart;
-#endif
exit:
argv = _free(argv);

View file

@ -0,0 +1,10 @@
--- rpm-5.4.4/rpmpopt.in.clean~ 2011-12-05 20:52:18.544053402 +0100
+++ rpm-5.4.4/rpmpopt.in 2011-12-05 20:53:51.520325674 +0100
@@ -454,5 +454,7 @@ rpmbuild alias --lsb --noautoreq --noaut
rpmbuild alias --withoutcheck --define 'check exit 0' \
--POPTdesc=$"disable %check stanza for build"
+rpmbuild alias --withoutclean --define '__spec_clean_body %{nil}' \
+ --POPTdesc=$"disable %clean stanza for build"
# \endverbatim
#*/

View file

@ -0,0 +1,21 @@
--- rpm-5.4.4/build/files.c.srcdefattr~ 2011-12-23 00:01:26.894705831 +0100
+++ rpm-5.4.4/build/files.c 2011-12-23 00:03:26.074836579 +0100
@@ -2790,7 +2790,7 @@ int processSourceFiles(Spec spec)
rc = fl.processingFailed = 1;
}
-#if defined(RPM_VENDOR_OPENPKG) /* support-srcdefattr */
+#if defined(RPM_VENDOR_OPENPKG) || defined(RPM_VENDOR_MANDRIVA) /* support-srcdefattr */
/* srcdefattr: allow to set SRPM file attributes via %{_srcdefattr} macro */
if (fl.def_ar.ar_fmodestr) {
flp->fl_mode &= S_IFMT;
--- rpm-5.4.4/macros/mandriva.in.srcdefattr~ 2011-12-23 00:02:58.200806169 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-12-23 00:03:14.094823523 +0100
@@ -21,6 +21,7 @@
# Build root path, where %install installs the package during build.
%buildroot %{_buildrootdir}/%{name}-%{version}-%{release}%{?disttag:-%{disttag}%{?distepoch:%{distepoch}}}.%{_target_cpu}-buildroot
+%_srcdefattr (644,root,root)
# Path to top of build area.
%_topdir %(echo $HOME)/rpmbuild

View file

@ -0,0 +1,98 @@
--- rpm-5.4.4/build/files.c.buildroot_dups~ 2010-08-28 18:07:04.000000000 +0200
+++ rpm-5.4.4/build/files.c 2011-12-05 20:25:54.273100370 +0100
@@ -2909,7 +2909,7 @@ exit:
/* auxiliary function for checkDuplicateFiles() */
/* XXX need to pass Header because fi->h is NULL */
-static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2)
+static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, size_t buildrootL)
/*@globals internalState @*/
/*@modifies fi1, fi2, internalState @*/
{
@@ -2933,7 +2933,7 @@ static int fiIntersect(/*@null@*/ rpmfi
if (!dups)
dups = rpmiobNew(0);
dups = rpmiobAppend(dups, "\t", 0);
- dups = rpmiobAppend(dups, fn1, 1);
+ dups = rpmiobAppend(dups, fn1+buildrootL, 1);
n++;
}
}
@@ -2964,7 +2964,7 @@ static int fiIntersect(/*@null@*/ rpmfi
* @param spec spec file control structure
* @return number of duplicate files
*/
-static int checkDuplicateFiles(Spec spec)
+static int checkDuplicateFiles(Spec spec, size_t buildrootL)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies *spec->packages,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -2989,7 +2989,7 @@ static int checkDuplicateFiles(Spec spec
#endif
if (fi2 == NULL) continue;
(void) rpmfiSetHeader(fi2, pkg2->header);
- n += fiIntersect(fi1, fi2);
+ n += fiIntersect(fi1, fi2, buildrootL);
(void) rpmfiSetHeader(fi2, NULL);
fi2 = rpmfiFree(fi2);
}
@@ -3015,7 +3015,7 @@ static inline int packagedDir(Package pk
* /A/B/C/D
* Now directories "/A/B" and "/A/B/C" should also be packaged.
*/
-static int pkgUnpackagedSubdirs(Package pkg)
+static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies pkg->header,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -3088,7 +3088,7 @@ static int pkgUnpackagedSubdirs(Package
for (i = 0; i < n; i++) {
list = rpmiobAppend(list, "\t", 0);
- list = rpmiobAppend(list, unpackaged[i], 1);
+ list = rpmiobAppend(list, unpackaged[i]+buildrootL, 1);
unpackaged[i] = _free(unpackaged[i]);
}
unpackaged = _free(unpackaged);
@@ -3109,7 +3109,7 @@ static int pkgUnpackagedSubdirs(Package
* @param spec spec file control structure
* @return number of unpackaged subdirectories
*/
-static int checkUnpackagedSubdirs(Spec spec)
+static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies *spec->packages,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -3118,7 +3118,7 @@ static int checkUnpackagedSubdirs(Spec s
Package pkg;
for (pkg = spec->packages; pkg; pkg = pkg->next)
- n += pkgUnpackagedSubdirs(pkg);
+ n += pkgUnpackagedSubdirs(pkg, buildrootL);
return n;
}
@@ -3128,7 +3128,11 @@ rpmRC processBinaryFiles(Spec spec, int
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
Package pkg;
rpmRC res = RPMRC_OK;
-
+ char *buildroot = rpmExpand("%{?buildroot}", NULL);
+ size_t buildrootL = strlen(buildroot);
+
+ buildroot = _free(buildroot);
+
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
int rc;
@@ -3170,8 +3174,8 @@ rpmRC processBinaryFiles(Spec spec, int
if (res == RPMRC_OK) {
if (checkUnpackagedFiles(spec) > 0)
res = RPMRC_FAIL;
- (void) checkDuplicateFiles(spec);
- (void) checkUnpackagedSubdirs(spec);
+ (void) checkDuplicateFiles(spec, buildrootL);
+ (void) checkUnpackagedSubdirs(spec, buildrootL);
}
return res;

View file

@ -0,0 +1,69 @@
--- rpm-5.4.4/build/files.c.subdir_terminate~ 2011-12-05 20:37:46.641647149 +0100
+++ rpm-5.4.4/build/files.c 2011-12-05 20:40:57.247139251 +0100
@@ -3017,7 +3017,7 @@ static inline int packagedDir(Package pk
* /A/B/C/D
* Now directories "/A/B" and "/A/B/C" should also be packaged.
*/
-static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL)
+static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL, int _unpackaged_subdirs_terminate_build)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies pkg->header,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -3095,7 +3095,7 @@ static int pkgUnpackagedSubdirs(Package
}
unpackaged = _free(unpackaged);
- rpmlog(RPMLOG_WARNING,
+ rpmlog(_unpackaged_subdirs_terminate_build ? RPMLOG_ERR : RPMLOG_WARNING,
_("Unpackaged subdir(s) in %s:\n%s"),
N, rpmiobStr(list));
@@ -3111,7 +3111,7 @@ static int pkgUnpackagedSubdirs(Package
* @param spec spec file control structure
* @return number of unpackaged subdirectories
*/
-static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL)
+static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL, int _unpackaged_subdirs_terminate_build)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies *spec->packages,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -3120,7 +3120,7 @@ static int checkUnpackagedSubdirs(Spec s
Package pkg;
for (pkg = spec->packages; pkg; pkg = pkg->next)
- n += pkgUnpackagedSubdirs(pkg, buildrootL);
+ n += pkgUnpackagedSubdirs(pkg, buildrootL, _unpackaged_subdirs_terminate_build);
return n;
}
@@ -3176,12 +3176,16 @@ rpmRC processBinaryFiles(Spec spec, int
if (res == RPMRC_OK) {
int _duplicate_files_terminate_build =
rpmExpandNumeric("%{?_duplicate_files_terminate_build}");
+ int _unpackaged_subdirs_terminate_build =
+ rpmExpandNumeric("%{?_unpackaged_subdirs_terminate_build}");
if (checkUnpackagedFiles(spec) > 0)
res = RPMRC_FAIL;
if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 &&
_duplicate_files_terminate_build)
res = RPMRC_FAIL;
- (void) checkUnpackagedSubdirs(spec, buildrootL);
+ if (checkUnpackagedSubdirs(spec, buildrootL, _unpackaged_subdirs_terminate_build) > 0 &&
+ _unpackaged_subdirs_terminate_build)
+ res = RPMRC_FAIL;
}
return res;
--- rpm-5.4.4/macros/mandriva.in.subdir_terminate~ 2011-12-05 20:38:03.530691550 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-12-05 20:43:00.756448098 +0100
@@ -120,8 +120,9 @@ end\
#%_multiarch_required_terminate_build 1
%_duplicate_files_terminate_build 1
-%_enable_debug_packages 1
+%_unpackaged_subdirs_terminate_build 0
+%_enable_debug_packages 1
# Default extension to use (for info files)
%_extension .xz

View file

@ -0,0 +1,84 @@
--- rpm-5.4.4/lib/order.c.ordering~ 2011-01-14 15:06:08.000000000 +0100
+++ rpm-5.4.4/lib/order.c 2011-11-16 11:31:23.529577558 +0100
@@ -332,7 +332,7 @@ static inline /*@observer@*/ const char
/*@-mustmod@*/ /* FIX: hack modifies, but -type disables */
static /*@owned@*/ /*@null@*/ const char *
zapRelation(rpmte q, rpmte p,
- int zap, /*@in@*/ /*@out@*/ int * nzaps, int msglvl)
+ int zap, /*@in@*/ /*@out@*/ int * nzaps, int msglvl, rpmuint32_t skipFlags)
/*@globals rpmGlobalMacroContext, h_errno, internalState @*/
/*@modifies q, p, *nzaps, rpmGlobalMacroContext, internalState @*/
{
@@ -364,6 +364,18 @@ zapRelation(rpmte q, rpmte p,
dp = rpmdsNewDNEVR( identifyDepend(Flags), requires);
+ if(Flags & skipFlags) {
+ if(zap) {
+ rpmlog(msglvl,
+ _("not removing %s \"%s\" from tsort relations.\n"),
+ (rpmteNEVRA(p) ? rpmteNEVRA(p) : "???"), dp);
+ if (nzaps)
+ (*nzaps)++;
+ }
+ dp = _free(dp);
+ continue;
+ }
+
/*
* Attempt to unravel a dependency loop by eliminating Requires's.
*/
@@ -1812,6 +1824,18 @@ int _rpmtsOrder(rpmts ts)
int depth;
int breadth;
int qlen;
+ static const evrFlags orderPriority[] = {
+ RPMSENSE_MISSINGOK,
+ RPMSENSE_SCRIPT_VERIFY,
+ RPMSENSE_PACKAGE,
+ RPMSENSE_FIND_REQUIRES,
+ _ERASE_ONLY_MASK,
+ _INSTALL_ONLY_MASK,
+ _ALL_REQUIRES_MASK
+ }; /* dependency to zap in order to try resolve dependency loops */
+ rpmuint32_t skipFlags = _ALL_REQUIRES_MASK;
+ unsigned sfi = 0;
+
#endif /* REFERENCE */
if (_rpmts_debug)
@@ -2007,6 +2031,9 @@ fprintf(stderr, "--> %s(%p) tsFlags 0x%x
rescan:
if (pi != NULL) pi = rpmtsiFree(pi);
#endif
+ if (sfi < sizeof(orderPriority))
+ skipFlags &= ~orderPriority[sfi++];
+
q = r = NULL;
qlen = 0;
pi = rpmtsiInit(ts);
@@ -2168,10 +2195,14 @@ rescan:
const char * nevra;
#endif
const char * dp;
+ /*
+ * TODO: use RPMLOG_DEBUG for when loops can be resolved
+ * without zapping all dependencies in it
+ */
rpmlogLvl msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS))
? RPMLOG_WARNING : RPMLOG_ERR;
#if defined(RPM_VENDOR_MANDRIVA) /* loop-detection-optional-loglevel */
- // Report loops as debug-level message by default (7 = RPMLOG_DEBUG), overridable
+ /* Report loops as debug-level message by default (7 = RPMLOG_DEBUG), overridable */
msglvl = rpmExpandNumeric("%{?_loop_detection_loglevel}%{?!_loop_detection_loglevel:7}");
#endif
@@ -2184,7 +2215,7 @@ rescan:
}
/* Find (and destroy if co-requisite) "q <- p" relation. */
- dp = zapRelation(q, p, 1, &nzaps, msglvl);
+ dp = zapRelation(q, p, 1, &nzaps, msglvl, skipFlags);
#if 0
/* Print next member of loop. */

View file

@ -0,0 +1,11 @@
--- rpm-5.4.4/macros/mandriva.in.dwarf4~ 2011-11-29 04:41:23.525745975 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-11-29 04:41:25.922750183 +0100
@@ -141,7 +141,7 @@ end\
# - %{mklibname test 1 -d 0 -s} => libtest1_0-static-devel
%mklibname(ds) %{_lib}%{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel}
-%debugcflags %{?_enable_debug_packages:-g -frecord-gcc-switches -Wstrict-aliasing=2}
+%debugcflags %{?_enable_debug_packages:-gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2}
# common compilation flags

View file

@ -0,0 +1,10 @@
--- rpm-5.4.4/macros/mandriva.in.payload~ 2011-11-24 15:37:02.168124916 +0100
+++ rpm-5.4.4/macros/mandriva.in 2011-11-24 15:37:47.394168890 +0100
@@ -192,4 +192,7 @@ export CFLAGS="%optflags -fPIE"; export
# activate filetriggers (cf http://wiki.mandriva.com/en/Rpm_filetriggers)
%_filetriggers_dir /var/lib/rpm/filetriggers
+# use XZ to compress binary packages:
+%_binary_payload w5.xzdio
+
%{load:/etc/rpm/macros.d/*.macros}

View file

@ -1,29 +0,0 @@
Amusements/Games
Amusements/Graphics
Applications/Archiving
Applications/Communications
Applications/Databases
Applications/Editors
Applications/Emulators
Applications/Engineering
Applications/File
Applications/Internet
Applications/Multimedia
Applications/Productivity
Applications/Publishing
Applications/System
Applications/Text
Development/Debuggers
Development/Languages
Development/Libraries
Development/System
Development/Tools
Documentation
System Environment/Base
System Environment/Daemons
System Environment/Kernel
System Environment/Libraries
System Environment/Shells
User Interface/Desktops
User Interface/X
User Interface/X Hardware Support

4
rpm.rpmlintrc Normal file
View file

@ -0,0 +1,4 @@
from Config import *
from os import environ
addFilter('rpm\..*: standard-dir-owned-by-package (\(.*\) |)/var/lib/rpm')

520
rpm.spec
View file

@ -14,7 +14,8 @@
%bcond_without perl
%bcond_without python
%bcond_without docs
%bcond_without sqlite
# use what's in berkeley db
%bcond_with sqlite
%endif
%bcond_with notyet
@ -33,42 +34,40 @@
%endif
%if %{with debug}
%define debugcflags -g -O0
%global debugcflags %{debugcflags} -g3 -O0
%endif
#include %{_sourcedir}/bootstrap.spec
#include %%{_sourcedir}/bootstrap.spec
%define bdb db51
%define bdb db52
%define libver 5.3
%define minorver 12
%define libver 5.4
%define minorver 4
%define srcver %{libver}.%{minorver}
%define prereldate 20110712
#define prereldate 20110712
%define librpmname %mklibname rpm %{libver}
%define librpmname %mklibname rpm %{libver}
%define librpmnamedevel %mklibname -d rpm
%define librpmstatic %mklibname -d -s rpm
Summary: The RPM package management system
Name: rpm
Version: %{libver}.%{minorver}
Release: %{?prereldate:0.%{prereldate}.}2
Release: %{?prereldate:0.%{prereldate}.}31
Epoch: 1
Group: System/Configuration/Packaging
URL: http://rpm5.org/
# snapshot from rpm-5_3 branch: 'cvs -d :pserver:anonymous@rpm5.org:/cvs co -r rpm-5_3 rpm'
# snapshot from rpm-5_4 branch: 'cvs -d :pserver:anonymous@rpm5.org:/cvs co -r rpm-5_4 rpm'
# tarball generated with './devtool tarball.xz'
Source0: ftp://ftp.jbj.org/pub/rpm-%{libver}.x/%{name}-%{srcver}.tar.xz
Source0: ftp://ftp.jbj.org/pub/rpm-%{libver}.x/%{name}-%{srcver}.tar.gz
#Source1: bootstrap.spec
# Needed by rpmlint. Still required? If so, this file should rather be carried
# with rpmlint itself rather than requiring for rpm to carry...
Source2: rpm-GROUPS
# These are a bit dated with a lot of redundant macros and many of them no
# of use at all anymore! Should ideally just contain the macros different
# from the default; _arch, optflags, _lib & _multilib*.
# stripping away the rest (along with os specificity) and create a resulting
# cpu-macros.tar.gz to push upstream would seem like a sane improvement.
Source2: rpm.rpmlintrc
Source3: cpu-os-macros.tar.gz
Source4: legacy_compat.macros
# already merged upstream
@ -92,18 +91,89 @@ Patch19: rpm-5.3.10-doxygen-1.7.4-bug.patch
Patch20: rpm-5.3.11-fix-syslog-b0rkage.patch
Patch21: rpm-5.3.12-change-dep-loop-errors-to-warnings.patch
Patch22: rpm-5.3.12-55810-rpmevrcmp-again-grf.patch
# FIXME: later..
Patch23: rpm-5.4.3-no-libsql.patch
Patch27: rpm-5.4.4-merge-find-debuginfo.sh-from-mandriva.patch
Patch28: rpm-5.4.4-merge-find-lang.sh-changes-from-rpm.org.patch
Patch29: rpm-5.4.4-add-_specfile-macro.patch
Patch30: rpm-5.4.4-fix-rpm-qf-on-non-packaged-files.patch
Patch31: rpm-5.4.4-fix-rpm_qa-pattern.patch
# uhm.. broken?
Patch32: rpm-5.4.4-really-always-invoke-clean-at-end.patch
Patch33: rpm-5.4.4-fix-mdvbz62979.patch
# This patch adds support for untangling dependency loops with prioritized removal
# of dependencies from loops. It's very crude for now and certainly needs some obvious
# improvement, but it'll fix the most common scenario giving issues where ie.
# Requires(post) has been used and shouldn't introduce any regressions..
# REF: http://rpm5.org/community/rpm-devel/4633.html
Patch34: rpm-5.4.4-use-dependency-type-for-ordering.patch
Patch35: rpm-5.4.4-find_lang-with-html.patch
Patch36: rpm-5.4.4-find_lang-support-multiple-names.patch
Patch37: rpm-5.4.4-avoid-dependencies-on-self.patch
Patch38: rpm-5.4.4-find_lang-handle-man-pages-already-compressed.patch
Patch39: rpm-5.4.4-find-debuginfo-drop-useless-sort.patch
Patch40: rpm-5.4.4-pkgconfigdeps-check-path.patch
Patch41: rpm-5.4.4-merge-manbo-macros.patch
Patch42: rpm-5.4.4-glob-wildcards-for-loading-macro-files.patch
Patch43: rpm-5.4.4-merge-common-rpm-mandriva-setup-macros.patch
Patch44: rpm-5.4.4-use-xz-payload.patch
Patch45: rpm-5.4.4-merge-rpm-mandriva-setup-build-macros.patch
Patch46: rpm-5.4.4-allow-installation-of-repackaged-rpms.patch
Patch47: rpm-5.4.4-fix-removal-of-overlapping-dependencies.patch
Patch48: rpm-5.4.4-dont-show-suggests-with-requires.patch
# syncing debugedit commits from rpm.org
Patch49: rpm-5.4.4-debugedit-whitespace-fixups.patch
Patch50: rpm-5.4.4-debugedit-recompute-build-id-only-on-dwarf-change.patch
Patch51: rpm-5.4.4-debugedit-fix-incorrect-error-messages-regarding_-b-and_-d.patch
Patch52: rpm-5.4.4-debugedit-remove-unused-variable.patch
Patch53: rpm-5.4.4-debugedit-bail-out-of-debuginfo-if-stabs-format-encountered.patch
Patch54: rpm-5.4.4-debugedit-add-dwarf4-support.patch
# backport from HEAD
Patch55: rpm-5.4.4-find-debuginfo-strip-reloc-debug-sections.patch
Patch56: rpm-5.4.4-fix-scripts-breaking-when-RPM_BUILD_ROOT-contains-spaces.patch
Patch57: rpm-5.4.4-create-gdb-index-from-find-debuginfo-if-possible.patch
Patch58: rpm-5.4.4-use-dwarf4-debug-format.patch
Patch59: rpm-5.4.4-compress-debug-sections.patch
Patch60: rpm-5.4.4-find-debuginfo-add-missing-partial-strip.patch
Patch61: rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch
Patch62: rpm-5.4.4-fix-_sys_macros_dir-path.patch
Patch63: rpm-5.4.4-strip-buildroot-away-from-duplicate-files-list.patch
Patch64: rpm-5.4.4-duplicate_files_terminate_build.patch
Patch65: rpm-5.4.4-unpackaged_subdirs_terminate_build.patch
# mdvbz#64898
Patch66: rpm-5.4.4-rpmbuild-withoutclean.patch
Patch67: rpm-5.4.4-find-debuginfo-avoid-excessive-output-from-eu-strip.patch
# mdvbz#64914
Patch68: rpm-5.4.4-enable-rpmgio-net-transport.patch
# no sense in having an additional dependency on 'pkgconfig' on all packages that
# have a pkgconfig file, it's not needed for them to be made useful and anything
# actuallly using pkgconfig for this purpose will pull it in as a dependency anyways...
Patch69: rpm-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch
# drop dependencies such as /bin/sh which will always be satisfied by glibc's dependency on
# bash, and also on /sbin/ldconfig which always will be satisfied by glibc
Patch70: rpm-5.4.4-drop-base-dependencies.patch
Patch71: rpm-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch
# from rpm.org
Patch72: rpm-5.4.4-debugedit-recognize-debug_macro-section.patch
# from rpm.org
Patch73: rpm-5.4.4-add-_build_pkgcheck.patch
# $RPM_BUILD_DIR isn't necessarily the same as $PWD, it's %%{_builddir}, not
# %%{_builddir}/%%{?buildsubdir}, messing up paths in debug packages created..
Patch74: rpm-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch
Patch75: rpm-5.4.4-srcdefattr.patch
Patch76: rpm-5.4.4-files-listed-twice-terminates-build.patch
License: LGPLv2.1+
BuildRequires: autoconf >= 2.57 bzip2-devel automake >= 1.8 elfutils-devel
BuildRequires: sed >= 4.0.3 beecrypt-devel ed gettext-devel byacc
BuildRequires: neon0.27-devel rpm-%{_target_vendor}-setup-build %{?rpmsetup_version:>= %{rpmsetup_version}}
BuildRequires: readline-devel ncurses-devel openssl-devel
BuildRequires: liblzma-devel lua-devel pcre-devel acl-devel
BuildRequires: magic-devel popt-devel >= 1.15
BuildRequires: sed >= 4.0.3 beecrypt-devel >= 4.2.1-8 ed gettext-devel byacc
BuildRequires: pkgconfig(neon) rpm-%{_target_vendor}-setup-build
BuildRequires: readline-devel ncurses-devel pkgconfig(libssl) pkgconfig(libcrypto)
BuildRequires: pkgconfig(liblzma) pkgconfig(lua) pkgconfig(libpcre) pkgconfig(libpcreposix)
BuildRequires: acl-devel magic-devel pkgconfig(popt) >= 1.15 libxml2-devel >= 2.7.8-9
%ifarch %{ix86} x86_64 ppc ppc64 ia64
BuildRequires: cpuinfo-devel
BuildRequires: pkgconfig(libcpuinfo)
%endif
BuildRequires: syck-devel keyutils-devel
BuildRequires: libgomp-devel gnutls-devel gnupg2
BuildRequires: gomp-devel pkgconfig(gnutls) gnupg2
# required by parts of test suite...
BuildRequires: wget
# Should we prefer internal xar in stead? internal xar contains at least
@ -112,7 +182,7 @@ BuildRequires: wget
%if %{with xar}
BuildRequires: xar-devel
%endif
BuildRequires: %{bdb}-devel >= 5.1.25
BuildRequires: %{bdb}-devel >= 5.2.36-3
# required by test suite
BuildRequires: %{bdb}-utils
%if %{with perl}
@ -122,7 +192,7 @@ BuildRequires: perl-devel
BuildRequires: python-devel
%endif
%if %{with js}
BuildRequires: mozjs-devel
BuildRequires: pkgconfig(mozjs185)
%endif
%if %{with ruby}
BuildRequires: ruby-devel
@ -134,24 +204,24 @@ BuildRequires: tcl
BuildRequires: doxygen graphviz texlive
%endif
%if %{with sqlite}
BuildRequires: sqlite3-devel
BuildRequires: pkgconfig(sqlite3)
%endif
%if %{with ossp-uuid}
BuildRequires: ossp-uuid-devel
BuildRequires: pkgconfig(ossp-uuid)
%endif
%if %{with augeas}
BuildRequires: augeas-devel
BuildRequires: pkgconfig(augeas)
%endif
Requires: cpio gawk mktemp rpm-%{_target_vendor}-setup >= 1.42 update-alternatives
BuildRequires: spec-helper >= 0.31.7 stdc++-static-devel >= 4.6.2-8
Requires: cpio gawk mktemp update-alternatives
Requires: %{bdb}_recover
Suggests: %{bdb}-utils
Requires: %{librpmname} = %{EVRD}
Conflicts: rpm-build < 1:5.3.10-0.20110422.3
Requires(pre): rpm-helper >= 0.8
Requires(pre): coreutils
Requires(postun):rpm-helper >= 0.8
%rename rpmconstant
%rename multiarch-utils
%rename rpm-manbo-setup
%description
RPM is a powerful command line driven package management system capable of
@ -212,10 +282,14 @@ Requires: libtool-base
Requires: patch >= 2.5.9-7
Requires: make
Requires: unzip
Requires: elfutils
Requires: elfutils >= 0.152-4
Requires: rpm = %{EVRD}
Requires: rpm-%{_target_vendor}-setup-build
Requires: spec-helper >= 0.31.7
Requires: rpmlint-%{_target_vendor}-policy >= 0.3.2
Conflicts: rpmlint < 1.4-4
Conflicts: multiarch-utils < 1:5.3.10
%rename rpm-manbo-setup-build
%description build
This package contains scripts and executable programs that are used to
@ -265,23 +339,75 @@ This package contains the RPM API documentation generated in HTML format.
%if 0
%patch0 -p1 -b .set_lg_dir~
%patch1 -p1 -b .dep_whiteout~
%endif
%patch2 -p1 -b .scriptlet~
%patch3 -p1 -b .doc_conflicts~
%if 0
%patch4 -p1 -b .distsuffix~
%patch5 -p1 -b .distpatt~
%patch15 -p1 -b .trigger_once~
%endif
%patch19 -p1 -b .doxygen~
%patch20 -p1 -b .syslog~
%patch21 -p1 -b .loop_warnings~
%patch22 -p1 -b .55810~
#%%patch21 -p1 -b .loop_warnings~
#%%patch22 -p1 -b .55810~
%patch23 -p1 -b .nolibsql~
%patch27 -p1 -b .mdv~
%patch28 -p1 -b .rpmorg~
%patch29 -p1 -b .specfile~
%patch30 -p1 -b .qf_non~
%patch31 -p1 -b .rpm_qa~
#%%patch32 -p1 -b .clean~
%patch33 -p1 -b .mdvbz62979~
%patch34 -p1 -b .ordering~
%patch35 -p1 -b .html~
%patch36 -p1 -b .multi~
%patch37 -p1 -b .drop_deps~
%patch38 -p1 -b .man_comp~
%patch39 -p1 -b .no_sort~
%patch40 -p1 -b .pc_paths~
%patch41 -p1 -b .manbo~
%patch42 -p1 -b .glob~
%patch43 -p1 -b .common~
%patch44 -p1 -b .payload~
%patch45 -p1 -b .build~
%patch46 -p1 -b .repackage~
%patch47 -p1 -b .overlap~
%patch48 -p1 -b .suggests~
%patch49 -p1 -b .debugedit_whitespace~
%patch50 -p1 -b .debugedit_recompute~
%patch51 -p1 -b .debugedit_errormsgs~
%patch52 -p1 -b .debugedit_unused_var~
%patch53 -p1 -b .debugedit_stabs_fail~
%patch54 -p1 -b .debugedit_dwarf4~
%patch55 -p1 -b .strip_reloc_debug~
%patch56 -p1 -b .quotes~
%patch57 -p1 -b .gdb_index~
%patch58 -p1 -b .dwarf4~
%patch59 -p1 -b .compress_debug~
%patch60 -p1 -b .partial_strip~
%patch61 -p1 -b .epoch_cmp~
%patch62 -p1 -b ._sys_macros_dir~
%patch63 -p1 -b .buildroot_dups~
%patch64 -p1 -b .dups_terminate~
%patch65 -p1 -b .subdir_terminate~
%patch66 -p1 -b .withoutclean~
%patch67 -p1 -b .strip_silent~
%patch68 -p1 -b .rpmgio_ufdio~
%patch69 -p1 -b .oneshot~
%patch70 -p1 -b .drop_basedeps~
%patch71 -p1 -b .locale~
%patch72 -p1 -b .debug_macro~
%patch73 -p1 -b .pkgcheck~
%patch74 -p1 -b .builddir~
%patch75 -p1 -b .srcdefattr~
%patch76 -p1 -b .twice_terminate~
#required by patch55
./autogen.sh
mkdir -p cpu-os-macros
tar -zxf %{SOURCE3} -C cpu-os-macros
# Needed by rpmlint.
cp %{SOURCE2} GROUPS
%build
%configure2_5x --enable-nls \
--with-pic \
@ -388,7 +514,7 @@ echo '#define PREMACROFILES "%{_sysconfdir}/rpm/premacros.d/*.macros"' >> config
%endif
%check
make check
#make check
%install
%makeinstall_std
@ -414,10 +540,11 @@ cat > %{buildroot}%{_sysconfdir}/%{name}/macros <<EOF
EOF
# FIXME: weird issue, seems to have issue with lines starting with '%%_'...
cat > %{buildroot}%{_sysconfdir}/%{name}/premacros.d/cpuinfo_target.macros <<EOF
# This sets which of the available architectures to prefer when building
# packages with libcpuinfo support enabled.
%%_prefer_target_cpu x86_64 i586
%%_prefer_target_cpu x86_64 i586
EOF
# Get rid of unpackaged files
@ -432,15 +559,10 @@ done
%find_lang %{name}
%define rpmdbattr %attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
mkdir -p %{buildroot}/var/lib/rpm/{log,tmp}
for dbi in `./rpm --macros macros/macros --eval %_dbi_tags_4|tr : ' '` Seqno; do
for dbi in `./rpm --macros macros/macros --eval %_dbi_tags_4|tr : ' '` Seqno __db.00{0..9}; do
touch %{buildroot}/var/lib/rpm/$dbi
echo "%rpmdbattr /var/lib/rpm/$dbi" >> %{name}.lang
done
for i in {0..9}; do
touch %{buildroot}/var/lib/rpm/__db.00$i
echo "%rpmdbattr /var/lib/rpm/__db.00$i" >> %{name}.lang
echo "%attr(0644, root, root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_localstatedir}/lib/rpm/$dbi" >> %{name}.lang
done
install -d %{buildroot}/bin
@ -456,39 +578,42 @@ mv %{buildroot}%{_bindir}/rpm %{buildroot}/bin/rpm
cp -r cpu-os-macros %{buildroot}%{_usrlibrpm}/platform
install -m644 %{SOURCE4} -D %{buildroot}%{_sysconfdir}/%{name}/macros.d/legacy_compat.macros
#ln -sf ppc-linux %{buildroot}%{_usrlibrpm}/platform/powerpc-%{_target_vendor}-linux
%if %{with docs}
install -d %{buildroot}%{_docdir}/rpm
cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%endif
%pre
# XXX: really sceptical about rpm actually requiring or even using it's own
# dedicated user for any purpose (and there's no suid/guid no binaries either), really
# smells like an old suid/guid relic of the past...
/usr/share/rpm-helper/add-user rpm $1 rpm /var/lib/rpm /bin/false
%postun
/usr/share/rpm-helper/del-user rpm $1 rpm
# hm, spec-helper not 100%..?
rm -f %{buildroot}%{_libdir}/*.la
# TODO: review which files goes into what packages...?
%files -f %{name}.lang
%doc GROUPS CHANGES doc/manual/[a-z]*
%doc CHANGES doc/manual/[a-z]*
%if %{with docs}
%exclude %{_docdir}/rpm/html
%endif
# Are these attributes actually still sane? Smells deprecated/legacy...
%defattr(755, rpm, rpm, 755)
/bin/rpm
%{_bindir}/multiarch-dispatch
%{_bindir}/rpmconstant*
%{_bindir}/rpm2cpio*
%{_rpmhome}/bin/augtool
%{_rpmhome}/bin/chroot
%{_rpmhome}/bin/cp
%{_rpmhome}/bin/dbconvert
#%{_rpmhome}/bin/grep
%{_rpmhome}/bin/find
#%%{_rpmhome}/bin/grep
#%%{_rpmhome}/bin/lua
%{_rpmhome}/bin/mtree
%{_rpmhome}/bin/mgo
%{_rpmhome}/bin/pom2spec
#%%{_rpmhome}/bin/rc
%{_rpmhome}/bin/rpmspecdump
%{_rpmhome}/bin/wget
%if %{with xar}
%{_rpmhome}/bin/txar
%endif
%{_rpmhome}/dbconvert.sh
%{_rpmhome}/rpm.*
%{_rpmhome}/rpm2cpio
@ -500,7 +625,6 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%dir %{_localstatedir}/lib/rpm/tmp
%defattr(0644, rpm, rpm, 755)
%{_rpmhome}/macros.d/*
%{_rpmhome}/cpuinfo.yaml
%{_rpmhome}/macros
@ -508,7 +632,6 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%{_rpmhome}/platform/*/macros
%config(noreplace) %{_localstatedir}/lib/rpm/DB_CONFIG
%defattr(-,root,root)
%dir %{_localstatedir}/spool/repackage
%dir %{_rpmhome}
%dir %{_rpmhome}/bin
@ -539,17 +662,13 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%{_includedir}/multiarch-dispatch.h
%files build
%defattr(755, rpm, rpm)
%{_bindir}/gendiff
%{_bindir}/rpmbuild
%{_bindir}/multiarch-platform
%{_rpmhome}/bin/abi-compliance-checker.pl
%{_rpmhome}/bin/api-sanity-autotest.pl
%{_rpmhome}/bin/chroot
%{_rpmhome}/bin/cp
%{_rpmhome}/bin/dbsql
%{_rpmhome}/bin/debugedit
%{_rpmhome}/bin/find
%{_rpmhome}/bin/install-sh
%{_rpmhome}/bin/mkinstalldirs
%{_rpmhome}/bin/rpmcache
@ -559,10 +678,6 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%{_rpmhome}/bin/rpmkey
%{_rpmhome}/bin/rpmrepo
%{_rpmhome}/bin/sqlite3
%if %{with xar}
%{_rpmhome}/bin/txar
%endif
%{_rpmhome}/bin/wget
%dir %{_rpmhome}/helpers
%{_rpmhome}/helpers/*
%dir %{_rpmhome}/qf
@ -607,8 +722,7 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%if %{with js}
%{_rpmhome}/bin/tjs
%endif
%attr(0644, rpm, rpm) %{_rpmhome}/macros.rpmbuild
%defattr(-, root, root)
%{_rpmhome}/macros.rpmbuild
%{_mandir}/man8/rpmbuild.8*
%{_mandir}/man8/rpmdeps.8*
@ -626,38 +740,29 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%{_rpmhome}/lib/librpmjsm.so.*
%{_rpmhome}/lib/rpmjsm.so
%endif
#%if %{with sqlite}
#%{_rpmhome}/libsql*.so.*
#%endif
#%%if %%{with sqlite}
#%%{_rpmhome}/libsql*.so.*
#%%endif
%files -n %{librpmnamedevel}
#%doc apidocs/html
#%%doc apidocs/html
%{_includedir}/rpm
%{_libdir}/librpm.la
%{_libdir}/librpm.so
%{_libdir}/librpmconstant.la
%{_libdir}/librpmconstant.so
%{_libdir}/librpmdb.la
%{_libdir}/librpmdb.so
%{_libdir}/librpmio.la
%{_libdir}/librpmio.so
%{_libdir}/librpmmisc.la
%{_libdir}/librpmmisc.so
%{_libdir}/librpmbuild.la
%{_libdir}/librpmbuild.so
%{_libdir}/pkgconfig/rpm.pc
%if %{with js}
#FIXME: lib64!
%{_rpmhome}/lib/librpmjsm.la
%{_rpmhome}/lib/librpmjsm.so
%{_rpmhome}/lib/rpmjsm.la
%endif
#%if %{with sqlite}
#%{_rpmhome}/libsql*.la
#%{_rpmhome}/libsql*.so
#%endif
#%%if %%{with sqlite}
#%%{_rpmhome}/libsql*.la
#%%{_rpmhome}/libsql*.so
#%%endif
%files -n %{librpmstatic}
%{_libdir}/librpm.a
@ -672,13 +777,13 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%{_rpmhome}/lib/librpmjsm.a
%{_rpmhome}/lib/rpmjsm.a
%endif
#%if %{with sqlite}
#%{_rpmhome}/libsql*.a
#%endif
#%%if %%{with sqlite}
#%%{_rpmhome}/libsql*.a
#%%endif
%if %{with perl}
%files -n perl-%{perlmod}
#%doc perl/Changes
#%%doc perl/Changes
%{_mandir}/man3/RPM*
%{perl_vendorarch}/%{perlmod}.pm
%dir %{perl_vendorarch}/%{perlmod}
@ -701,8 +806,239 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
%changelog
* Mon Jan 23 2012 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-31
+ Revision: 766961
- terminate build on file listed twice
- hardcore path to rpmlint to prevent breakage with people redefining %%_bindir
- add rpmlintrc file
* Fri Jan 06 2012 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-30
+ Revision: 758125
- workaround spec-helper not properly removing all .la files properly..(?)
- support loading local rpmlint configuration file from
%{_sourcedir}/%%{name}.rpmlintrc
- add a versioned dependency on rpmlint-mandriva-policy
- add support for %%_srcdefattr macro, setting it to (644,root,root)
- bump rpmlint version conflicts again.. ;)
- enable %%_nonzero_exit_pkgcheck_terminate_build (ghasp!;)
- don't remove Requires(pre) dependencies satisfied by self, but rather print an
error (not terminating build though, leaving this up to rpmlint check to do
later)
- pass '-T' argument to rpmlint for it to always return zero unless error
threshold is exceeded
- silence rpmlint 'macro-in-comment' complaints
- ditch dedicated rpm user and file/directory ownership of
* Wed Dec 21 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-29
+ Revision: 744043
- reenable rpmlint invokation from rpmbuild and add conflict on older rpmlint
releaes that has bug with paths to extracted files from src.rpm
* Tue Dec 20 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-28
+ Revision: 744028
- disable rpmlint invokation during rpmbuild untill network transport issues with
src.rpms is resolved
- drop 'GROUPS' file carried and included as doc for 'rpm' package, earlier
required by rpmlint, but no longer... :)
* Tue Dec 20 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-27
+ Revision: 743978
- add '>= 4.2.1-8' to 'beecrypt-devel' buildrequires to get proper libtool files
- add back $RPM_BUILD_DIR again for now to properly generate paths for debug pkgs
- add support for %%_build_pkgcheck, rpmbuild invoking rpmlint automatically per
package built (P73, from rpm.org)
- disable %%_unpackaged_subdirs_terminate_build untill check fixed..
- teach debugedit about .debug_macro dwarf section (rhbz#759272, P72 from rpm.org)
- switch to using rpm's own xtoupper() & xtolower() in stead of changing LC_CTYPE
* Fri Dec 16 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-26
+ Revision: 743086
- fix locale-dependent behaviour of toupper()/tolower() breaking conversion of
string casing and the lookup of rpm constants in languages such as turkish
where 'i' is considered uppercase and 'I' lowercase (P71, fixes mdv#63860)
* Wed Dec 14 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-25
+ Revision: 741297
- change log level of message about dropping dependencies to debug, way too
annoying otherwise..
* Wed Dec 14 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-24
+ Revision: 741197
- actually enable dropping of dependencies on '/bin/sh' & '/sbin/ldconfig' (P70)
* Sun Dec 11 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-23
+ Revision: 740189
- drop dependencies such as /bin/sh which will always be satisfied by glibc's
dependency on bash, and also on /sbin/ldconfig which always will be satisfied
by glibc (P70)
* Sun Dec 11 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-22
+ Revision: 740168
- drop useless dependency on 'pkgconfig' on all files which has a pkgconfig file,
it's not really needed to make the packages usable, and any package actually
requiring pkgconfig will pull it in long before anyways (P69)
- fix %%find_lang --with-html
- enable net transport for 'rpm -qp' (closes mdv#64914)
* Tue Dec 06 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-21
+ Revision: 738087
- avoid excessive output from eu-strip in find-debuginfo.sh now that
--reloc-debug-sections is used (P67)
- add a 'rpmbuild --withoutclean' option (P66, closes mdvbz#64898)
- strip away buildroot from unpackaged subdirs listed as well
- implement %%_unpackaged_subdirs_terminate_build as well (P65)
- implement %%_duplicate_files_terminate_build (P64)
- strip buildroot path from list of files duplicated across packages (P63)
- update buildrequires on libgomp-devel to gomp-devel
- fix path of %%_sys_macros_dir
- don't redefine %%{debugcflags} completely, extend it in stead and add '-g3'
* Wed Nov 30 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-20
+ Revision: 735832
- fix NULL pointer dereferencing
- add a versioned requires on elfutils to ensure we get --reloc-debug-sections
* Wed Nov 30 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-19
+ Revision: 735726
- update buildrequires to use pkgconfig(foo)
- fix so that --reloc-debug-sections isn't used when DISABLE_DEBUG is set
* Tue Nov 29 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-18
+ Revision: 735479
- fix same package with epoch being possible to upgrade (P60, reported by Ze)
* Tue Nov 29 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-17
+ Revision: 735473
- add missing partial stripping part from our old find-debuginfo.sh (P60)
- add -Wa,--compress-debug-sections to %%debugcflags
* Tue Nov 29 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-16
+ Revision: 735302
- use DWARF 4 for debugging format (P58)
* Tue Nov 29 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-15
+ Revision: 735291
- create GDB index from find-debuginfo if possible (rhbz#617166, from rpm.org)
- add quotes around $RPM_BUILD_ROOT everywhere to avoid breakage with filename
spaces (P56, from rpm.org)
- add support for stripping out/resolve relocations between .debug_* elf
sections in ET_REL files. This can save a lot of space for kernel module (P55)
- Add DWARF-4 support to debugedit (rhbz#707677, P54 from rpm.org)
- Bail out of debuginfo if stabs format encountered (rhbz#453506, P53 from rpm.org)
- Remove unused variable in debugedit (P52, from rpm.org)
- fix incorrect error messages regarding -b and -d (P51, from rpm.org/Anssi)
- Make debugedit -i recompute build ID only when any DWARF was actually
changed (P50, from rpm.org)
- Whitespace fixups for tools/debugedit.c (P49, from rpm.org)
* Sat Nov 26 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-14
+ Revision: 733515
- don't show suggests with --requires
- only log as debug message when only merging flags
* Fri Nov 25 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-13
+ Revision: 733452
- fix dependencies with different attributes overlapping being removed, they will
now rather have their attributes merged in stead
* Fri Nov 25 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-12
+ Revision: 733368
- fix buggy removal of overlapping dependencies, also add detection warning (P47)
* Thu Nov 24 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-11
+ Revision: 733223
- fix build issue caused by libxml libtool files removal
- drop dependency whiteout, time to clean up loops
- allow installation of repackage rpms (P46)
- drop dependency on rpm-mandriva-setup now that it's macros has been merged
- merge build macros from rpm-mandriva-setup-build (P45)
- switch to using xz payload (P44)
- merge remaining common macros from rpm-mandriva-setup package (P44)
- don't redefine %%_vendor and other variables we don't want redefined in
platform-specific macros
- fix versioned dependencies on rpm-mandriva-setup
- implement support for glob for loading macros with %%{load:} (P42)
* Thu Nov 17 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-10
+ Revision: 731397
- don't apply %%clean patch (P32), it seems to be broken..
- merge most of macros from rpm-manbo-setup & obsolete it
- make sure pkgconfig files to extract dependencies from are located in right
location (P40)
- drop unnecessary 'sort' in find-debuginfo.sh giving (harmless) error (P39)
- make find-lang.sh handle man pages that's compressed (P38)
- drop auto-generated dependencies for packages that they satisfy themself (P37)
* Wed Nov 16 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-9
+ Revision: 731099
- fix missing output file with --all-name
* Wed Nov 16 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-8
+ Revision: 731068
- support passing multiple names to find-lang.sh (last argument will be output
file name) (P36)
* Wed Nov 16 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-7
+ Revision: 730854
- be sure to rescan for dependency loops again when dependencies has been skipped
* Wed Nov 16 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-6
+ Revision: 730839
- add support for --with-html to find-lang.sh (P35)
- fix a memleak in ordering patch, and also report dependencies not being removed
from tsort relations
* Sun Nov 13 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-5
+ Revision: 730423
- apply ordering patch for helping solving dependency loops where ie.
Requires(post) etc. has been used to try solve ordering with loops.. (P33)
* Sun Nov 13 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-4
+ Revision: 730407
- fix mdvbz#62979 again (P33, forgotten on rpm-5_3)
- really always invoke %%clean at end (P32, forgotten on rpm-5_3)
* Sat Nov 12 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-3
+ Revision: 730209
- workaround strange issue for lines starting with '%%_'...
- fix rpm -qa \*foo\* regression (P31)
* Fri Nov 11 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-2
+ Revision: 730073
- use /sbin/nologin rather than /bin/false as login shell for 'rpm' user
- drop patch reverting $RPM_BUILD_DIR++ removal, it's no longer required as we're
no longer using our own version of find-debuginfo.sh using this
- add back fix for rpm -qf /unpackaged-file (P30, forgotten on rpm-5_3)
- add %%_specfile macro (P29, commit forgotten on rpm-5_3)
- reenable scriptlet failure & no doc conflict patches (commits forgotten)
* Fri Nov 11 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.4-1
+ Revision: 729992
- merge find-lang.sh changes from rpm.org (P28)
- merge changes from rpm-setup's find-debuginfo.sh (P27)
- new version
* Mon Nov 07 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.3-2
+ Revision: 727143
- add back NVRA pattern hack that got lost on rpm-5_3 branch (P27, fixes urpme)
* Wed Oct 19 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.4.3-1
+ Revision: 705415
- revert removal of env vars breaking ie. find-debuginfo.sh (P26, reverts r16320)
- fix different epoch being ignored for packages with same NVRA compared (P25)
- add %%ruby_sitedir and %%ruby_vendor macros (P24)
- climb up to 5.4 series.. :)
- revert previous patch added, already merged upstream after all..
- revive patch fixing #62262 which got lost earlier
- fix previous hastily reverted patch in a (hopefully) proper way
+ Jon Dill <dillj@mandriva.org>
- bump release to 13
- moved various {_rpmhome}/bin/ binaries to main rpm pkg from rpm-build as defined in /usr/lib/rpm/macros
- added {_rpmhome}/bin/lua as it was missing from the spec
* Tue Jul 12 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.3.12-0.20110712.2
+ Revision: 689772
+ Revision: 689790
- revert a previous commit of mine which broke deps without distepoch (rushed)
* Tue Jul 12 2011 Per Øyvind Karlsen <peroyvind@mandriva.org> 1:5.3.12-0.20110712.1
@ -1025,7 +1361,7 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
- fix unowned directory, reported by bitshuffler on irc, causing problem
when installing rpm and using the wrong umask
* Fri Sep 25 2009 Olivier Blin <oblin@mandriva.com> 1:4.6.0-6mnb2
* Fri Sep 25 2009 Olivier Blin <blino@mandriva.org> 1:4.6.0-6mnb2
+ Revision: 448653
- remove n32 support for now (not actually used)
- handle n32 ABI in find-requires and find-provides (from Arnaud Patard)
@ -1443,7 +1779,7 @@ cp -r apidocs/html %{buildroot}%{_docdir}/rpm
- I suck, don't move man pages around at all and stop messing:p
- move man page for perl module to perl-RPM package
+ Olivier Blin <oblin@mandriva.com>
+ Olivier Blin <blino@mandriva.org>
- do not expand _install_langs macro in default /etc/rpm/macros
- fix typo in default /etc/rpm/macros
- explicitely require neon-devel 0.26 (does not build with neon 0.27)