diff options
author | Robert Schwebel <r.schwebel@pengutronix.de> | 2018-10-24 07:48:42 +0200 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2018-10-24 07:48:42 +0200 |
commit | c7cd636cfa5c205ab724ffea9df1bc7a14f544ec (patch) | |
tree | 06c76b18d722bcb5fb96bc1fe7da6168e0dba213 /patches | |
parent | dba8ac2338ae364d300caa99281fcc2bef7b4ea6 (diff) | |
download | DistroKit-c7cd636cfa5c205ab724ffea9df1bc7a14f544ec.tar.gz DistroKit-c7cd636cfa5c205ab724ffea9df1bc7a14f544ec.tar.xz |
opkg-utils: port patches from ptxdist-2018.10.0+
In 35f0ce952563221b5774efe4873d8c2a9c6f967c in ptxdist master, a patch was
added to propagate the Installed-Size properly. Fixes the following error when
building the rpi platform.
The patch stack can be removed again after ptxdist-2018.11.0.
-----------------------------------
target: host-genext2fs.install.post
-----------------------------------
finished target host-genext2fs.install.post
finished target world.targetinstall
Creating ipkg index '/home/rsc/git/DistroKit/platform-rpi/packages/Packages'...
Traceback (most recent call last):
File "/home/rsc/git/DistroKit/platform-rpi/sysroot-host/bin/opkg-make-index", line 128, in <module>
pkg = opkg.Package(abspath, relpath=pkg_dir, all_fields=opt_f)
File "/home/rsc/git/DistroKit/platform-rpi/sysroot-host/bin/opkg.py", line 183, in __init__
control = tarf.extractfile("./control")
File "/usr/lib/python2.7/tarfile.py", line 2145, in extractfile
tarinfo = self.getmember(member)
File "/usr/lib/python2.7/tarfile.py", line 1829, in getmember
raise KeyError("filename %r not found" % name)
KeyError: "filename './control' not found"
make: *** [/home/rsc/git/DistroKit/ptxdist/rules/post/image_ipkg.make:55: /home/rsc/git/DistroKit/platform-rpi/packages/Packages] Error 1
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Diffstat (limited to 'patches')
7 files changed, 224 insertions, 0 deletions
diff --git a/patches/opkg-utils-0.3.6/0001-opkg-build-improve-ipk-package-reproducibility.patch b/patches/opkg-utils-0.3.6/0001-opkg-build-improve-ipk-package-reproducibility.patch new file mode 100644 index 0000000..f06a7d4 --- /dev/null +++ b/patches/opkg-utils-0.3.6/0001-opkg-build-improve-ipk-package-reproducibility.patch @@ -0,0 +1,30 @@ +From: Gardon Lukasz <garjack555@gmail.com> +Date: Wed, 21 Feb 2018 13:09:39 +0100 +Subject: [PATCH] opkg-build: improve ipk package reproducibility + +Implement timestamp recommendation from reproducible-build.org [1] + +- Enable deterministic archieve by setting zero timestamp and + uids/guds with using 'D' in GNU ar tool + +[1] https://reproducible-builds.org/docs/archives/ + +Signed-off-by: Gardon Lukasz <garjack555@gmail.com> +Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com> +--- + opkg-build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/opkg-build b/opkg-build +index 318f308069a7..265906f66a8a 100755 +--- a/opkg-build ++++ b/opkg-build +@@ -294,7 +294,7 @@ fi + + rm -f $pkg_file + if [ "$outer" = "ar" ] ; then +- ( cd $tmp_dir && ar -crf $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) ++ ( cd $tmp_dir && ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) + else + ( cd $tmp_dir && tar -c --sort=name --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) + fi diff --git a/patches/opkg-utils-0.3.6/0002-Only-use-sort-name-on-versions-of-tar-which-support-.patch b/patches/opkg-utils-0.3.6/0002-Only-use-sort-name-on-versions-of-tar-which-support-.patch new file mode 100644 index 0000000..84a2c81 --- /dev/null +++ b/patches/opkg-utils-0.3.6/0002-Only-use-sort-name-on-versions-of-tar-which-support-.patch @@ -0,0 +1,48 @@ +From: Michael Hansen <michael.j.hansen@hp.com> +Date: Mon, 26 Feb 2018 09:42:56 -0800 +Subject: [PATCH] Only use --sort=name on versions of tar which support it. + This fixes compatibility with bsdtar and old versions of GNU tar (e.g. + RHEL6). + +Signed-off-by: Michael Hansen <michael.j.hansen@hp.com> +Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com> +--- + opkg-build | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/opkg-build b/opkg-build +index 265906f66a8a..094d69f8fad3 100755 +--- a/opkg-build ++++ b/opkg-build +@@ -232,6 +232,11 @@ if [ $compressor = "gzip" ] ; then + compressorargs=$zipargs + fi + ++tsortargs= ++if tar --help 2>&1 | grep -- "--sort=" > /dev/null; then ++ tsortargs="--sort=name" ++fi ++ + shift $(($OPTIND - 1)) + + # continue on to process additional arguments +@@ -280,8 +285,8 @@ mkdir $tmp_dir + build_date="$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)" + + echo $CONTROL > $tmp_dir/tarX +-( cd $pkg_dir && tar $ogargs --sort=name --mtime=$build_date -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) +-( cd $pkg_dir/$CONTROL && tar $ogargs --sort=name --mtime=$build_date -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) ++( cd $pkg_dir && tar $ogargs $tsortargs --mtime=$build_date -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) ++( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime=$build_date -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) + rm $tmp_dir/tarX + + echo "2.0" > $tmp_dir/debian-binary +@@ -296,7 +301,7 @@ rm -f $pkg_file + if [ "$outer" = "ar" ] ; then + ( cd $tmp_dir && ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) + else +- ( cd $tmp_dir && tar -c --sort=name --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) ++ ( cd $tmp_dir && tar -c $tsortargs --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) + fi + + rm $tmp_dir/debian-binary $tmp_dir/data.tar.$cext $tmp_dir/control.tar.gz diff --git a/patches/opkg-utils-0.3.6/0003-opkg-build-Use-local-time-for-build_date-since-opkg-.patch b/patches/opkg-utils-0.3.6/0003-opkg-build-Use-local-time-for-build_date-since-opkg-.patch new file mode 100644 index 0000000..000371c --- /dev/null +++ b/patches/opkg-utils-0.3.6/0003-opkg-build-Use-local-time-for-build_date-since-opkg-.patch @@ -0,0 +1,42 @@ +From: Michael Hansen <michael.j.hansen@hp.com> +Date: Mon, 26 Feb 2018 10:17:01 -0800 +Subject: [PATCH] opkg-build: Use local time for build_date, since opkg + extracts files assuming local time rather than UTC. + +Also increase resolution of build date down to the second, rather than +clamping to midnight of the current date. + +Signed-off-by: Michael Hansen <michael.j.hansen@hp.com> +Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com> +--- + opkg-build | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/opkg-build b/opkg-build +index 094d69f8fad3..0050c2bb11ed 100755 +--- a/opkg-build ++++ b/opkg-build +@@ -282,11 +282,11 @@ fi + tmp_dir=$dest_dir/IPKG_BUILD.$$ + mkdir $tmp_dir + +-build_date="$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)" ++build_date="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%Y-%m-%d %H:%M:%S")" + + echo $CONTROL > $tmp_dir/tarX +-( cd $pkg_dir && tar $ogargs $tsortargs --mtime=$build_date -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) +-( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime=$build_date -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) ++( cd $pkg_dir && tar $ogargs $tsortargs --mtime="$build_date" -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) ++( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime="$build_date" -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) + rm $tmp_dir/tarX + + echo "2.0" > $tmp_dir/debian-binary +@@ -301,7 +301,7 @@ rm -f $pkg_file + if [ "$outer" = "ar" ] ; then + ( cd $tmp_dir && ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) + else +- ( cd $tmp_dir && tar -c $tsortargs --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) ++ ( cd $tmp_dir && tar -c $tsortargs --mtime="$build_date" $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) + fi + + rm $tmp_dir/debian-binary $tmp_dir/data.tar.$cext $tmp_dir/control.tar.gz diff --git a/patches/opkg-utils-0.3.6/0100-opkg-build-use-CROSS_COMPILE-ar.patch b/patches/opkg-utils-0.3.6/0100-opkg-build-use-CROSS_COMPILE-ar.patch new file mode 100644 index 0000000..9efe075 --- /dev/null +++ b/patches/opkg-utils-0.3.6/0100-opkg-build-use-CROSS_COMPILE-ar.patch @@ -0,0 +1,28 @@ +From: =?UTF-8?q?Andreas=20Bie=C3=9Fmann?= <andreas@biessmann.de> +Date: Fri, 20 Jan 2012 09:03:55 +0100 +Subject: [PATCH] opkg-build: use ${CROSS_COMPILE}ar +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some host systems do not provide proper ar, make it possible to switch +to cross-ar here. + +Signed-off-by: Andreas Bießmann <andreas@biessmann.de> +--- + opkg-build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/opkg-build b/opkg-build +index 0050c2bb11ed..4fddf4c9afda 100755 +--- a/opkg-build ++++ b/opkg-build +@@ -299,7 +299,7 @@ fi + + rm -f $pkg_file + if [ "$outer" = "ar" ] ; then +- ( cd $tmp_dir && ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) ++ ( cd $tmp_dir && ${CROSS_COMPILE}ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) + else + ( cd $tmp_dir && tar -c $tsortargs --mtime="$build_date" $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) + fi diff --git a/patches/opkg-utils-0.3.6/0101-Update-Installed-Size-properly.patch b/patches/opkg-utils-0.3.6/0101-Update-Installed-Size-properly.patch new file mode 100644 index 0000000..f5ecd39 --- /dev/null +++ b/patches/opkg-utils-0.3.6/0101-Update-Installed-Size-properly.patch @@ -0,0 +1,34 @@ +From: Michael Olbrich <m.olbrich@pengutronix.de> +Date: Tue, 9 Oct 2018 11:19:37 +0200 +Subject: [PATCH] Update Installed-Size properly + +Convert '-' to '_' to match the variable name 'installed_size' and use the +correct property name 'Installed-Size'. + +Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> +--- + opkg.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/opkg.py b/opkg.py +index 153b62c7e7fa..f5cb9b86a773 100644 +--- a/opkg.py ++++ b/opkg.py +@@ -230,7 +230,7 @@ class Package(object): + lineparts = re.match(r'([\w-]*?):\s*(.*)', line) + if lineparts: + name = lineparts.group(1) +- name_lowercase = name.lower() ++ name_lowercase = name.lower().replace('-',"_") + value = lineparts.group(2) + while 1: + line = control.readline().rstrip() +@@ -482,7 +482,7 @@ class Package(object): + if self.maintainer: out = out + "Maintainer: %s\n" % (self.maintainer) + if self.md5: out = out + "MD5Sum: %s\n" % (self.md5) + if self.size: out = out + "Size: %d\n" % int(self.size) +- if self.installed_size: out = out + "InstalledSize: %d\n" % int(self.installed_size) ++ if self.installed_size: out = out + "Installed-Size: %d\n" % int(self.installed_size) + if self.filename: out = out + "Filename: %s\n" % (self.filename) + if self.source: out = out + "Source: %s\n" % (self.source) + if self.description: out = out + "Description: %s\n" % (self.description) diff --git a/patches/opkg-utils-0.3.6/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch b/patches/opkg-utils-0.3.6/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch new file mode 100644 index 0000000..09f9a48 --- /dev/null +++ b/patches/opkg-utils-0.3.6/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch @@ -0,0 +1,31 @@ +From: Michael Olbrich <m.olbrich@pengutronix.de> +Date: Fri, 10 Nov 2017 19:52:05 +0100 +Subject: [PATCH] opkg-build: in ptxdist the maxium UID for system users is 999 + +Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> +--- + opkg-build | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/opkg-build b/opkg-build +index 4fddf4c9afda..9401f34924ee 100755 +--- a/opkg-build ++++ b/opkg-build +@@ -68,14 +68,14 @@ You probably want to remove them: " >&2 + fi + fi + +- large_uid_files=`find . -uid +99 -ls -printf '\\\n' || true` ++ large_uid_files=`find . -uid +999 -ls -printf '\\\n' || true` + + if [ "$ogargs" = "" ] && [ -n "$large_uid_files" ]; then +- echo "*** Warning: The following files have a UID greater than 99. ++ echo "*** Warning: The following files have a UID greater than 999. + You probably want to chown these to a system user: " >&2 + echo -e $large_uid_files + if [ $? -ne 0 ]; then +- echo "*** Error: Fail to list files have a UID greater than 99." ++ echo "*** Error: Fail to list files have a UID greater than 999." + exit 1 + fi + echo >&2 diff --git a/patches/opkg-utils-0.3.6/series b/patches/opkg-utils-0.3.6/series new file mode 100644 index 0000000..d5eb353 --- /dev/null +++ b/patches/opkg-utils-0.3.6/series @@ -0,0 +1,11 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +#tag:upstream --start-number 1 +0001-opkg-build-improve-ipk-package-reproducibility.patch +0002-Only-use-sort-name-on-versions-of-tar-which-support-.patch +0003-opkg-build-Use-local-time-for-build_date-since-opkg-.patch +#tag:ptx --start-number 100 +0100-opkg-build-use-CROSS_COMPILE-ar.patch +0101-Update-Installed-Size-properly.patch +0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch +# e0f4c3592faf999298db116925fe26a3 - git-ptx-patches magic |