1 |
>>>>> On Sat, 06 Dec 2014, Zac Medico wrote: |
2 |
|
3 |
> The PMS people should be *very* interested in any changes to unpack |
4 |
> behavior like this. It supports behavior that will lead to failures for |
5 |
> older versions of portage and other package managers. |
6 |
|
7 |
Some remarks: |
8 |
|
9 |
- The upstream deb2targz program supports only data.tar.gz. Only the |
10 |
Gentoo version has been patched up to support other file types. |
11 |
|
12 |
- There is only a single package in the tree with a dependency on |
13 |
app-arch/deb2targz, and this only on AIX [1]. So on most users' |
14 |
systems deb2targz will not be installed, and "ar x" will be used for |
15 |
unpacking. |
16 |
|
17 |
- Paludis and Pkgcore unconditionally use "ar x" for unpacking. |
18 |
|
19 |
- PMS says [2]: |
20 |
|
21 |
deb packages (*.deb). Ebuilds must ensure that the deb2targz |
22 |
program is installed on those platforms where the GNU binutils |
23 |
ar program is not available and the installed ar program is |
24 |
incompatible with GNU archives. Otherwise, ebuilds must ensure |
25 |
that GNU binutils is installed. |
26 |
|
27 |
One could conclude that GNU binutils ar should be used on platforms |
28 |
where it is available. deb2targz should be used only where ar is |
29 |
incompatible with the GNU version. |
30 |
|
31 |
So in any case, this is a problem of Portage only. I'd suggest to |
32 |
change the logic in unpack() as follows: |
33 |
|
34 |
if <ar is GNU>; then |
35 |
ar x ... |
36 |
elif <deb2targz installed>; then |
37 |
deb2targz ... |
38 |
else |
39 |
ar x ... |
40 |
fi |
41 |
|
42 |
And then the deb2targz case could be patched as proposed. After all, |
43 |
it is only a fallback that should be compatible with "ar x" |
44 |
extraction. |
45 |
|
46 |
Ulrich |
47 |
|
48 |
[1] http://qa-reports.gentoo.org/output/genrdeps/dindex/app-arch/deb2targz |
49 |
[2] http://dev.gentoo.org/~ulm/pms/5/pms.html#x1-14100011.3.3.13 |