commodorecrunch / abslibre

Forked from abslibre a year ago
Clone

2c1ed48 pacman: hardcode the architecture in pacman.conf to avoid breaking systems

Authored and Committed by Denis 'GNUtoo' Carikli 2 years ago
    pacman: hardcode the architecture in pacman.conf to avoid breaking systems
    
    Without that fix, when creating a chroot with the following commands
    on Parabola x86_64, the resulting chroot is 64bit:
        # mkdir rootfs
        # pacstrap -C /usr/share/pacman/defaults/pacman.conf.i686 ./rootfs/
        # file rootfs/usr/bin/pacman
        rootfs/usr/bin/pacman: ELF 64-bit LSB pie executable, x86-64, [...]
    
    In addition, if we run Parabola i686 on an x86_64 computer with
    linux-libre-64, and that we try to install packages (after pacman -Sy),
    some packages will refuse to be installed because they have
    dependencies on 64bit libraries packages while we have 32bit ones
    instead:
        # pacman -S e2fsprogs
        resolving dependencies...
        looking for conflicting packages...
        error: failed to prepare transaction (could not satisfy dependencies)
        :: installing e2fsprogs (1.46.5-1) breaks dependency 'libss.so=2-32' required by krb5
        :: installing e2fsprogs (1.46.5-1) breaks dependency 'libcom_err.so=2-32' required by krb5
    but packages without such dependencies (like xterm or coreutils) can
    be installed without warnings and we end up with non-working
    packages:
       # pacman -S xterm
       [the installation proceeds]
       # file /usr/bin/xterm
       /usr/bin/xterm: ELF 64-bit LSB pie executable, x86-64, [...]
       # xterm
       bash: /usr/bin/xterm: No such file or directory
    
    So it's a good idea to hardcode the architecture by default.
    
    The Arch Linux 32 installer uses auto to auto-detect the CPU currently
    in use to select matching repositories.
    
    But in Parabola, for x86 32bit we only have one i686 repository and no
    pentium4 or i586.
    
    In addition, all the Parabola installers don't depend on auto (the
    multi architecture installer has two complete Parabola systems, one
    for i686 and one for x86_64, so it doesn't need auto).
    
    Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
    
        
file modified
+1 -1