From fd551c5ad4c82f295470f278c524d55562a67a28 Mon Sep 17 00:00:00 2001 From: Alejandro del Castillo Date: Wed, 28 Feb 2018 14:36:45 -0600 Subject: opkg-utils: upgrade to version 0.3.6 0.3.5 -> 0.3.6 Patches: - Add support for tar versions that don't support --sort - Use local time when setting the modication time on the archives Signed-off-by: Alejandro del Castillo Signed-off-by: Ross Burton --- ...rt-name-on-versions-of-tar-which-support-.patch | 52 ++++++++++++++++++++++ ...Use-local-time-for-build_date-since-opkg-.patch | 45 +++++++++++++++++++ .../opkg-utils/opkg-utils/tar_ignore_error.patch | 13 +++--- 3 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch create mode 100644 meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch (limited to 'meta/recipes-devtools/opkg-utils/opkg-utils') diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch new file mode 100644 index 0000000000..7de4b7f723 --- /dev/null +++ b/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch @@ -0,0 +1,52 @@ +From ef5db062b7d25e6070acc6922ea48f50491313b5 Mon Sep 17 00:00:00 2001 +From: Michael Hansen +Date: Mon, 26 Feb 2018 09:42:56 -0800 +Subject: [PATCH 1/2] 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 +Signed-off-by: Alejandro del Castillo +--- + opkg-build | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/opkg-build b/opkg-build +index 265906f..094d69f 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 +-- +2.16.1 + diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch new file mode 100644 index 0000000000..b42d7878c9 --- /dev/null +++ b/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch @@ -0,0 +1,45 @@ +From 5727826b51cf99feaff3483a9df8af2043e7efc1 Mon Sep 17 00:00:00 2001 +From: Michael Hansen +Date: Mon, 26 Feb 2018 10:17:01 -0800 +Subject: [PATCH 2/2] 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 +Signed-off-by: Alejandro del Castillo +--- + opkg-build | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/opkg-build b/opkg-build +index 094d69f..0050c2b 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 +-- +2.16.1 + diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch index 75c6f3b8de..d8931b281f 100644 --- a/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch +++ b/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch @@ -18,26 +18,27 @@ Signed-off-by: Alejandro Hernandez Index: git/opkg-build + =================================================================== --- git.orig/opkg-build +++ git/opkg-build -@@ -250,8 +250,21 @@ tmp_dir=$dest_dir/IPKG_BUILD.$$ - mkdir $tmp_dir +@@ -285,8 +285,21 @@ mkdir $tmp_dir + 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 -X $tmp_dir/tarX -c --$compressor $tarformat -f $tmp_dir/data.tar.$cext . ) --( cd $pkg_dir/$CONTROL && tar $ogargs -cz $tarformat -f $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 ) + + +# Ignore error code 1, caused by modifying the number of hard links while creating the tar file +rc=0 -+( cd $pkg_dir && tar $ogargs -X $tmp_dir/tarX -c --$compressor $tarformat -f $tmp_dir/data.tar.$cext . ) || rc=$? ++( cd $pkg_dir && tar $ogargs $tsortargs --mtime="$build_date" -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) || rc=$? +if [ $rc -ne 1 ] && [ $rc -ne 0 ]; then + exit $rc +fi + +rc=0 -+( cd $pkg_dir/$CONTROL && tar $ogargs -cz $tarformat -f $tmp_dir/control.tar.gz . ) || rc=$? ++( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime="$build_date" -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) || rc=$? +if [ $rc -ne 1 ] && [ $rc -ne 0 ]; then + exit $rc +fi -- cgit 1.2.3-korg