[FIX] give the build host Arch's group ids
install: invalid group: '11' The filesystem package creates directories with `install -g 11`, and GNU coreutils rejects a gid that resolves to nothing. gid 11 is `ftp` on Arch; Ubuntu leaves it free. This is the circular corner of any bootstrap: the package that DEFINES /etc/group needs groups that do not exist yet. The way out is to give the build host the target's id map, not to work around the check -- rewriting the install call to force a numeric gid would produce directories owned by a group the target does not have. Only the ids Arch uses and Ubuntu lacks are created, and only when missing, so a host that is already correct is left alone. Checked one by one: of 1, 2, 10, 11, 12 and 50, only 11 was absent. --- FR --- install: invalid group: '11' Le paquet filesystem cree des repertoires avec « install -g 11 », et GNU coreutils refuse un gid qui ne resout vers rien. Le gid 11 est « ftp » sur Arch ; Ubuntu le laisse libre. C est le coin circulaire de tout amorcage : le paquet qui DEFINIT /etc/group reclame des groupes qui n existent pas encore. La sortie est de donner a l hote de compilation la table d identifiants de la cible, non de contourner la verification -- forcer l interpretation numerique produirait des repertoires appartenant a un groupe que la cible n a pas. Seuls les identifiants qu Arch utilise et qu Ubuntu n a pas sont crees, et seulement s ils manquent : un hote deja correct n est pas touche. Verifie un a un : sur 1, 2, 10, 11, 12 et 50, seul le 11 etait absent. Assisted-by: Claude Opus 5
This commit is contained in:
parent
dc0f38987e
commit
8fe9fc3d9d
1 changed files with 18 additions and 0 deletions
|
|
@ -74,6 +74,24 @@ configure_makepkg() {
|
|||
# pacman refuses to initialise alpm without its database directory. The
|
||||
# error is only a warning during packaging, but it hides real ones.
|
||||
sudo mkdir -p /var/lib/pacman
|
||||
# Arch's numeric group ids must EXIST on the build host.
|
||||
#
|
||||
# The filesystem package creates directories with `install -g 11`, and
|
||||
# GNU coreutils rejects a gid that resolves to nothing:
|
||||
#
|
||||
# install: invalid group: '11'
|
||||
#
|
||||
# gid 11 is `ftp` on Arch; Ubuntu leaves it free. This is the circular
|
||||
# corner of any bootstrap -- the package that DEFINES /etc/group needs
|
||||
# groups that do not exist yet -- and the way out is to give the build
|
||||
# host the target's id map rather than to work around the check.
|
||||
#
|
||||
# Only the ids Arch uses and Ubuntu lacks are created, and only when
|
||||
# missing, so an already-correct host is left alone.
|
||||
if ! getent group 11 > /dev/null 2>&1; then
|
||||
sudo groupadd -g 11 ftp
|
||||
echo "created group ftp (gid 11), required by the filesystem package"
|
||||
fi
|
||||
# CHOST must be the CANONICAL triplet, not the Debian-style one.
|
||||
#
|
||||
# gcc -dumpmachine reports s390x-linux-gnu here, but config.sub
|
||||
|
|
|
|||
Loading…
Reference in a new issue