diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-11-23 08:18:39 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-11-25 21:34:50 +0000 |
commit | 1c0a93e1be46e486eb0950e5cb90d16e466a0b39 (patch) | |
tree | bd7c267aaaba45f7e4ea70abb3fb3ce66c2cffba /meta/recipes-devtools/opkg-utils | |
parent | 26f62a423db22cb256c083dd77ca16e4686cf477 (diff) | |
download | poky-1c0a93e1be46e486eb0950e5cb90d16e466a0b39.tar.gz |
opkg-utils: Fix silent empty/broken opkg package creation
opkg-build was failing on hosts where tar < 1.28 and reproducibile builds
were enabled but it was doing this silently and generating corrupted
(empty) ipk files. Add a fix for this (submitted upstream).
The fix requires bash but if you're building ipk files this shoudn't be
a problem.
(From OE-Core rev: 5d774331226f967a2d00c9594c4811ee378cd572)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/opkg-utils')
-rw-r--r-- | meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch | 31 | ||||
-rw-r--r-- | meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb | 3 |
2 files changed, 34 insertions, 0 deletions
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch new file mode 100644 index 0000000000..55ddcc1fd2 --- /dev/null +++ b/meta/recipes-devtools/opkg-utils/opkg-utils/pipefail.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | We need opkg-build to fail if for example the tar command is passed invalid | ||
2 | options. Without this, we see silently created empty packaged where data.tar | ||
3 | is zero bytes in size. This creates hard to debug problems. | ||
4 | |||
5 | An example is when reproducible builds are enabled and run on old hosts like | ||
6 | centos7 which has tar < 1.28: | ||
7 | |||
8 | Subprocess output:tar: unrecognized option '--clamp-mtime' | ||
9 | Try `tar --help' or `tar --usage' for more information. | ||
10 | |||
11 | Upstream-Status: Pending | ||
12 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
13 | |||
14 | Index: opkg-utils-0.4.1/opkg-build | ||
15 | =================================================================== | ||
16 | --- opkg-utils-0.4.1.orig/opkg-build | ||
17 | +++ opkg-utils-0.4.1/opkg-build | ||
18 | @@ -1,4 +1,4 @@ | ||
19 | -#!/bin/sh | ||
20 | +#!/bin/bash | ||
21 | |||
22 | : <<=cut | ||
23 | =head1 NAME | ||
24 | @@ -12,6 +12,7 @@ opkg-build - construct an .opk from a di | ||
25 | # Updated to work on Familiar Pre0.7rc1, with busybox tar. | ||
26 | # Note it Requires: binutils-ar (since the busybox ar can't create) | ||
27 | set -e | ||
28 | +set -o pipefail | ||
29 | |||
30 | version=1.0 | ||
31 | |||
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb index cf1e4670c6..eb6c7a3a6a 100644 --- a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb +++ b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb | |||
@@ -10,6 +10,7 @@ PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtu | |||
10 | SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ | 10 | SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ |
11 | file://0001-Switch-all-scripts-to-use-Python-3.x.patch \ | 11 | file://0001-Switch-all-scripts-to-use-Python-3.x.patch \ |
12 | file://0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch \ | 12 | file://0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch \ |
13 | file://pipefail.patch \ | ||
13 | " | 14 | " |
14 | UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" | 15 | UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" |
15 | 16 | ||
@@ -19,6 +20,8 @@ SRC_URI[sha256sum] = "9ea9efdd9fe13661ad251e3a2860c1c93045adcfaa6659c3e86d9748ec | |||
19 | 20 | ||
20 | TARGET_CC_ARCH += "${LDFLAGS}" | 21 | TARGET_CC_ARCH += "${LDFLAGS}" |
21 | 22 | ||
23 | RDEPENDS_${PN} += "bash" | ||
24 | |||
22 | # For native builds we use the host Python | 25 | # For native builds we use the host Python |
23 | PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold" | 26 | PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold" |
24 | PYTHONRDEPS_class-native = "" | 27 | PYTHONRDEPS_class-native = "" |