Fix build of binary packages in parallel
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
This commit is contained in:
parent
7c70aabe3a
commit
5965610d18
@ -1,44 +0,0 @@
|
|||||||
From cb9e874ba52d866a86164ae8675ab6f07a35845e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
|
||||||
Date: Tue, 11 Jun 2019 00:07:49 +0200
|
|
||||||
Subject: [PATCH] Revert "Run binary package generation in parallel threads"
|
|
||||||
|
|
||||||
https://github.com/rpm-software-management/rpm/issues/742
|
|
||||||
|
|
||||||
This reverts commit 18c92e6fe76df334fed8d5f04b5f40b776daba8c.
|
|
||||||
---
|
|
||||||
build/pack.c | 13 +------------
|
|
||||||
1 file changed, 1 insertion(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/build/pack.c b/build/pack.c
|
|
||||||
index 447e3ec94..e8d4c220c 100644
|
|
||||||
--- a/build/pack.c
|
|
||||||
+++ b/build/pack.c
|
|
||||||
@@ -744,23 +744,12 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
|
|
||||||
rpmRC rc = RPMRC_OK;
|
|
||||||
Package pkg;
|
|
||||||
|
|
||||||
- /* Run binary creation in parallel */
|
|
||||||
- #pragma omp parallel
|
|
||||||
- #pragma omp single
|
|
||||||
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
|
|
||||||
- #pragma omp task
|
|
||||||
- {
|
|
||||||
pkg->rc = packageBinary(spec, pkg, cookie, cheating, &pkg->filename);
|
|
||||||
- rpmlog(RPMLOG_DEBUG,
|
|
||||||
- _("Finished binary package job, result %d, filename %s\n"),
|
|
||||||
- pkg->rc, pkg->filename);
|
|
||||||
if (pkg->rc) {
|
|
||||||
- #pragma omp critical
|
|
||||||
rc = pkg->rc;
|
|
||||||
- }
|
|
||||||
- } /* omp task */
|
|
||||||
- if (rc)
|
|
||||||
break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Now check the package set if enabled */
|
|
||||||
--
|
|
||||||
2.22.0.rc3
|
|
||||||
|
|
28
0001-build-Limit-copying-changelog-one-at-a-time.patch
Normal file
28
0001-build-Limit-copying-changelog-one-at-a-time.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From 8aab33f69c9d78b6d4d4e79ba661ae01cd970f2b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||||
|
Date: Tue, 11 Jun 2019 14:22:07 +0200
|
||||||
|
Subject: [PATCH] build: Limit copying changelog one at a time
|
||||||
|
|
||||||
|
Getting header content in multiple threads is causing problems since it
|
||||||
|
can (and apparently does) change internal state.
|
||||||
|
|
||||||
|
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||||
|
---
|
||||||
|
build/pack.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/build/pack.c b/build/pack.c
|
||||||
|
index ab72750be..e6cec1816 100644
|
||||||
|
--- a/build/pack.c
|
||||||
|
+++ b/build/pack.c
|
||||||
|
@@ -713,6 +713,7 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Copy changelog from src rpm */
|
||||||
|
+ #pragma omp critical
|
||||||
|
headerCopyTags(spec->sourcePackage->header, pkg->header, copyTags);
|
||||||
|
|
||||||
|
headerPutString(pkg->header, RPMTAG_RPMVERSION, VERSION);
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
11
rpm.spec
11
rpm.spec
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
%global rpmver 4.14.90
|
%global rpmver 4.14.90
|
||||||
%global snapver git14653
|
%global snapver git14653
|
||||||
%global rel 12
|
%global rel 13
|
||||||
|
|
||||||
%global srcver %{version}%{?snapver:-%{snapver}}
|
%global srcver %{version}%{?snapver:-%{snapver}}
|
||||||
%global srcdir %{?snapver:testing}%{!?snapver:%{name}-%(echo %{version} | cut -d'.' -f1-2).x}
|
%global srcdir %{?snapver:testing}%{!?snapver:%{name}-%(echo %{version} | cut -d'.' -f1-2).x}
|
||||||
@ -49,10 +49,10 @@ Patch3: rpm-4.9.90-no-man-dirs.patch
|
|||||||
Patch5: rpm-4.12.0-rpm2cpio-hack.patch
|
Patch5: rpm-4.12.0-rpm2cpio-hack.patch
|
||||||
# https://github.com/rpm-software-management/rpm/pull/473
|
# https://github.com/rpm-software-management/rpm/pull/473
|
||||||
Patch6: 0001-find-debuginfo.sh-decompress-DWARF-compressed-ELF-se.patch
|
Patch6: 0001-find-debuginfo.sh-decompress-DWARF-compressed-ELF-se.patch
|
||||||
# https://github.com/rpm-software-management/rpm/issues/742
|
# https://github.com/rpm-software-management/rpm/commit/526641ceeca12fbaa878401f8e65d17f240a9ae5
|
||||||
#Patch7: 0001-Revert-Run-binary-package-generation-in-parallel-thr.patch
|
|
||||||
Patch7: 0001-Only-permit-one-thread-at-a-time-in-addFileToTag.patch
|
Patch7: 0001-Only-permit-one-thread-at-a-time-in-addFileToTag.patch
|
||||||
Patch8: test.diff
|
# https://github.com/rpm-software-management/rpm/pull/745
|
||||||
|
Patch8: 0001-build-Limit-copying-changelog-one-at-a-time.patch
|
||||||
|
|
||||||
# Patches already upstream:
|
# Patches already upstream:
|
||||||
|
|
||||||
@ -541,6 +541,9 @@ make check || (cat tests/rpmtests.log; exit 0)
|
|||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jun 11 14:59:16 CEST 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.14.90-0.git14653.13
|
||||||
|
- Fix build of binary packages in parallel
|
||||||
|
|
||||||
* Tue Jun 11 00:08:50 CEST 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.14.90-0.git14653.10
|
* Tue Jun 11 00:08:50 CEST 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.14.90-0.git14653.10
|
||||||
- Revert generation of binary packages in parallel
|
- Revert generation of binary packages in parallel
|
||||||
|
|
||||||
|
12
test.diff
12
test.diff
@ -1,12 +0,0 @@
|
|||||||
diff --git a/build/pack.c b/build/pack.c
|
|
||||||
index ab72750be..e6cec1816 100644
|
|
||||||
--- a/build/pack.c
|
|
||||||
+++ b/build/pack.c
|
|
||||||
@@ -713,6 +713,7 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Copy changelog from src rpm */
|
|
||||||
+ #pragma omp critical
|
|
||||||
headerCopyTags(spec->sourcePackage->header, pkg->header, copyTags);
|
|
||||||
|
|
||||||
headerPutString(pkg->header, RPMTAG_RPMVERSION, VERSION);
|
|
Loading…
Reference in New Issue
Block a user