summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Schwebel <r.schwebel@pengutronix.de>2018-10-24 07:48:42 +0200
committerRobert Schwebel <r.schwebel@pengutronix.de>2018-10-24 07:48:42 +0200
commitc7cd636cfa5c205ab724ffea9df1bc7a14f544ec (patch)
tree06c76b18d722bcb5fb96bc1fe7da6168e0dba213
parentdba8ac2338ae364d300caa99281fcc2bef7b4ea6 (diff)
downloadDistroKit-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>
-rw-r--r--patches/opkg-utils-0.3.6/0001-opkg-build-improve-ipk-package-reproducibility.patch30
-rw-r--r--patches/opkg-utils-0.3.6/0002-Only-use-sort-name-on-versions-of-tar-which-support-.patch48
-rw-r--r--patches/opkg-utils-0.3.6/0003-opkg-build-Use-local-time-for-build_date-since-opkg-.patch42
-rw-r--r--patches/opkg-utils-0.3.6/0100-opkg-build-use-CROSS_COMPILE-ar.patch28
-rw-r--r--patches/opkg-utils-0.3.6/0101-Update-Installed-Size-properly.patch34
-rw-r--r--patches/opkg-utils-0.3.6/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch31
-rw-r--r--patches/opkg-utils-0.3.6/series11
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