summaryrefslogtreecommitdiffstats
path: root/patches/opkg-utils-r4747/0031-opkg.py-opkg-build-fix-creation-of-tar-archives.patch
blob: 795408042b92e5a85e20d18a841f1ac5ddd553ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
From: Steffen Sledz <sledz@dresearch-fe.de>
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 <sledz@dresearch-fe.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 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)