[arch-dev-public] noarch packages vs FTP & DB

Thomas Bächler thomas at archlinux.org
Sun Dec 2 06:35:51 EST 2007


Roman Kyrylych schrieb:
> Solution #2:
> 
> 1) Pacman 3.1 already has only one /etc/pacman.d/mirrorlist file for
> all repos with contents like:
>   Server = ftp://ftp.archlinux.org/$repo/os/i686
> and in pacman.conf there is:
>   [core]
>   Include=/etc/pacman.d/mirrorlist
> Pacman replaces '$repo' with 'core' automatically during a sync operation.
> 
> 2) Add a similar support for $arch:
>   Server = ftp://ftp.archlinux.org/$repo/os/$arch
> On i686 machine pacman should replace '$arch' with 'i686' and then with 'any'.
> This way we will have 3 different .db.tar.gz for ftp dir, including
> $repo/os/any/$repo.db.tar.gz
> And we there will be no symlinks in $repo/os/{i686,x86_64} dir.
> 
> 3) For cross-distro usage it's better not to hardcode $arch=($CARCH
> 'any') but make it cofigurable (at least at build time).
> 
> 4) Modify pacman's output so it produces a single progress meter for a
> repo, not 2 for each 'i686' and 'any' db file.
> 
> 5) extract 'i686' and 'any' dbs to a single /var/lib/pacman/sync/$repo
> but then it should guess from which ftp dir to download package
> (taking -prefix into account again? or store arch info in db?)

I have another (similar) approach:

Change
Server = ftp://ftp.archlinux.org/$repo/os/i686
to
Server = ftp://ftp.archlinux.org/$repo/os/

Place a $repo.db.tar.gz file in the os/ directory and for each package
add additional information:
- Available architectures for the package in the desc file
- FILENAME, NAME, VERSION, CSIZE, MD5SUM field for each architecture in
the desc file
- Maybe add DEPENDS-$ARCH field in the depends file

pacman knows by configuration (with a sane default), that it can use the
i686 and any architectures. If it find the package for i686, it tries to
download ftp://ftp.archlinux.org/$repo/os/i686/${filename-i686}. If not,
it tries to find ftp://ftp.archlinux.org/$repo/os/any/${filename-any}.
If neither architecture is found in the db, it knows the package doesn't
exist for this architecture.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <http://archlinux.org/pipermail/arch-dev-public/attachments/20071202/c0c36471/attachment.pgp>


More information about the arch-dev-public mailing list