From: Steffen Sledz Date: Wed, 24 Oct 2012 12:53:56 +0200 Subject: [PATCH] opkg.py/opkg-build: fix creation of tar archives Since openSUSE 12.2 the installed tar uses posix instead of gnu encoding by default. This format is not fully supported by opkg and results in ipk packages not installable at the target. Collected errors: * get_header_tar: Unknown typeflag: 0x78: Success. * get_header_tar: Unknown typeflag: 0x78: Success. * get_header_tar: Unknown typeflag: 0x78: Success. * extract_archive: Don't know how to handle /var/lib/opkg/tmp/opkg-mg997m/chicken-bin-fGRvr4/PaxHeaders.17512/.: No such file or directory. * get_header_tar: Unknown typeflag: 0x78: No such file or directory. * get_header_tar: Unknown typeflag: 0x78: No such file or directory. ... Signed-off-by: Steffen Sledz Signed-off-by: Richard Purdie --- opkg-build | 6 +++--- opkg.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opkg-build b/opkg-build index 485897a..f8c6151 100755 --- a/opkg-build +++ b/opkg-build @@ -233,8 +233,8 @@ tmp_dir=$dest_dir/IPKG_BUILD.$$ mkdir $tmp_dir echo $CONTROL > $tmp_dir/tarX -( cd $pkg_dir && tar $ogargs -X $tmp_dir/tarX -czf $tmp_dir/data.tar.gz . ) -( cd $pkg_dir/$CONTROL && tar $ogargs -czf $tmp_dir/control.tar.gz . ) +( cd $pkg_dir && tar $ogargs -X $tmp_dir/tarX -cz --format=gnu -f $tmp_dir/data.tar.gz . ) +( cd $pkg_dir/$CONTROL && tar $ogargs -cz --format=gnu -f $tmp_dir/control.tar.gz . ) rm $tmp_dir/tarX echo "2.0" > $tmp_dir/debian-binary @@ -249,7 +249,7 @@ rm -f $pkg_file if [ "$outer" = "ar" ] ; then ( cd $tmp_dir && ar -crf $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz ) else - ( cd $tmp_dir && tar -zcf $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz ) + ( cd $tmp_dir && tar -cz --format=gnu -f $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz ) fi rm $tmp_dir/debian-binary $tmp_dir/data.tar.gz $tmp_dir/control.tar.gz diff --git a/opkg.py b/opkg.py index 45a6119..c839100 100644 --- a/opkg.py +++ b/opkg.py @@ -387,7 +387,7 @@ class Package: file.write(str(self)) file.close() - cmd = "cd %s ; tar cvfz %s/control.tar.gz control" % (self.meta_dir, + cmd = "cd %s ; tar cvz --format=gnu -f %s/control.tar.gz control" % (self.meta_dir, self.scratch_dir) cmd_out, cmd_in, cmd_err = os.popen3(cmd) @@ -402,7 +402,7 @@ class Package: bits = "control.tar.gz" if self.file_list: - cmd = "cd %s ; tar cvfz %s/data.tar.gz" % (self.file_dir, + cmd = "cd %s ; tar cvz --format=gnu -f %s/data.tar.gz" % (self.file_dir, self.scratch_dir) cmd_out, cmd_in, cmd_err = os.popen3(cmd) @@ -417,7 +417,7 @@ class Package: bits = bits + " data.tar.gz" file = "%s_%s_%s.%s" % (self.package, self.version, self.architecture, self.get_package_extension()) - cmd = "cd %s ; tar cvfz %s/%s %s" % (self.scratch_dir, + cmd = "cd %s ; tar cvz --format=gnu -f %s/%s %s" % (self.scratch_dir, dirname, file, bits)