[arch-general] Does pacman support "noarch" now?

Roman Kyrylych roman.kyrylych at gmail.com
Wed Jan 23 11:24:17 EST 2008


2008/1/23, Mark Constable <markc at renta.net>:
> On 23 Jan 2008 23:23, Roman Kyrylych wrote:
> > Things that work now:
> > * makepkg support to understand arch=('any') and build a package correctly
> > * repo-add/repo-remove work too, so you can create a db with them and
> > test how pacman installs those packages.
> > * pacman should pring 'Architecture: any' on -Si/-Qi
> > Note that repo-add/repo-remove and pacman didn't require a single
> > change to support '-any' packages, that's because they don't care
> > about packages' architecture.
>
> Right, so they are arch agnostic, cool.
>
> > Packages produced from PKGBUILD with arch=('any') are _excactly_ same
> > when built on either i686 or x86_64 or even unofficial 'i586' and
> > 'ppc' (when built with makepkg >= 3.0).
> > (They can differ only by build timestamp)
> >
> > Right now, '-any' packages cannot be used in AUR and official repos yet.
> > You may use them for your own local repo for arch-independent packages
> > if you have both i686 and x86_64 installed.
>
> Why the requirement for both "i686 and x86_64 installed" ?

It's not a requirement, of course.
IMO that just don't make much difference to change arch=() in every
arch-indepent package you build from AUR if you use only one arch.

>
> > Be sure to add '-any' to both i686 and x86_64 localrepo.db.tar.gz
> > files when updating your repo db.
>
> I know this is not the right way to do it but it's a first
> attempt to get a feel for how to do it properly... I have
> built an -any package and uploaded it into it's own area
> with it's own [repo] stanza and successfully added that
> same package to both an i686 and x86_64 system. I could not
> do this pre v3 pacman with i868 or x86_64 in the filename.
>
> What I am unsure of is, in this example, how to add the
> -any package to both 32bit and 64bit *.db.tar.gz files so
> that the -any package, in a different area, can still be
> downloaded... ie; will relative paths work ?

Symlinks (or maybe hardlinks)
Example:
/mylocalrepo/any/foobar-1.0-1-any.pkg.tar.gz <- the real file
/mylocalrepo/i686/foobar-1.0-1-any.pkg.tar.gz ->
../any/foobar-1.0-1-any.pkg.tar.gz
/mylocalrepo/x86_64/foobar-1.0-1-any.pkg.tar.gz ->
../any/foobar-1.0-1-any.pkg.tar.gz
Then you just do 'repo-add mylocalrepo.db.tar.gz *' in i686 and x86_64 trees.

>
> I've added this to my /etc/pacman.conf, uncommenting the
> appropriate arch on either machine...
>
>  [proaudio-any]
>  Server = http://pkg.markconstable.com/proaudio/any
>
>  #[proaudio-i32]
>  #Server = http://pkg.markconstable.com/proaudio/i32
>
>  #[proaudio-i64]
>  #Server = http://pkg.markconstable.com/proaudio/i64

This looks a bit ugly on users side and doubles the number of repositories.
Besides, Pacman keeps track of groups only in one repo, so when you do
pacman -Sg gnome-extra
you'll get one list of packages in extra and then another list of
packages in extra-any (e.g. gnome-audio)
Moreover, if you have testing repo at the end and want to test some
new package - you do -S testing/pkgname but now with *-any repos
you'll have to remember if that package arch-dependent or not.
To summarize - while it seems easier on server side - it just brings
more problems and no benefit on users side.

-- 
Roman Kyrylych (Роман Кирилич)


More information about the arch-general mailing list