Update to 4.15.0-rc1
This commit is contained in:
parent
48ff1fa7e0
commit
41f9713949
1
.gitignore
vendored
1
.gitignore
vendored
@ -34,3 +34,4 @@
|
||||
/rpm-4.14.2.1.tar.bz2
|
||||
/rpm-4.14.90-git14653.tar.bz2
|
||||
/rpm-4.15.0-beta.tar.bz2
|
||||
/rpm-4.15.0-rc1.tar.bz2
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 4b15a9e48bd3d4bef96e8a8865044346be20d6dc Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <ngompa13@gmail.com>
|
||||
Date: Sun, 7 Jul 2019 04:21:23 -0400
|
||||
Subject: [PATCH] Do not set RPMTAG_BUILDTIME to SOURCE_DATE_EPOCH when defined
|
||||
by default
|
||||
|
||||
Since b8a54d6a1e9bb6140b6b47e23dc707e4b967537e, when SOURCE_DATE_EPOCH
|
||||
is set, RPMTAG_BUILDTIME winds up being set with that value. This is
|
||||
not always desirable, particularly if you are using the build time for
|
||||
filters and evaluation in certain types of package release pipelines.
|
||||
|
||||
This is an adaptation of the downstream patch in SUSE's rpm package
|
||||
written by Michael Schroeder intended to address SuseBug:1087065.
|
||||
---
|
||||
build/spec.c | 2 +-
|
||||
macros.in | 5 +++++
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/spec.c b/build/spec.c
|
||||
index f7de3d1d1..81506b4e9 100644
|
||||
--- a/build/spec.c
|
||||
+++ b/build/spec.c
|
||||
@@ -207,7 +207,7 @@ static rpm_time_t getBuildTime(void)
|
||||
char *endptr;
|
||||
|
||||
srcdate = getenv("SOURCE_DATE_EPOCH");
|
||||
- if (srcdate) {
|
||||
+ if (srcdate && rpmExpandNumeric("%{?use_source_date_epoch_as_buildtime}")) {
|
||||
errno = 0;
|
||||
epoch = strtol(srcdate, &endptr, 10);
|
||||
if (srcdate == endptr || *endptr || errno != 0)
|
||||
diff --git a/macros.in b/macros.in
|
||||
index 73586a75b..3cdcca385 100644
|
||||
--- a/macros.in
|
||||
+++ b/macros.in
|
||||
@@ -238,6 +238,11 @@ package or when debugging this package.\
|
||||
# to the timestamp of the topmost changelog entry
|
||||
%source_date_epoch_from_changelog 0
|
||||
|
||||
+# If true, make sure that buildtime in built rpms
|
||||
+# is set to the value of SOURCE_DATE_EPOCH.
|
||||
+# Is ignored when SOURCE_DATE_EPOCH is not set.
|
||||
+%use_source_date_epoch_as_buildtime 0
|
||||
+
|
||||
# If true, make sure that timestamps in built rpms
|
||||
# are not later than the value of SOURCE_DATE_EPOCH.
|
||||
# Is ignored when SOURCE_DATE_EPOCH is not set.
|
||||
--
|
||||
2.22.0
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 7faf8eda1358f8a877b9b3d6e1197b814e80b50b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <7faf8eda1358f8a877b9b3d6e1197b814e80b50b.1566557361.git.pmatilai@redhat.com>
|
||||
From: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Tue, 13 Aug 2019 16:26:31 +0300
|
||||
Subject: [PATCH] Drop %_lto_cflags macro afterall
|
||||
|
||||
This was only added in commit 2bb7b0cf066c97a9d92eb0bf59618896000cb29d,
|
||||
but turns out that this kind of usage is bad for build reproducability
|
||||
because the system-specific CPU count gets recorded RPMTAG_OPTFLAGS
|
||||
and the resulting binaries too (depending on gcc flags).
|
||||
In addition, gcc upstream has decided to make -flto default to
|
||||
autodetected parallelism. Since -flto can be overridden with
|
||||
by simply appending -fno-lto for the packages that need to disable it,
|
||||
there's no practical need for us to provide such a macro for disabling
|
||||
either.
|
||||
---
|
||||
macros.in | 2 +-
|
||||
platform.in | 3 ---
|
||||
2 files changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/macros.in b/macros.in
|
||||
index 633d5ca6e..b7da4ea2f 100644
|
||||
--- a/macros.in
|
||||
+++ b/macros.in
|
||||
@@ -1025,7 +1025,7 @@ package or when debugging this package.\
|
||||
%build_fflags %{optflags} %{?_fmoddir:-I%{_fmoddir}}
|
||||
|
||||
# Link editor flags. This is usually called LDFLAGS in makefiles.
|
||||
-#%build_ldflags -Wl,-z,relro %{?_lto_cflags}
|
||||
+#%build_ldflags -Wl,-z,relro
|
||||
|
||||
# Expands to shell code to seot the compiler/linker environment
|
||||
# variables CFLAGS, CXXFLAGS, FFLAGS, FCFLAGS, LDFLAGS if they have
|
||||
diff --git a/platform.in b/platform.in
|
||||
index e1efc42b0..db6d2382f 100644
|
||||
--- a/platform.in
|
||||
+++ b/platform.in
|
||||
@@ -59,9 +59,6 @@
|
||||
|
||||
%_smp_mflags -j%{_smp_build_ncpus}
|
||||
|
||||
-# Enable LTO optimization with a maximal parallelism
|
||||
-%_lto_cflags -flto=%{_smp_build_ncpus}
|
||||
-
|
||||
#==============================================================================
|
||||
# ---- Build policy macros.
|
||||
#
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 4d16d81a1af3e43b8392e7c335f616c9c0c6e41b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <4d16d81a1af3e43b8392e7c335f616c9c0c6e41b.1566558648.git.pmatilai@redhat.com>
|
||||
From: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Fri, 23 Aug 2019 11:09:40 +0300
|
||||
Subject: [PATCH 1/2] Fix build code thread cap logic for unlimited CPUs
|
||||
|
||||
If there's no clear cap set from rpm configuration, just let OMP do
|
||||
its own thing (ie use all available CPUs) instead of artificially
|
||||
limiting to 1.
|
||||
---
|
||||
build/parseSpec.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/build/parseSpec.c b/build/parseSpec.c
|
||||
index 055bdf012..737a1233c 100644
|
||||
--- a/build/parseSpec.c
|
||||
+++ b/build/parseSpec.c
|
||||
@@ -1036,9 +1036,8 @@ static rpmSpec parseSpec(const char *specFile, rpmSpecFlags flags,
|
||||
#ifdef ENABLE_OPENMP
|
||||
/* Set number of OMP threads centrally */
|
||||
int ncpus = rpmExpandNumeric("%{?_smp_build_ncpus}");
|
||||
- if (ncpus <= 0)
|
||||
- ncpus = 1;
|
||||
- omp_set_num_threads(ncpus);
|
||||
+ if (ncpus > 0)
|
||||
+ omp_set_num_threads(ncpus);
|
||||
#endif
|
||||
|
||||
if (spec->clean == NULL) {
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,51 +0,0 @@
|
||||
From ad4673589428db6e3b9fecd6f151eb899500336d Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <ad4673589428db6e3b9fecd6f151eb899500336d.1566556207.git.pmatilai@redhat.com>
|
||||
From: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Thu, 15 Aug 2019 14:00:43 +0300
|
||||
Subject: [PATCH 1/3] Support running rpmfcExec() without any piped
|
||||
input/output
|
||||
|
||||
Having a function called getOutputFrom() which doesn't is a wee bit
|
||||
weird but what the hey...
|
||||
|
||||
No behavior changes here, but this is needed for the next steps.
|
||||
---
|
||||
build/rpmfc.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/rpmfc.c b/build/rpmfc.c
|
||||
index 80da96f3a..94b4620d2 100644
|
||||
--- a/build/rpmfc.c
|
||||
+++ b/build/rpmfc.c
|
||||
@@ -268,8 +268,9 @@ static int getOutputFrom(ARGV_t argv,
|
||||
int status;
|
||||
int myerrno = 0;
|
||||
int ret = 1; /* assume failure */
|
||||
+ int doio = (writePtr || sb_stdout || dup);
|
||||
|
||||
- if (pipe(toProg) < 0 || pipe(fromProg) < 0) {
|
||||
+ if (doio && (pipe(toProg) < 0 || pipe(fromProg) < 0)) {
|
||||
rpmlog(RPMLOG_ERR, _("Couldn't create pipe for %s: %m\n"), argv[0]);
|
||||
return -1;
|
||||
}
|
||||
@@ -303,6 +304,9 @@ static int getOutputFrom(ARGV_t argv,
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ if (!doio)
|
||||
+ goto reap;
|
||||
+
|
||||
close(toProg[0]);
|
||||
close(fromProg[1]);
|
||||
|
||||
@@ -376,6 +380,7 @@ static int getOutputFrom(ARGV_t argv,
|
||||
if (fromProg[0] >= 0)
|
||||
close(fromProg[0]);
|
||||
|
||||
+reap:
|
||||
/* Collect status from prog */
|
||||
reaped = waitpid(child, &status, 0);
|
||||
rpmlog(RPMLOG_DEBUG, "\twaitpid(%d) rc %d status %x\n",
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,81 +0,0 @@
|
||||
From fa70eaa852aab38857b3c8663386e8759f121bbe Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <fa70eaa852aab38857b3c8663386e8759f121bbe.1566904946.git.pmatilai@redhat.com>
|
||||
From: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Fri, 23 Aug 2019 11:17:21 +0300
|
||||
Subject: [PATCH] Cap number of threads on 32bit platforms, add tunables
|
||||
(RhBug:1729382)
|
||||
|
||||
On 32bit plaforms, address space is easily exhausted with multiple
|
||||
threads, causing arbitrary builds failure regressions (RhBug:1729382).
|
||||
Simply cap the number of threads to maximum of four on any 32bit
|
||||
platform to play it safe. It's still three more than we were able to
|
||||
use on older releases...
|
||||
|
||||
In addition, introduce tunables for controlling the number of threads
|
||||
used similarly to what is available for number of CPUs: forced number
|
||||
and a separate ceiling.
|
||||
|
||||
The max logic gets surprisingly tricky with the mixed OMP and rpm
|
||||
tunables and different semantics. Notably, OMP does not have a nice
|
||||
way to set a maximum from inside a program (this is only possible
|
||||
from an environment variable so we can't use it here), so we need
|
||||
to jump through a lot of hoops to figure out whether an *unlimited*
|
||||
setting would go above the platform limitation. I'm not entirely
|
||||
convinced this is 100% bulletproof, but then it's all going to change
|
||||
and become even more complicated when we start taking memory limitations
|
||||
into account...
|
||||
---
|
||||
build/parseSpec.c | 20 +++++++++++++++++---
|
||||
platform.in | 5 +++++
|
||||
2 files changed, 22 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/build/parseSpec.c b/build/parseSpec.c
|
||||
index 737a1233c..ed5c3ef63 100644
|
||||
--- a/build/parseSpec.c
|
||||
+++ b/build/parseSpec.c
|
||||
@@ -1035,9 +1035,23 @@ static rpmSpec parseSpec(const char *specFile, rpmSpecFlags flags,
|
||||
|
||||
#ifdef ENABLE_OPENMP
|
||||
/* Set number of OMP threads centrally */
|
||||
- int ncpus = rpmExpandNumeric("%{?_smp_build_ncpus}");
|
||||
- if (ncpus > 0)
|
||||
- omp_set_num_threads(ncpus);
|
||||
+ int nthreads = rpmExpandNumeric("%{?_smp_build_nthreads}");
|
||||
+ int nthreads_max = rpmExpandNumeric("%{?_smp_nthreads_max}");
|
||||
+ if (nthreads <= 0)
|
||||
+ nthreads = omp_get_max_threads();
|
||||
+ if (nthreads_max > 0 && nthreads > nthreads_max)
|
||||
+ nthreads = nthreads_max;
|
||||
+#if __WORDSIZE == 32
|
||||
+ /* On 32bit platforms, address space shortage is an issue. Play safe. */
|
||||
+ int platlimit = 4;
|
||||
+ if (nthreads > platlimit) {
|
||||
+ nthreads = platlimit;
|
||||
+ rpmlog(RPMLOG_DEBUG,
|
||||
+ "limiting number of threads to %d due to platform\n", platlimit);
|
||||
+ }
|
||||
+#endif
|
||||
+ if (nthreads > 0)
|
||||
+ omp_set_num_threads(nthreads);
|
||||
#endif
|
||||
|
||||
if (spec->clean == NULL) {
|
||||
diff --git a/platform.in b/platform.in
|
||||
index db6d2382f..61f5e18a0 100644
|
||||
--- a/platform.in
|
||||
+++ b/platform.in
|
||||
@@ -59,6 +59,11 @@
|
||||
|
||||
%_smp_mflags -j%{_smp_build_ncpus}
|
||||
|
||||
+# Maximum number of threads to use when building, 0 for unlimited
|
||||
+#%_smp_nthreads_max 0
|
||||
+
|
||||
+%_smp_build_nthreads %{_smp_build_ncpus}
|
||||
+
|
||||
#==============================================================================
|
||||
# ---- Build policy macros.
|
||||
#
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,116 +0,0 @@
|
||||
From 3a510926449f1dd779a2933dfaa17de3d03a4ea4 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <3a510926449f1dd779a2933dfaa17de3d03a4ea4.1566556207.git.pmatilai@redhat.com>
|
||||
In-Reply-To: <ad4673589428db6e3b9fecd6f151eb899500336d.1566556207.git.pmatilai@redhat.com>
|
||||
References: <ad4673589428db6e3b9fecd6f151eb899500336d.1566556207.git.pmatilai@redhat.com>
|
||||
From: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Thu, 15 Aug 2019 14:10:07 +0300
|
||||
Subject: [PATCH 2/3] Restore strict order of build scriptlet stdout/stderr
|
||||
output (#794)
|
||||
|
||||
Commit 18e8f4e9b2dd170d090843adf5b5084658d68cf7 and related changes
|
||||
caused us to capture and re-emit stdout of all build scriptlets,
|
||||
whether we actually use the output for anything or not. Besides doing
|
||||
a whole bunch of work for nothing, this can disrupt the output of
|
||||
build scriptlets by making the output jerky and out of order, at least
|
||||
inside mock and other tools which in turn grab rpm output. This makes
|
||||
troubleshooting failed builds unnecessarily hard for no good reason.
|
||||
|
||||
Handle the whole thing in a different way: on regular builds, don't
|
||||
capture anything where we don't actually need to. This restores the
|
||||
natural flow of output. We still need to somehow handle quiet builds
|
||||
though, and we can't use redirect to /dev/null from %___build_pre like
|
||||
we used to, because dynamic buildrequires need to provide output even
|
||||
on quiet builds. So somewhat counter-intuitively, we need to capture
|
||||
the output in order to discard it.
|
||||
|
||||
Closes: #794
|
||||
---
|
||||
build/build.c | 19 +++++++++++--------
|
||||
1 file changed, 11 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/build/build.c b/build/build.c
|
||||
index 3887457d3..dc196090f 100644
|
||||
--- a/build/build.c
|
||||
+++ b/build/build.c
|
||||
@@ -60,7 +60,6 @@ rpmRC doScript(rpmSpec spec, rpmBuildFlags what, const char *name,
|
||||
int argc = 0;
|
||||
const char **argv = NULL;
|
||||
FILE * fp = NULL;
|
||||
- FILE * cmdOut = rpmIsVerbose() ? stdout : NULL;
|
||||
|
||||
FD_t fd = NULL;
|
||||
rpmRC rc = RPMRC_FAIL; /* assume failure */
|
||||
@@ -156,7 +155,7 @@ rpmRC doScript(rpmSpec spec, rpmBuildFlags what, const char *name,
|
||||
|
||||
rpmlog(RPMLOG_NOTICE, _("Executing(%s): %s\n"), name, buildCmd);
|
||||
if (rpmfcExec((ARGV_const_t)argv, NULL, sb_stdoutp, 1,
|
||||
- spec->buildSubdir, cmdOut)) {
|
||||
+ spec->buildSubdir, NULL)) {
|
||||
rpmlog(RPMLOG_ERR, _("Bad exit status from %s (%s)\n"),
|
||||
scriptName, name);
|
||||
goto exit;
|
||||
@@ -242,6 +241,9 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec spec, int what)
|
||||
int missing_buildreqs = 0;
|
||||
int test = (what & RPMBUILD_NOBUILD);
|
||||
char *cookie = buildArgs->cookie ? xstrdup(buildArgs->cookie) : NULL;
|
||||
+ /* handle quiet mode by capturing the output into a sink buffer */
|
||||
+ StringBuf sink = NULL;
|
||||
+ StringBuf *sbp = rpmIsVerbose() ? NULL : &sink;
|
||||
|
||||
if (rpmExpandNumeric("%{?source_date_epoch_from_changelog}") &&
|
||||
getenv("SOURCE_DATE_EPOCH") == NULL) {
|
||||
@@ -292,7 +294,7 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec spec, int what)
|
||||
|
||||
if ((what & RPMBUILD_PREP) &&
|
||||
(rc = doScript(spec, RPMBUILD_PREP, "%prep",
|
||||
- getStringBuf(spec->prep), test, NULL)))
|
||||
+ getStringBuf(spec->prep), test, sbp)))
|
||||
goto exit;
|
||||
|
||||
if (what & RPMBUILD_BUILDREQUIRES)
|
||||
@@ -321,17 +323,17 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec spec, int what)
|
||||
|
||||
if ((what & RPMBUILD_BUILD) &&
|
||||
(rc = doScript(spec, RPMBUILD_BUILD, "%build",
|
||||
- getStringBuf(spec->build), test, NULL)))
|
||||
+ getStringBuf(spec->build), test, sbp)))
|
||||
goto exit;
|
||||
|
||||
if ((what & RPMBUILD_INSTALL) &&
|
||||
(rc = doScript(spec, RPMBUILD_INSTALL, "%install",
|
||||
- getStringBuf(spec->install), test, NULL)))
|
||||
+ getStringBuf(spec->install), test, sbp)))
|
||||
goto exit;
|
||||
|
||||
if ((what & RPMBUILD_CHECK) &&
|
||||
(rc = doScript(spec, RPMBUILD_CHECK, "%check",
|
||||
- getStringBuf(spec->check), test, NULL)))
|
||||
+ getStringBuf(spec->check), test, sbp)))
|
||||
goto exit;
|
||||
|
||||
if ((what & RPMBUILD_PACKAGESOURCE) &&
|
||||
@@ -358,11 +360,11 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec spec, int what)
|
||||
|
||||
if ((what & RPMBUILD_CLEAN) &&
|
||||
(rc = doScript(spec, RPMBUILD_CLEAN, "%clean",
|
||||
- getStringBuf(spec->clean), test, NULL)))
|
||||
+ getStringBuf(spec->clean), test, sbp)))
|
||||
goto exit;
|
||||
|
||||
if ((what & RPMBUILD_RMBUILD) &&
|
||||
- (rc = doScript(spec, RPMBUILD_RMBUILD, "--clean", NULL, test, NULL)))
|
||||
+ (rc = doScript(spec, RPMBUILD_RMBUILD, "--clean", NULL, test, sbp)))
|
||||
goto exit;
|
||||
}
|
||||
|
||||
@@ -373,6 +375,7 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec spec, int what)
|
||||
(void) unlink(spec->specFile);
|
||||
|
||||
exit:
|
||||
+ freeStringBuf(sink);
|
||||
free(cookie);
|
||||
spec->rootDir = NULL;
|
||||
if (rc != RPMRC_OK && rc != RPMRC_MISSINGBUILDREQUIRES &&
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,131 +0,0 @@
|
||||
From d472c20a5f6f4046d461c1148a29fba154b2e78b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d472c20a5f6f4046d461c1148a29fba154b2e78b.1566556207.git.pmatilai@redhat.com>
|
||||
In-Reply-To: <ad4673589428db6e3b9fecd6f151eb899500336d.1566556207.git.pmatilai@redhat.com>
|
||||
References: <ad4673589428db6e3b9fecd6f151eb899500336d.1566556207.git.pmatilai@redhat.com>
|
||||
From: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Thu, 15 Aug 2019 14:45:31 +0300
|
||||
Subject: [PATCH 3/3] Drop the no longer needed rpmfcExec() output duplication
|
||||
support
|
||||
|
||||
This effectively reverts commit 5fe8c9e6d55fe101c81399423a1e1b0f42882143,
|
||||
but no functional changes as nothing was using this anymore.
|
||||
---
|
||||
build/build.c | 2 +-
|
||||
build/files.c | 2 +-
|
||||
build/rpmbuild_internal.h | 3 +--
|
||||
build/rpmfc.c | 14 ++++++--------
|
||||
4 files changed, 9 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/build/build.c b/build/build.c
|
||||
index dc196090f..08c2df1e4 100644
|
||||
--- a/build/build.c
|
||||
+++ b/build/build.c
|
||||
@@ -155,7 +155,7 @@ rpmRC doScript(rpmSpec spec, rpmBuildFlags what, const char *name,
|
||||
|
||||
rpmlog(RPMLOG_NOTICE, _("Executing(%s): %s\n"), name, buildCmd);
|
||||
if (rpmfcExec((ARGV_const_t)argv, NULL, sb_stdoutp, 1,
|
||||
- spec->buildSubdir, NULL)) {
|
||||
+ spec->buildSubdir)) {
|
||||
rpmlog(RPMLOG_ERR, _("Bad exit status from %s (%s)\n"),
|
||||
scriptName, name);
|
||||
goto exit;
|
||||
diff --git a/build/files.c b/build/files.c
|
||||
index d54d67f38..ad4f462f1 100644
|
||||
--- a/build/files.c
|
||||
+++ b/build/files.c
|
||||
@@ -2781,7 +2781,7 @@ static int checkFiles(const char *buildRoot, StringBuf fileList)
|
||||
|
||||
rpmlog(RPMLOG_NOTICE, _("Checking for unpackaged file(s): %s\n"), s);
|
||||
|
||||
- rc = rpmfcExec(av_ckfile, fileList, &sb_stdout, 0, buildRoot, NULL);
|
||||
+ rc = rpmfcExec(av_ckfile, fileList, &sb_stdout, 0, buildRoot);
|
||||
if (rc < 0)
|
||||
goto exit;
|
||||
|
||||
diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h
|
||||
index 16d72ec9f..f3c8b5658 100644
|
||||
--- a/build/rpmbuild_internal.h
|
||||
+++ b/build/rpmbuild_internal.h
|
||||
@@ -490,11 +490,10 @@ rpmRC rpmfcGenerateDepends(const rpmSpec spec, Package pkg);
|
||||
* @retval *sb_stdoutp helper output
|
||||
* @param failnonzero IS non-zero helper exit status a failure?
|
||||
* @param buildRoot buildRoot directory (or NULL)
|
||||
- * @param dup duplicate output (or NULL)
|
||||
*/
|
||||
RPM_GNUC_INTERNAL
|
||||
int rpmfcExec(ARGV_const_t av, StringBuf sb_stdin, StringBuf * sb_stdoutp,
|
||||
- int failnonzero, const char *buildRoot, FILE *dup);
|
||||
+ int failnonzero, const char *buildRoot);
|
||||
|
||||
/** \ingroup rpmbuild
|
||||
* Post-build processing for policies in binary package(s).
|
||||
diff --git a/build/rpmfc.c b/build/rpmfc.c
|
||||
index 94b4620d2..abfee8332 100644
|
||||
--- a/build/rpmfc.c
|
||||
+++ b/build/rpmfc.c
|
||||
@@ -260,7 +260,7 @@ static rpmds rpmdsSingleNS(rpmstrPool pool,
|
||||
static int getOutputFrom(ARGV_t argv,
|
||||
const char * writePtr, size_t writeBytesLeft,
|
||||
StringBuf sb_stdout,
|
||||
- int failNonZero, const char *buildRoot, FILE *dup)
|
||||
+ int failNonZero, const char *buildRoot)
|
||||
{
|
||||
pid_t child, reaped;
|
||||
int toProg[2] = { -1, -1 };
|
||||
@@ -268,7 +268,7 @@ static int getOutputFrom(ARGV_t argv,
|
||||
int status;
|
||||
int myerrno = 0;
|
||||
int ret = 1; /* assume failure */
|
||||
- int doio = (writePtr || sb_stdout || dup);
|
||||
+ int doio = (writePtr || sb_stdout);
|
||||
|
||||
if (doio && (pipe(toProg) < 0 || pipe(fromProg) < 0)) {
|
||||
rpmlog(RPMLOG_ERR, _("Couldn't create pipe for %s: %m\n"), argv[0]);
|
||||
@@ -369,8 +369,6 @@ static int getOutputFrom(ARGV_t argv,
|
||||
buf[iorc] = '\0';
|
||||
if (sb_stdout)
|
||||
appendStringBuf(sb_stdout, buf);
|
||||
- if (dup)
|
||||
- fprintf(dup, "%s", buf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -402,7 +400,7 @@ exit:
|
||||
}
|
||||
|
||||
int rpmfcExec(ARGV_const_t av, StringBuf sb_stdin, StringBuf * sb_stdoutp,
|
||||
- int failnonzero, const char *buildRoot, FILE *dup)
|
||||
+ int failnonzero, const char *buildRoot)
|
||||
{
|
||||
char * s = NULL;
|
||||
ARGV_t xav = NULL;
|
||||
@@ -448,7 +446,7 @@ int rpmfcExec(ARGV_const_t av, StringBuf sb_stdin, StringBuf * sb_stdoutp,
|
||||
sb = newStringBuf();
|
||||
}
|
||||
ec = getOutputFrom(xav, buf_stdin, buf_stdin_len, sb,
|
||||
- failnonzero, buildRoot, dup);
|
||||
+ failnonzero, buildRoot);
|
||||
if (ec) {
|
||||
sb = freeStringBuf(sb);
|
||||
goto exit;
|
||||
@@ -498,7 +496,7 @@ static ARGV_t runCmd(const char *cmd,
|
||||
argvAdd(&av, cmd);
|
||||
|
||||
appendLineStringBuf(sb_stdin, fn);
|
||||
- if (rpmfcExec(av, sb_stdin, &sb_stdout, 0, buildRoot, NULL) == 0) {
|
||||
+ if (rpmfcExec(av, sb_stdin, &sb_stdout, 0, buildRoot) == 0) {
|
||||
argvSplit(&output, getStringBuf(sb_stdout), "\n\r");
|
||||
}
|
||||
|
||||
@@ -1359,7 +1357,7 @@ static rpmRC rpmfcApplyExternal(rpmfc fc)
|
||||
free(s);
|
||||
|
||||
if (rpmfcExec(dm->argv, sb_stdin, &sb_stdout,
|
||||
- failnonzero, fc->buildRoot, NULL) == -1)
|
||||
+ failnonzero, fc->buildRoot) == -1)
|
||||
continue;
|
||||
|
||||
if (sb_stdout == NULL) {
|
||||
--
|
||||
2.21.0
|
||||
|
17
rpm.spec
17
rpm.spec
@ -20,8 +20,8 @@
|
||||
%define rpmhome /usr/lib/rpm
|
||||
|
||||
%global rpmver 4.15.0
|
||||
%global snapver beta
|
||||
%global rel 6
|
||||
%global snapver rc1
|
||||
%global rel 1
|
||||
|
||||
%global srcver %{version}%{?snapver:-%{snapver}}
|
||||
%global srcdir %{?snapver:testing}%{!?snapver:%{name}-%(echo %{version} | cut -d'.' -f1-2).x}
|
||||
@ -51,18 +51,8 @@ Patch5: rpm-4.12.0-rpm2cpio-hack.patch
|
||||
Patch6: 0001-find-debuginfo.sh-decompress-DWARF-compressed-ELF-se.patch
|
||||
|
||||
# Patches already upstream:
|
||||
# https://github.com/rpm-software-management/rpm/commit/4b15a9e48bd3d4bef96e8a8865044346be20d6dc
|
||||
Patch101: 0001-Do-not-set-RPMTAG_BUILDTIME-to-SOURCE_DATE_EPOCH-whe.patch
|
||||
|
||||
Patch110: 0001-Support-running-rpmfcExec-without-any-piped-input-ou.patch
|
||||
Patch111: 0002-Restore-strict-order-of-build-scriptlet-stdout-stder.patch
|
||||
Patch112: 0003-Drop-the-no-longer-needed-rpmfcExec-output-duplicati.patch
|
||||
Patch113: 0001-Drop-_lto_cflags-macro-afterall.patch
|
||||
|
||||
# These are not yet upstream
|
||||
Patch200: 0001-Fix-build-code-thread-cap-logic-for-unlimited-CPUs.patch
|
||||
Patch201: 0002-Cap-number-of-threads-on-32bit-platforms-add-a-tunab.patch
|
||||
|
||||
Patch906: rpm-4.7.1-geode-i686.patch
|
||||
# Probably to be upstreamed in slightly different form
|
||||
Patch907: rpm-4.15.x-ldflags.patch
|
||||
@ -547,6 +537,9 @@ make check || (cat tests/rpmtests.log; exit 0)
|
||||
%doc doc/librpm/html/*
|
||||
|
||||
%changelog
|
||||
* Wed Aug 28 2019 Panu Matilainen <pmatilai@redhat.com> - 4.15.0-0.rc1.1
|
||||
- Update to 4.15.0-rc1
|
||||
|
||||
* Tue Aug 27 2019 Panu Matilainen <pmatilai@redhat.com> - 4.15.0-0.beta.6
|
||||
- Fix some issues in the thread cap logic
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (rpm-4.15.0-beta.tar.bz2) = 4aaa4cc43297ed1b75f36b500cf45b0e92cb7a61788a05f20306ecf035b5dca612a6afb46676dcd148458fb3538905ada276dd4c6f1cff5a5de75c7a642262b4
|
||||
SHA512 (rpm-4.15.0-rc1.tar.bz2) = 810d01b13de5ffaee8937faf093b87ede72b676a402de92e77aa7ddfc23468152151d59d35480440ba0d615146d8f4c9e86d1e74fca34220281d3e069ddc802d
|
||||
|
Loading…
Reference in New Issue
Block a user