summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorAlexander Kanavin <alexander.kanavin@linux.intel.com>2017-12-18 18:00:28 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-01-02 17:24:36 +0000
commit0ac5ca3fcf60d42337ea62c3006f3787a7978131 (patch)
treeb5e5909c499ff39d74815b7603125df2a85cb5cf /meta/recipes-devtools
parent0d5475a3b28d9e2c9273967a03726bb6c427bd11 (diff)
downloadpoky-0ac5ca3fcf60d42337ea62c3006f3787a7978131.tar.gz
rpm: update to 4.14.0
Previously oe-core had a development snapshot of rpm, it's better to update to something more stable. Removed patches: 0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch (upstream is using pkg-config) 0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch (functionality has been moved to a plugin, we disable plugins for rpm-native) 0012-Use-conditional-to-access-_docdir-in-macros.in.patch (merged upstream) Changed patches: 0001-Fix-build-with-musl-C-library.patch (one previous musl issue has been resolved upstream; another has been added) Rest of the patches are trivial rebases. Update the signing oe-selftest so that the reference output matches the upstream changes. (From OE-Core rev: b4613b6ce07c295c5d6de6861acf19315acaccb2) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch30
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch20
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch66
-rw-r--r--meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch31
-rw-r--r--meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch54
-rw-r--r--meta/recipes-devtools/rpm/files/0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch11
-rw-r--r--meta/recipes-devtools/rpm/files/0012-Use-conditional-to-access-_docdir-in-macros.in.patch36
-rw-r--r--meta/recipes-devtools/rpm/files/0013-Add-a-new-option-alldeps-to-rpmdeps.patch17
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.14.0.bb (renamed from meta/recipes-devtools/rpm/rpm_git.bb)8
9 files changed, 75 insertions, 198 deletions
diff --git a/meta/recipes-devtools/rpm/files/0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch b/meta/recipes-devtools/rpm/files/0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch
deleted file mode 100644
index b809332f21..0000000000
--- a/meta/recipes-devtools/rpm/files/0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 36cf0ff26ece53e529e8b4f2d2f09acd8794b055 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 24 Mar 2017 15:35:47 +0200
4Subject: [PATCH] Add PYTHON_ABI when searching for python libraries.
5
6It has a value of 'm' when using Python3, and so without it
7configure will not find the libraries.
8
9Upstream-Status: Inappropriate [oe-core specific]
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11---
12 configure.ac | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/configure.ac b/configure.ac
16index 9c58467c1..a506ec819 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -642,7 +642,7 @@ AS_IF([test "$enable_python" = yes],[
20 ])
21 CPPFLAGS="$save_CPPFLAGS"
22 save_LIBS="$LIBS"
23- AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION} python],[
24+ AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION}${PYTHON_ABI} python],[
25 WITH_PYTHON_LIB="$ac_res"
26 ],[AC_MSG_ERROR([missing python library])
27 ])
28--
292.11.0
30
diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
index 1f61acaf43..d7b1145bc5 100644
--- a/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
+++ b/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
@@ -1,10 +1,10 @@
1From d82691b8d58201dd03e30585daacd8ffd1556ae2 Mon Sep 17 00:00:00 2001 1From 2b1a3f900f15034943fc41661eaab41bcc0d4d84 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 27 Feb 2017 09:43:30 +0200 3Date: Mon, 27 Feb 2017 09:43:30 +0200
4Subject: [PATCH] Do not hardcode "lib/rpm" as the installation path for 4Subject: [PATCH 06/15] Do not hardcode "lib/rpm" as the installation path for
5 default configuration and macros. 5 default configuration and macros.
6 6
7Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/263] 7Upstream-Status: Denied [https://github.com/rpm-software-management/rpm/pull/263]
8Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 8Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
9 9
10--- 10---
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
14 3 files changed, 4 insertions(+), 4 deletions(-) 14 3 files changed, 4 insertions(+), 4 deletions(-)
15 15
16diff --git a/configure.ac b/configure.ac 16diff --git a/configure.ac b/configure.ac
17index 4f3be8770..92ffd3d68 100644 17index 373d69484..c04a2e8d1 100644
18--- a/configure.ac 18--- a/configure.ac
19+++ b/configure.ac 19+++ b/configure.ac
20@@ -875,7 +875,7 @@ else 20@@ -1038,7 +1038,7 @@ else
21 usrprefix=$prefix 21 usrprefix=$prefix
22 fi 22 fi
23 23
@@ -27,10 +27,10 @@ index 4f3be8770..92ffd3d68 100644
27 27
28 AC_SUBST(OBJDUMP) 28 AC_SUBST(OBJDUMP)
29diff --git a/macros.in b/macros.in 29diff --git a/macros.in b/macros.in
30index c6d5a6b03..84ae25275 100644 30index 3f8dbba61..da4812540 100644
31--- a/macros.in 31--- a/macros.in
32+++ b/macros.in 32+++ b/macros.in
33@@ -877,7 +877,7 @@ package or when debugging this package.\ 33@@ -954,7 +954,7 @@ package or when debugging this package.\
34 %_sharedstatedir %{_prefix}/com 34 %_sharedstatedir %{_prefix}/com
35 %_localstatedir %{_prefix}/var 35 %_localstatedir %{_prefix}/var
36 %_lib lib 36 %_lib lib
@@ -40,7 +40,7 @@ index c6d5a6b03..84ae25275 100644
40 %_infodir %{_datadir}/info 40 %_infodir %{_datadir}/info
41 %_mandir %{_datadir}/man 41 %_mandir %{_datadir}/man
42diff --git a/rpm.am b/rpm.am 42diff --git a/rpm.am b/rpm.am
43index 1f43ad8a0..6854ff6ba 100644 43index f0df0202f..37205a5eb 100644
44--- a/rpm.am 44--- a/rpm.am
45+++ b/rpm.am 45+++ b/rpm.am
46@@ -1,10 +1,10 @@ 46@@ -1,10 +1,10 @@
@@ -55,7 +55,7 @@ index 1f43ad8a0..6854ff6ba 100644
55+rpmconfigdir = $(libdir)/rpm 55+rpmconfigdir = $(libdir)/rpm
56 56
57 # Libtool version (current-revision-age) for all our libraries 57 # Libtool version (current-revision-age) for all our libraries
58 rpm_version_info = 7:0:0 58 rpm_version_info = 8:0:0
59-- 59--
602.11.0 602.14.2
61 61
diff --git a/meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch b/meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch
index edf9ec0894..0b1d6298a9 100644
--- a/meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch
+++ b/meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch
@@ -1,24 +1,21 @@
1From 211c2d11200e6657132c52e7ac68f8c118231262 Mon Sep 17 00:00:00 2001 1From d076de030deb9cafd9b2e82be5d506cebdefad0b Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 27 Feb 2017 14:43:21 +0200 3Date: Mon, 27 Feb 2017 14:43:21 +0200
4Subject: [PATCH] Fix build with musl C library. 4Subject: [PATCH 1/9] Fix build with musl C library.
5 5
6Upstream-Status: Inappropriate [problem already solved in master branch] 6Upstream-Status: Pending
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8 8
9
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11--- 9---
12 configure.ac | 3 ++- 10 configure.ac | 3 ++-
13 misc/Makefile.am | 3 +-- 11 rpmio/digest_nss.c | 1 +
14 misc/rpmxprogname.c | 3 +-- 12 2 files changed, 3 insertions(+), 1 deletion(-)
15 3 files changed, 4 insertions(+), 5 deletions(-)
16 13
17diff --git a/configure.ac b/configure.ac 14diff --git a/configure.ac b/configure.ac
18index 92ffd3d68..9c58467c1 100644 15index c04a2e8d1..c9d9ac16d 100644
19--- a/configure.ac 16--- a/configure.ac
20+++ b/configure.ac 17+++ b/configure.ac
21@@ -229,6 +229,7 @@ AC_SEARCH_LIBS(dlopen, [dl]) 18@@ -255,6 +255,7 @@ AC_SEARCH_LIBS(dlopen, [dl])
22 # Check for libelf library. Prefer external, otherwise none. 19 # Check for libelf library. Prefer external, otherwise none.
23 WITH_LIBELF_LIB= 20 WITH_LIBELF_LIB=
24 AC_CHECK_HEADER([libelf.h]) 21 AC_CHECK_HEADER([libelf.h])
@@ -26,7 +23,7 @@ index 92ffd3d68..9c58467c1 100644
26 AC_CHECK_HEADERS([gelf.h], [ 23 AC_CHECK_HEADERS([gelf.h], [
27 AC_CHECK_LIB(elf, gelf_getvernaux, [ 24 AC_CHECK_LIB(elf, gelf_getvernaux, [
28 AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).]) 25 AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).])
29@@ -237,7 +238,7 @@ AC_CHECK_HEADERS([gelf.h], [ 26@@ -263,7 +264,7 @@ AC_CHECK_HEADERS([gelf.h], [
30 ]) 27 ])
31 ]) 28 ])
32 AC_SUBST(WITH_LIBELF_LIB) 29 AC_SUBST(WITH_LIBELF_LIB)
@@ -35,40 +32,17 @@ index 92ffd3d68..9c58467c1 100644
35 32
36 AC_CHECK_HEADERS([dwarf.h], [ 33 AC_CHECK_HEADERS([dwarf.h], [
37 WITH_LIBDWARF=yes 34 WITH_LIBDWARF=yes
38diff --git a/misc/Makefile.am b/misc/Makefile.am 35diff --git a/rpmio/digest_nss.c b/rpmio/digest_nss.c
39index 8bf0093d9..b9db3d31a 100644 36index 992d9acf6..e11920e3e 100644
40--- a/misc/Makefile.am 37--- a/rpmio/digest_nss.c
41+++ b/misc/Makefile.am 38+++ b/rpmio/digest_nss.c
42@@ -5,10 +5,9 @@ AM_CPPFLAGS += -I$(top_srcdir)/misc 39@@ -1,5 +1,6 @@
43 40 #include "system.h"
44 EXTRA_DIST = \
45 fnmatch.c fnmatch.h \
46- rpmxprogname.c rpmxprogname.h \
47 stpcpy.c stpncpy.c
48
49 noinst_LTLIBRARIES = libmisc.la
50
51-libmisc_la_SOURCES = fts.c fts.h
52+libmisc_la_SOURCES = fts.c fts.h rpmxprogname.c rpmxprogname.h
53 libmisc_la_LIBADD = @LTLIBOBJS@
54diff --git a/misc/rpmxprogname.c b/misc/rpmxprogname.c
55index f89600613..e94625ea8 100644
56--- a/misc/rpmxprogname.c
57+++ b/misc/rpmxprogname.c
58@@ -13,7 +13,7 @@ char *_rpmxgetprogname(void)
59 {
60 const char *empty = "";
61
62- if (_rpmxprognam != NULL) /* never return NULL string */
63+ if (_rpmxprogname != NULL) /* never return NULL string */
64 return _rpmxprogname;
65 else
66 return empty;
67@@ -30,4 +30,3 @@ void _rpmxsetprogname(const char *pn)
68 }
69 }
70 41
71-#endif /* _RPMXPROGNAME_H */ 42+#include <signal.h>
43 #include <pthread.h>
44 #include <nss.h>
45 #include <sechash.h>
72-- 46--
732.11.0 472.14.2
74 48
diff --git a/meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch b/meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch
deleted file mode 100644
index 9648cac7c9..0000000000
--- a/meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From d42ece6fa15b98d7f9221b90b85b78631df2c0a0 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 14 Feb 2017 13:51:19 +0200
4Subject: [PATCH] When nice value cannot be reset, issue a notice instead of a
5 warning
6
7Otherwise build logs on the autobuilder get very clutter, as it
8doesn't allow the nice value to be reset for some reason.
9
10Upstream-Status: Inappropriate [oe specific]
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12---
13 lib/rpmscript.c | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/lib/rpmscript.c b/lib/rpmscript.c
17index 5e1e99906..3975aead8 100644
18--- a/lib/rpmscript.c
19+++ b/lib/rpmscript.c
20@@ -347,7 +347,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
21 int ret;
22 ret = setpriority(PRIO_PROCESS, 0, 0);
23 if (ret == -1) {
24- rpmlog(RPMLOG_WARNING, _("Unable to reset nice value: %s"),
25+ rpmlog(RPMLOG_NOTICE, _("Unable to reset nice value: %s\n"),
26 strerror(errno));
27 }
28
29--
302.11.0
31
diff --git a/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch b/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch
index 64a5651f7e..8989dcebd1 100644
--- a/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch
+++ b/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch
@@ -1,7 +1,7 @@
1From ec305795a302d226343e69031ff2024dfcde69c0 Mon Sep 17 00:00:00 2001 1From 8ce9fbab2990609bdace457e146160334e931c89 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 8 Jun 2017 17:08:09 +0300 3Date: Thu, 8 Jun 2017 17:08:09 +0300
4Subject: [PATCH 3/3] build/pack.c: remove static local variables from 4Subject: [PATCH 14/15] build/pack.c: remove static local variables from
5 buildHost() and getBuildTime() 5 buildHost() and getBuildTime()
6 6
7Their use is causing difficult to diagnoze data races when building multiple 7Their use is causing difficult to diagnoze data races when building multiple
@@ -11,8 +11,8 @@ difficult to reason about code.
11Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/226] 11Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/226]
12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13 13
14
15Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 14Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
15
16--- 16---
17 build/build.c | 54 ++++++++++++++++++++++++++++-- 17 build/build.c | 54 ++++++++++++++++++++++++++++--
18 build/pack.c | 84 +++++++++-------------------------------------- 18 build/pack.c | 84 +++++++++--------------------------------------
@@ -20,7 +20,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
20 3 files changed, 74 insertions(+), 72 deletions(-) 20 3 files changed, 74 insertions(+), 72 deletions(-)
21 21
22diff --git a/build/build.c b/build/build.c 22diff --git a/build/build.c b/build/build.c
23index 5f99c8db7..09a1311c5 100644 23index 81152e53e..6001f9e52 100644
24--- a/build/build.c 24--- a/build/build.c
25+++ b/build/build.c 25+++ b/build/build.c
26@@ -6,6 +6,8 @@ 26@@ -6,6 +6,8 @@
@@ -83,7 +83,7 @@ index 5f99c8db7..09a1311c5 100644
83 /** 83 /**
84 */ 84 */
85 static rpmRC doRmSource(rpmSpec spec) 85 static rpmRC doRmSource(rpmSpec spec)
86@@ -203,6 +249,9 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what) 86@@ -201,6 +247,9 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what)
87 rpmRC rc = RPMRC_OK; 87 rpmRC rc = RPMRC_OK;
88 int test = (what & RPMBUILD_NOBUILD); 88 int test = (what & RPMBUILD_NOBUILD);
89 char *cookie = buildArgs->cookie ? xstrdup(buildArgs->cookie) : NULL; 89 char *cookie = buildArgs->cookie ? xstrdup(buildArgs->cookie) : NULL;
@@ -93,7 +93,7 @@ index 5f99c8db7..09a1311c5 100644
93 93
94 if (rpmExpandNumeric("%{?source_date_epoch_from_changelog}") && 94 if (rpmExpandNumeric("%{?source_date_epoch_from_changelog}") &&
95 getenv("SOURCE_DATE_EPOCH") == NULL) { 95 getenv("SOURCE_DATE_EPOCH") == NULL) {
96@@ -271,11 +320,11 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what) 96@@ -269,11 +318,11 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what)
97 goto exit; 97 goto exit;
98 98
99 if (((what & RPMBUILD_PACKAGESOURCE) && !test) && 99 if (((what & RPMBUILD_PACKAGESOURCE) && !test) &&
@@ -107,7 +107,7 @@ index 5f99c8db7..09a1311c5 100644
107 goto exit; 107 goto exit;
108 108
109 if ((what & RPMBUILD_CLEAN) && 109 if ((what & RPMBUILD_CLEAN) &&
110@@ -295,6 +344,7 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what) 110@@ -293,6 +342,7 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what)
111 (void) unlink(spec->specFile); 111 (void) unlink(spec->specFile);
112 112
113 exit: 113 exit:
@@ -116,7 +116,7 @@ index 5f99c8db7..09a1311c5 100644
116 spec->rootDir = NULL; 116 spec->rootDir = NULL;
117 if (rc != RPMRC_OK && rpmlogGetNrecs() > 0) { 117 if (rc != RPMRC_OK && rpmlogGetNrecs() > 0) {
118diff --git a/build/pack.c b/build/pack.c 118diff --git a/build/pack.c b/build/pack.c
119index ed5b9ab4e..62427065a 100644 119index df15876ff..17a4b0905 100644
120--- a/build/pack.c 120--- a/build/pack.c
121+++ b/build/pack.c 121+++ b/build/pack.c
122@@ -6,8 +6,6 @@ 122@@ -6,8 +6,6 @@
@@ -128,7 +128,7 @@ index ed5b9ab4e..62427065a 100644
128 #include <sys/wait.h> 128 #include <sys/wait.h>
129 129
130 #include <rpm/rpmlib.h> /* RPMSIGTAG*, rpmReadPackageFile */ 130 #include <rpm/rpmlib.h> /* RPMSIGTAG*, rpmReadPackageFile */
131@@ -151,57 +149,6 @@ exit: 131@@ -152,57 +150,6 @@ exit:
132 return rc; 132 return rc;
133 } 133 }
134 134
@@ -186,9 +186,9 @@ index ed5b9ab4e..62427065a 100644
186 static rpmRC processScriptFiles(rpmSpec spec, Package pkg) 186 static rpmRC processScriptFiles(rpmSpec spec, Package pkg)
187 { 187 {
188 struct TriggerFileEntry *p; 188 struct TriggerFileEntry *p;
189@@ -308,7 +255,8 @@ static int haveRichDep(Package pkg) 189@@ -476,7 +423,8 @@ exit:
190 } 190 * order to how the RPM format is laid on disk.
191 191 */
192 static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp, 192 static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
193- const char *fileName, char **cookie) 193- const char *fileName, char **cookie)
194+ const char *fileName, char **cookie, 194+ const char *fileName, char **cookie,
@@ -196,7 +196,7 @@ index ed5b9ab4e..62427065a 100644
196 { 196 {
197 FD_t fd = NULL; 197 FD_t fd = NULL;
198 char * rpmio_flags = NULL; 198 char * rpmio_flags = NULL;
199@@ -397,7 +345,7 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp, 199@@ -500,7 +448,7 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
200 200
201 /* Create and add the cookie */ 201 /* Create and add the cookie */
202 if (cookie) { 202 if (cookie) {
@@ -204,8 +204,8 @@ index ed5b9ab4e..62427065a 100644
204+ rasprintf(cookie, "%s %d", buildHost, buildTime); 204+ rasprintf(cookie, "%s %d", buildHost, buildTime);
205 headerPutString(pkg->header, RPMTAG_COOKIE, *cookie); 205 headerPutString(pkg->header, RPMTAG_COOKIE, *cookie);
206 } 206 }
207 207
208@@ -546,7 +494,7 @@ static rpmRC checkPackages(char *pkgcheck) 208@@ -641,7 +589,7 @@ static rpmRC checkPackages(char *pkgcheck)
209 return RPMRC_OK; 209 return RPMRC_OK;
210 } 210 }
211 211
@@ -214,7 +214,7 @@ index ed5b9ab4e..62427065a 100644
214 { 214 {
215 const char *errorString; 215 const char *errorString;
216 rpmRC rc = RPMRC_OK; 216 rpmRC rc = RPMRC_OK;
217@@ -565,8 +513,8 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch 217@@ -660,8 +608,8 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
218 headerCopyTags(spec->packages->header, pkg->header, copyTags); 218 headerCopyTags(spec->packages->header, pkg->header, copyTags);
219 219
220 headerPutString(pkg->header, RPMTAG_RPMVERSION, VERSION); 220 headerPutString(pkg->header, RPMTAG_RPMVERSION, VERSION);
@@ -225,7 +225,7 @@ index ed5b9ab4e..62427065a 100644
225 225
226 if (spec->sourcePkgId != NULL) { 226 if (spec->sourcePkgId != NULL) {
227 headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16); 227 headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16);
228@@ -604,7 +552,7 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch 228@@ -699,7 +647,7 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
229 free(binRpm); 229 free(binRpm);
230 } 230 }
231 231
@@ -234,7 +234,7 @@ index ed5b9ab4e..62427065a 100644
234 if (rc == RPMRC_OK) { 234 if (rc == RPMRC_OK) {
235 /* Do check each written package if enabled */ 235 /* Do check each written package if enabled */
236 char *pkgcheck = rpmExpand("%{?_build_pkgcheck} ", *filename, NULL); 236 char *pkgcheck = rpmExpand("%{?_build_pkgcheck} ", *filename, NULL);
237@@ -624,7 +572,7 @@ struct binaryPackageTaskData 237@@ -719,7 +667,7 @@ struct binaryPackageTaskData
238 struct binaryPackageTaskData *next; 238 struct binaryPackageTaskData *next;
239 }; 239 };
240 240
@@ -243,7 +243,7 @@ index ed5b9ab4e..62427065a 100644
243 { 243 {
244 struct binaryPackageTaskData *tasks = NULL; 244 struct binaryPackageTaskData *tasks = NULL;
245 struct binaryPackageTaskData *task = NULL; 245 struct binaryPackageTaskData *task = NULL;
246@@ -636,7 +584,7 @@ static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const c 246@@ -731,7 +679,7 @@ static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const c
247 if (pkg == spec->packages) { 247 if (pkg == spec->packages) {
248 // the first package needs to be processed ahead of others, as they copy 248 // the first package needs to be processed ahead of others, as they copy
249 // changelog data from it, and so otherwise data races would happen 249 // changelog data from it, and so otherwise data races would happen
@@ -252,7 +252,7 @@ index ed5b9ab4e..62427065a 100644
252 rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename); 252 rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename);
253 tasks = task; 253 tasks = task;
254 } 254 }
255@@ -653,7 +601,7 @@ static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const c 255@@ -748,7 +696,7 @@ static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const c
256 if (task != tasks) 256 if (task != tasks)
257 #pragma omp task 257 #pragma omp task
258 { 258 {
@@ -261,7 +261,7 @@ index ed5b9ab4e..62427065a 100644
261 rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename); 261 rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename);
262 } 262 }
263 } 263 }
264@@ -671,11 +619,11 @@ static void freeBinaryPackageTasks(struct binaryPackageTaskData* tasks) 264@@ -766,11 +714,11 @@ static void freeBinaryPackageTasks(struct binaryPackageTaskData* tasks)
265 } 265 }
266 } 266 }
267 267
@@ -275,7 +275,7 @@ index ed5b9ab4e..62427065a 100644
275 275
276 for (struct binaryPackageTaskData *task = tasks; task != NULL; task = task->next) { 276 for (struct binaryPackageTaskData *task = tasks; task != NULL; task = task->next) {
277 if (task->result == RPMRC_OK) { 277 if (task->result == RPMRC_OK) {
278@@ -702,22 +650,22 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating) 278@@ -797,7 +745,7 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
279 return RPMRC_OK; 279 return RPMRC_OK;
280 } 280 }
281 281
@@ -284,6 +284,7 @@ index ed5b9ab4e..62427065a 100644
284 { 284 {
285 Package sourcePkg = spec->sourcePackage; 285 Package sourcePkg = spec->sourcePackage;
286 rpmRC rc; 286 rpmRC rc;
287@@ -805,8 +753,8 @@ rpmRC packageSources(rpmSpec spec, char **cookie)
287 288
288 /* Add some cruft */ 289 /* Add some cruft */
289 headerPutString(sourcePkg->header, RPMTAG_RPMVERSION, VERSION); 290 headerPutString(sourcePkg->header, RPMTAG_RPMVERSION, VERSION);
@@ -291,9 +292,10 @@ index ed5b9ab4e..62427065a 100644
291- headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1); 292- headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
292+ headerPutString(sourcePkg->header, RPMTAG_BUILDHOST, buildHost); 293+ headerPutString(sourcePkg->header, RPMTAG_BUILDHOST, buildHost);
293+ headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, &buildTime, 1); 294+ headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, &buildTime, 1);
295 headerPutUint32(sourcePkg->header, RPMTAG_SOURCEPACKAGE, &one, 1);
294 296
295 /* XXX this should be %_srpmdir */ 297 /* XXX this should be %_srpmdir */
296 { char *fn = rpmGetPath("%{_srcrpmdir}/", spec->sourceRpmName,NULL); 298@@ -814,7 +762,7 @@ rpmRC packageSources(rpmSpec spec, char **cookie)
297 char *pkgcheck = rpmExpand("%{?_build_pkgcheck_srpm} ", fn, NULL); 299 char *pkgcheck = rpmExpand("%{?_build_pkgcheck_srpm} ", fn, NULL);
298 300
299 spec->sourcePkgId = NULL; 301 spec->sourcePkgId = NULL;
@@ -303,10 +305,10 @@ index ed5b9ab4e..62427065a 100644
303 /* Do check SRPM package if enabled */ 305 /* Do check SRPM package if enabled */
304 if (rc == RPMRC_OK && pkgcheck[0] != ' ') { 306 if (rc == RPMRC_OK && pkgcheck[0] != ' ') {
305diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h 307diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h
306index 8351a6a34..797337ca7 100644 308index 439b7d3b5..07e8338ad 100644
307--- a/build/rpmbuild_internal.h 309--- a/build/rpmbuild_internal.h
308+++ b/build/rpmbuild_internal.h 310+++ b/build/rpmbuild_internal.h
309@@ -408,19 +408,23 @@ rpmRC processSourceFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags); 311@@ -427,19 +427,23 @@ rpmRC processSourceFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags);
310 * @param spec spec file control structure 312 * @param spec spec file control structure
311 * @param cookie build identifier "cookie" or NULL 313 * @param cookie build identifier "cookie" or NULL
312 * @param cheating was build shortcircuited? 314 * @param cheating was build shortcircuited?
@@ -333,5 +335,5 @@ index 8351a6a34..797337ca7 100644
333 RPM_GNUC_INTERNAL 335 RPM_GNUC_INTERNAL
334 int addLangTag(rpmSpec spec, Header h, rpmTagVal tag, 336 int addLangTag(rpmSpec spec, Header h, rpmTagVal tag,
335-- 337--
3362.11.0 3382.14.2
337 339
diff --git a/meta/recipes-devtools/rpm/files/0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch b/meta/recipes-devtools/rpm/files/0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch
index c910a478ee..4ac5c38f06 100644
--- a/meta/recipes-devtools/rpm/files/0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch
+++ b/meta/recipes-devtools/rpm/files/0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch
@@ -1,7 +1,7 @@
1From d65d6e8760afbd7f70b22a1f3297a037bc475fea Mon Sep 17 00:00:00 2001 1From 5141d50d7b3d3c209a22c53deedb4ceef014401d Mon Sep 17 00:00:00 2001
2From: Peter Kjellerstedt <pkj@axis.com> 2From: Peter Kjellerstedt <pkj@axis.com>
3Date: Mon, 15 May 2017 10:21:08 +0200 3Date: Mon, 15 May 2017 10:21:08 +0200
4Subject: [PATCH 11/13] Do not require that ELF binaries are executable to be 4Subject: [PATCH 09/15] Do not require that ELF binaries are executable to be
5 identifiable 5 identifiable
6 6
7There is nothing that requires, e.g., a DSO to be executable, but it 7There is nothing that requires, e.g., a DSO to be executable, but it
@@ -14,19 +14,20 @@ or not.
14 14
15Upstream-Status: Inappropriate 15Upstream-Status: Inappropriate
16Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> 16Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
17
17--- 18---
18 fileattrs/elf.attr | 1 - 19 fileattrs/elf.attr | 1 -
19 1 file changed, 1 deletion(-) 20 1 file changed, 1 deletion(-)
20 21
21diff --git a/fileattrs/elf.attr b/fileattrs/elf.attr 22diff --git a/fileattrs/elf.attr b/fileattrs/elf.attr
22index 595b33e09..bac52649d 100644 23index 5805dd0ee..3516f309d 100644
23--- a/fileattrs/elf.attr 24--- a/fileattrs/elf.attr
24+++ b/fileattrs/elf.attr 25+++ b/fileattrs/elf.attr
25@@ -1,4 +1,3 @@ 26@@ -1,4 +1,3 @@
26 %__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private} 27 %__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
27 %__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private} 28 %__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
28 %__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*$ 29 %__elf_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$
29-%__elf_flags exeonly 30-%__elf_flags exeonly
30-- 31--
312.12.0 322.14.2
32 33
diff --git a/meta/recipes-devtools/rpm/files/0012-Use-conditional-to-access-_docdir-in-macros.in.patch b/meta/recipes-devtools/rpm/files/0012-Use-conditional-to-access-_docdir-in-macros.in.patch
deleted file mode 100644
index 996da90d43..0000000000
--- a/meta/recipes-devtools/rpm/files/0012-Use-conditional-to-access-_docdir-in-macros.in.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 77808db4036dc4a012c47aca36255549ed764a6a Mon Sep 17 00:00:00 2001
2From: Peter Kjellerstedt <pkj@axis.com>
3Date: Tue, 16 May 2017 10:58:18 +0200
4Subject: [PATCH 12/13] Use conditional to access %{_docdir} in macros.in
5
6This avoids the following warning:
7
8warning: Ignoring invalid regex %{_docdir}
9
10when runing `rpmdeps -R <file>`, since %{_docdir} is only defined when
11parsing a spec file (in parseSpec()).
12
13Upstream-Status: Accepted [https://github.com/rpm-software-management/rpm/pull/216]
14Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
15---
16 macros.in | 4 ++--
17 1 file changed, 2 insertions(+), 2 deletions(-)
18
19diff --git a/macros.in b/macros.in
20index 84ae25275..cca67a500 100644
21--- a/macros.in
22+++ b/macros.in
23@@ -200,8 +200,8 @@ package or when debugging this package.\
24 # Their purpouse is to set up global filtering for all packages. If you need
25 # to set up specific filtering for your package use %__requires_exclude_from
26 # and %__provides_exclude_from instead.
27-%__global_requires_exclude_from %{_docdir}
28-%__global_provides_exclude_from %{_docdir}
29+%__global_requires_exclude_from %{?_docdir:%{_docdir}}
30+%__global_provides_exclude_from %{?_docdir:%{_docdir}}
31
32 # The path to the gzip executable (legacy, use %{__gzip} instead).
33 %_gzipbin %{__gzip}
34--
352.12.0
36
diff --git a/meta/recipes-devtools/rpm/files/0013-Add-a-new-option-alldeps-to-rpmdeps.patch b/meta/recipes-devtools/rpm/files/0013-Add-a-new-option-alldeps-to-rpmdeps.patch
index faaf62960c..d84e8b54d8 100644
--- a/meta/recipes-devtools/rpm/files/0013-Add-a-new-option-alldeps-to-rpmdeps.patch
+++ b/meta/recipes-devtools/rpm/files/0013-Add-a-new-option-alldeps-to-rpmdeps.patch
@@ -1,7 +1,7 @@
1From 3bf20a6116ae3e1a5a3a6907bee7e881b17efb2f Mon Sep 17 00:00:00 2001 1From ef9f8c17c3e5c35d3b55db9ca76b0fa0d6336421 Mon Sep 17 00:00:00 2001
2From: Peter Kjellerstedt <pkj@axis.com> 2From: Peter Kjellerstedt <pkj@axis.com>
3Date: Mon, 15 May 2017 11:23:26 +0200 3Date: Mon, 15 May 2017 11:23:26 +0200
4Subject: [PATCH 13/13] Add a new option --alldeps to rpmdeps 4Subject: [PATCH 10/15] Add a new option --alldeps to rpmdeps
5 5
6This will send the output from rpmfcPrint() to stdout. This is an 6This will send the output from rpmfcPrint() to stdout. This is an
7alternative to using the --rpmfcdebug option, which will send the same 7alternative to using the --rpmfcdebug option, which will send the same
@@ -12,6 +12,7 @@ output options, e.g., --requires, without affecting their output.
12 12
13Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/220] 13Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/220]
14Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> 14Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
15
15--- 16---
16 build/rpmfc.c | 27 ++++++++++++++------------- 17 build/rpmfc.c | 27 ++++++++++++++-------------
17 build/rpmfc.h | 1 - 18 build/rpmfc.h | 1 -
@@ -19,10 +20,10 @@ Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
19 3 files changed, 39 insertions(+), 33 deletions(-) 20 3 files changed, 39 insertions(+), 33 deletions(-)
20 21
21diff --git a/build/rpmfc.c b/build/rpmfc.c 22diff --git a/build/rpmfc.c b/build/rpmfc.c
22index c8e2f876a..44f1cdc9a 100644 23index b8aea76d0..d04ffb297 100644
23--- a/build/rpmfc.c 24--- a/build/rpmfc.c
24+++ b/build/rpmfc.c 25+++ b/build/rpmfc.c
25@@ -732,7 +732,6 @@ static rpm_color_t rpmfcColor(const char * fmstr) 26@@ -692,7 +692,6 @@ static rpm_color_t rpmfcColor(const char * fmstr)
26 27
27 void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp) 28 void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp)
28 { 29 {
@@ -30,7 +31,7 @@ index c8e2f876a..44f1cdc9a 100644
30 int ndx; 31 int ndx;
31 int dx; 32 int dx;
32 int fx; 33 int fx;
33@@ -744,21 +743,23 @@ void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp) 34@@ -704,21 +703,23 @@ void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp)
34 35
35 if (fc) 36 if (fc)
36 for (fx = 0; fx < fc->nfiles; fx++) { 37 for (fx = 0; fx < fc->nfiles; fx++) {
@@ -79,7 +80,7 @@ index dae8ea5b1..3d87b31cf 100644
79 * @param fc file classifier 80 * @param fc file classifier
80 * @param fp output file handle (NULL for stderr) 81 * @param fp output file handle (NULL for stderr)
81diff --git a/tools/rpmdeps.c b/tools/rpmdeps.c 82diff --git a/tools/rpmdeps.c b/tools/rpmdeps.c
82index a414b6343..f260a38c4 100644 83index 419befce1..f260a38c4 100644
83--- a/tools/rpmdeps.c 84--- a/tools/rpmdeps.c
84+++ b/tools/rpmdeps.c 85+++ b/tools/rpmdeps.c
85@@ -23,6 +23,8 @@ static int print_conflicts; 86@@ -23,6 +23,8 @@ static int print_conflicts;
@@ -105,7 +106,7 @@ index a414b6343..f260a38c4 100644
105 goto exit; 106 goto exit;
106 107
107- if (_rpmfc_debug) 108- if (_rpmfc_debug)
108- rpmfcPrint(buf, fc, NULL); 109- rpmfcPrint(NULL, fc, NULL);
109- 110-
110- if (print_provides) 111- if (print_provides)
111- rpmdsPrint(NULL, rpmfcProvides(fc), stdout); 112- rpmdsPrint(NULL, rpmfcProvides(fc), stdout);
@@ -148,5 +149,5 @@ index a414b6343..f260a38c4 100644
148 ec = 0; 149 ec = 0;
149 150
150-- 151--
1512.12.0 1522.14.2
152 153
diff --git a/meta/recipes-devtools/rpm/rpm_git.bb b/meta/recipes-devtools/rpm/rpm_4.14.0.bb
index 57b9c2d6ac..e4e9c3e634 100644
--- a/meta/recipes-devtools/rpm/rpm_git.bb
+++ b/meta/recipes-devtools/rpm/rpm_4.14.0.bb
@@ -24,19 +24,16 @@ HOMEPAGE = "http://www.rpm.org"
24LICENSE = "GPL-2.0" 24LICENSE = "GPL-2.0"
25LIC_FILES_CHKSUM = "file://COPYING;md5=f5259151d26ff18e78023450a5ac8d96" 25LIC_FILES_CHKSUM = "file://COPYING;md5=f5259151d26ff18e78023450a5ac8d96"
26 26
27SRC_URI = "git://github.com/rpm-software-management/rpm \ 27SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.14.x \
28 file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \ 28 file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \
29 file://0001-Do-not-read-config-files-from-HOME.patch \ 29 file://0001-Do-not-read-config-files-from-HOME.patch \
30 file://0001-When-cross-installing-execute-package-scriptlets-wit.patch \ 30 file://0001-When-cross-installing-execute-package-scriptlets-wit.patch \
31 file://0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch \ 31 file://0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch \
32 file://0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch \ 32 file://0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch \
33 file://0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch \
34 file://0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch \ 33 file://0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch \
35 file://0001-Fix-build-with-musl-C-library.patch \ 34 file://0001-Fix-build-with-musl-C-library.patch \
36 file://0001-Add-a-color-setting-for-mips64_n32-binaries.patch \ 35 file://0001-Add-a-color-setting-for-mips64_n32-binaries.patch \
37 file://0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch \
38 file://0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch \ 36 file://0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch \
39 file://0012-Use-conditional-to-access-_docdir-in-macros.in.patch \
40 file://0013-Add-a-new-option-alldeps-to-rpmdeps.patch \ 37 file://0013-Add-a-new-option-alldeps-to-rpmdeps.patch \
41 file://0001-Split-binary-package-building-into-a-separate-functi.patch \ 38 file://0001-Split-binary-package-building-into-a-separate-functi.patch \
42 file://0002-Run-binary-package-creation-via-thread-pools.patch \ 39 file://0002-Run-binary-package-creation-via-thread-pools.patch \
@@ -45,9 +42,8 @@ SRC_URI = "git://github.com/rpm-software-management/rpm \
45 file://0001-perl-disable-auto-reqs.patch \ 42 file://0001-perl-disable-auto-reqs.patch \
46 " 43 "
47 44
48PV = "4.13.90+git${SRCPV}"
49PE = "1" 45PE = "1"
50SRCREV = "a8e51b3bb05c6acb1d9b2e3d34f859ddda1677be" 46SRCREV = "da3720f62e57648fb1dc2a632744d38866139971"
51 47
52S = "${WORKDIR}/git" 48S = "${WORKDIR}/git"
53 49