2008/1/23, Mark Constable <markc@xxxxxxxxx>: > 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 (Роман Кирилич)