[aur-general] [arch-dev-public] Status of arch=any ?

Firmicus Firmicus at gmx.net
Wed May 13 14:44:17 EDT 2009

Abhishek Dasgupta a écrit :
> 2009/5/13 Abhishek Dasgupta <abhidg at gmail.com>:
>> I've attached a diff for convert-to-any which does away with all the
>> committing stuff and just makes an i686/x86_64 package into an
>> architecture independent package putting the file in the same directory.
>> I tested the code here and it's working.
> updated patch using die() and some other corrections like
> using quotes when accessing variables, etc.
> Currently, I'm copying the i686/x86_64 package to $WORKDIR/build
> and extracting it there. This causes some additional disk i/o which can
> be done away with if I directly extract from the package. However
> this does ensure that the original package is unharmed.

IMHO extracting the package is not really necessary. It is simpler and
faster to
1. decompress the package (with gunzip, or eventually some other
(de)compression tool, depending of )
2. extract the .PKGINFO from the tar and then delete it with "tar --delete"
3. modify the extracted .PKGINFO with sed to change the arch field
4. re-add .PKGINFO to the tar with "tar --append"
and finally
5. gzip the tar

This has the additional advantage of making sure the  properties of the
files (ownership and mode) are not mangled. I have tested this procedure
with a large number of arch-independent packages that I converted from
i686 to x86_64, and I have never encountered a problem. In any case, I
leave it to our benevolent dictator Aaron to decide which solution is to
be preferred ;)


PS: change the description header as follows:

diff --git a/convert-to-any b/convert-to-any
index 1c48eb3..72dad04 100644
--- a/convert-to-any
+++ b/convert-to-any
@@ -1,8 +1,8 @@
-# Converts an existing package into an
-# architecture-independent package and updates
-# the repositories accordingly.
+# Converts an existing architecture-independent package
+# for i686 or x86_64 into a package with "arch = any"
 # -- Abhishek Dasgupta <abhidg at gmail.com>
 [ "$UID" = "" ] && UID=$(uid)

More information about the aur-general mailing list