- Update to rpm-4.12.0-rc1

This commit is contained in:
Panu Matilainen 2014-08-27 09:03:53 +03:00
parent c95977245e
commit da2b22a298
7 changed files with 5 additions and 237 deletions

View File

@ -1,51 +0,0 @@
commit 404f053f7829fa859209ded8399243dba851f263
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 25 10:41:27 2014 +0300
Resurrect dependency spew during build
- Since commit a357c99c58a5e1367160dfa692f26d14bd3a3df1 the dependencies
are no longer in the header so there's little to print from there.
As it happens things are much saner this way, we no longer need
to create rpmds'es just to print stuff.
diff --git a/build/rpmfc.c b/build/rpmfc.c
index e798950..f22053c 100644
--- a/build/rpmfc.c
+++ b/build/rpmfc.c
@@ -1110,7 +1110,7 @@ static DepMsg_t DepMsgs = depMsgs;
/**
*/
-static void printDeps(rpmstrPool pool, Header h)
+static void printDeps(rpmfc fc)
{
DepMsg_t dm;
rpmds ds = NULL;
@@ -1120,8 +1120,7 @@ static void printDeps(rpmstrPool pool, Header h)
for (dm = DepMsgs; dm->msg != NULL; dm++) {
if (dm->ntag != -1) {
- rpmdsFree(ds);
- ds = rpmdsNewPool(pool, h, dm->ntag, 0);
+ ds = rpmfcDependencies(fc, dm->ntag);
}
if (dm->ftag == 0)
continue;
@@ -1148,7 +1147,6 @@ static void printDeps(rpmstrPool pool, Header h)
if (bingo)
rpmlog(RPMLOG_NOTICE, "\n");
}
- rpmdsFree(ds);
}
static rpmRC rpmfcGenerateDependsHelper(const rpmSpec spec, Package pkg, rpmfi fi)
@@ -1333,7 +1331,7 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
free(msg);
}
exit:
- printDeps(fc ? fc->pool : NULL, pkg->header);
+ printDeps(fc);
/* Clean up. */
free(fmode);

View File

@ -1,29 +0,0 @@
diff --git a/build/rpmfc.c b/build/rpmfc.c
index e798950..94089e5 100644
--- a/build/rpmfc.c
+++ b/build/rpmfc.c
@@ -760,6 +760,7 @@ rpmfc rpmfcCreate(const char *buildRoot, rpmFlags flags)
fc->buildRoot = xstrdup(buildRoot);
fc->brlen = strlen(buildRoot);
}
+ fc->pkg = xcalloc(1, sizeof(*fc->pkg));
fc->pool = rpmstrPoolCreate();
return fc;
}
@@ -1263,6 +1264,7 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg)
av[ac] = NULL;
fc = rpmfcCreate(spec->buildRoot, 0);
+ free(fc->pkg); /* XXX HACK */
fc->pkg = pkg;
fc->skipProv = !pkg->autoProv;
fc->skipReq = !pkg->autoReq;
@@ -1337,6 +1339,8 @@ exit:
/* Clean up. */
free(fmode);
+ if (fc)
+ fc->pkg = NULL; /* XXX HACK */
rpmfcFree(fc);
argvFree(av);
rpmfiFree(fi);

View File

@ -1,33 +0,0 @@
commit 8b540fbf1bb77320772b87d40518d761f62752b3
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 25 11:03:00 2014 +0300
Resurrect rpmlib() dependencies on source rpms
- Commit 0bda2faa4de368a87f85084856a5fed701774acb caused a regression
where rpmlib() dependencies are no longer added to src.rpm packages
as the header is populated early, whereas rpmlib() dependencies
get added late in the game. So nothing was pushing the rpmlib
stuff to header. Sigh.
diff --git a/build/pack.c b/build/pack.c
index 71d75f5..4aa4a66 100644
--- a/build/pack.c
+++ b/build/pack.c
@@ -708,6 +708,16 @@ rpmRC packageSources(rpmSpec spec, char **cookie)
headerPutString(sourcePkg->header, RPMTAG_BUILDHOST, buildHost());
headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
+ for (int i=0; i<PACKAGE_NUM_DEPS; i++) {
+ /* Nuke any previously added dependencies from the header */
+ headerDel(sourcePkg->header, rpmdsTagN(sourcePkg->dependencies[i]));
+ headerDel(sourcePkg->header, rpmdsTagEVR(sourcePkg->dependencies[i]));
+ headerDel(sourcePkg->header, rpmdsTagF(sourcePkg->dependencies[i]));
+ headerDel(sourcePkg->header, rpmdsTagTi(sourcePkg->dependencies[i]));
+ /* ...and add again, now with automatic dependencies included */
+ rpmdsPutToHeader(sourcePkg->dependencies[i], sourcePkg->header);
+ }
+
/* XXX this should be %_srpmdir */
{ char *fn = rpmGetPath("%{_srcrpmdir}/", spec->sourceRpmName,NULL);
char *pkgcheck = rpmExpand("%{?_build_pkgcheck_srpm} ", fn, NULL);

View File

@ -1,27 +0,0 @@
commit 1566c18b6efbda7b4c367f4c0ee31b4d5be2d2fe
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Aug 20 15:10:36 2014 +0300
Delete trigger indexes too from header before adding again (RhBug:1131892)
- Fixes regression introduced in the regression-fix
commit 0bda2faa4de368a87f85084856a5fed701774acb, *facepalm*
- Unlike other dependency types, trigger dependencies involve a fourth
tag which we forgot to delete before adding again, causing duplicate
trigger indexes
diff --git a/build/pack.c b/build/pack.c
index 4abca48..78a4f0e 100644
--- a/build/pack.c
+++ b/build/pack.c
@@ -617,8 +617,9 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
headerPutString(pkg->header, RPMTAG_BUILDHOST, buildHost());
headerPutUint32(pkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
+ /* Nuke any previously added dependencies from the header */
+ headerDel(pkg->header, RPMTAG_TRIGGERINDEX);
for (int i=0; i<PACKAGE_NUM_DEPS; i++) {
- /* Nuke any previously added dependencies from the header */
headerDel(pkg->header, rpmdsTagN(pkg->dependencies[i]));
headerDel(pkg->header, rpmdsTagEVR(pkg->dependencies[i]));
headerDel(pkg->header, rpmdsTagF(pkg->dependencies[i]));

View File

@ -1,41 +0,0 @@
commit 1b41c91431d37295701281ff208f99a51f660c89
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 15:04:23 2014 +0300
Populate src.rpm header with dependencies early again
- BuildRequire checking requires a header populated with dependencies,
commit a357c99c58a5e1367160dfa692f26d14bd3a3df1 changed this to
occur too late for this purpose. Move to initSourceHeader() seems
to fix, also goes to show we dont have a test-case for buildrequires...
diff --git a/build/pack.c b/build/pack.c
index 227737b..dc24fb5 100644
--- a/build/pack.c
+++ b/build/pack.c
@@ -702,10 +702,6 @@ rpmRC packageSources(rpmSpec spec, char **cookie)
headerPutString(sourcePkg->header, RPMTAG_BUILDHOST, buildHost());
headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
- for (int i=0; i<PACKAGE_NUM_DEPS; i++) {
- rpmdsPutToHeader(sourcePkg->dependencies[i], sourcePkg->header);
- }
-
/* XXX this should be %_srpmdir */
{ char *fn = rpmGetPath("%{_srcrpmdir}/", spec->sourceRpmName,NULL);
char *pkgcheck = rpmExpand("%{?_build_pkgcheck_srpm} ", fn, NULL);
diff --git a/build/parseSpec.c b/build/parseSpec.c
index e38a4d9..b14c3ee 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -466,6 +466,10 @@ static void initSourceHeader(rpmSpec spec)
headerCopyTags(spec->packages->header, sourcePkg->header, sourceTags);
/* Add the build restrictions */
+ for (int i=0; i<PACKAGE_NUM_DEPS; i++) {
+ rpmdsPutToHeader(sourcePkg->dependencies[i], sourcePkg->header);
+ }
+
{
HeaderIterator hi = headerInitIterator(spec->buildRestrictions);
struct rpmtd_s td;

View File

@ -1,47 +0,0 @@
commit 0bda2faa4de368a87f85084856a5fed701774acb
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Aug 18 16:31:14 2014 +0300
Populate manual dependencies into spec pkg headers early too
- Similar to commit 1b41c91431d37295701281ff208f99a51f660c89, rpmspec
and other tools expect to find manually specified dependencies
from the headers of a freshly parsed spec. This means we need to
add this cruft two times: once for the manual dependencies and then
scratch all that and redo from start after automatic dependencies
have been discovered at the end of package build.
- Fixes another regression (rpmspec dependency queries went dead)
introduced in commit a357c99c58a5e1367160dfa692f26d14bd3a3df1
diff --git a/build/pack.c b/build/pack.c
index dc24fb5..4abca48 100644
--- a/build/pack.c
+++ b/build/pack.c
@@ -618,6 +618,11 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
headerPutUint32(pkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
for (int i=0; i<PACKAGE_NUM_DEPS; i++) {
+ /* Nuke any previously added dependencies from the header */
+ headerDel(pkg->header, rpmdsTagN(pkg->dependencies[i]));
+ headerDel(pkg->header, rpmdsTagEVR(pkg->dependencies[i]));
+ headerDel(pkg->header, rpmdsTagF(pkg->dependencies[i]));
+ /* ...and add again, now with automatic dependencies included */
rpmdsPutToHeader(pkg->dependencies[i], pkg->header);
}
diff --git a/build/parseSpec.c b/build/parseSpec.c
index b14c3ee..77cf409 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -548,6 +548,11 @@ static void addTargets(Package Pkgs)
headerPutString(pkg->header, RPMTAG_PLATFORM, platform);
headerPutString(pkg->header, RPMTAG_OPTFLAGS, optflags);
+ /* Add manual dependencies early for rpmspec etc to look at */
+ for (int i=0; i<PACKAGE_NUM_DEPS; i++) {
+ rpmdsPutToHeader(pkg->dependencies[i], pkg->header);
+ }
+
pkg->ds = rpmdsThis(pkg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL);
addPackageProvides(pkg);
}

View File

@ -16,7 +16,7 @@
%define rpmhome /usr/lib/rpm
%define rpmver 4.12.0
%define snapver beta1
%define snapver rc1
%define srcver %{rpmver}%{?snapver:-%{snapver}}
%define eggver %{rpmver}%{?snapver:_%{snapver}}
@ -27,7 +27,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}6%{?dist}
Release: %{?snapver:0.%{snapver}.}1%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
@ -48,15 +48,8 @@ Patch3: rpm-4.9.90-no-man-dirs.patch
Patch4: rpm-4.8.1-use-gpg2.patch
# Patches already upstream:
Patch100: rpm-4.12-beta1-fix-buildrequires.patch
Patch101: rpm-4.12-beta1-spec-header-deps.patch
Patch102: rpm-4.12-beta-triggerindex.patch
Patch103: rpm-4.12-beta-print-deps.patch
Patch104: rpm-4.12-beta-srpm-deps.patch
# These are not yet upstream
# Emergency hack for rpmdeps crash (#1131892)
Patch300: rpm-4.12-beta-rpmdeps.patch
Patch302: rpm-4.7.1-geode-i686.patch
# Probably to be upstreamed in slightly different form
Patch304: rpm-4.9.1.1-ld-flags.patch
@ -533,6 +526,9 @@ exit 0
%doc doc/librpm/html/*
%changelog
* Wed Aug 27 2014 Panu Matilainen <pmatilai@redhat.com> - 4.12.0-0.rc1.1
- Update to rpm-4.12.0-rc1
* Mon Aug 25 2014 Panu Matilainen <pmatilai@redhat.com> - 4.12.0-0.beta1.6
- Resurrect dependency logging on package build
- Resurrect rpmlib() dependencies in src.rpms