Simple-cdd et zstd

Si j’avais eu cette doc il y a quelques années quand j’ai créé ma première image Debian avec simple-cdd, j’aurais gagné un temps fou ! MERCI

2 J'aime

Bonjour,

Je suis entrain de migrer une image Debian 11 générée avec docker/simple-cdd vers Debian 12. J’arrive à obtenir une ISO (après avoir fait les modifications nécessaires concernant les firmwares - NON_FREE). Lorsque j’essaye d’installer cette ISO, j’ai un soucis de package zstd manquant.
image

J’ai ajouté zstd à mon image docker (basée sur debian:unstable - j’ai aussi essayé avec debian:bookworm et debian:bookworm-slim), ainsi qu’à mes fichier PROFILE.packages et PROFILE.downloads (pour être sûr…).

Avez-vous eu ce problème ? Si oui, comment l’avez-vous réglé ?

Merci d’avance !

Bonjour,

Fait un fil de discussion séparé pour le support plutot qu’ici :slight_smile: dans la section Support Debian.

@Clochette peux-tu nous mettre ce post dans un nouveau fil s’il te plait? (et supprimer mon post du coup :wink: )

1 J'aime

done :+1:t2:

1 J'aime

Dans ton message d’erreur il s’agit d’une erreur de paquet.
Pourtant c’est bien le nom du paquet: zstd. Qu’as-tu mis exactement dans ton fichier .package?
En passant, Simple-CDD n’a rien à voir ni de près ni de loin avec docker.

simple-cdd n’a effectivement rien à voir avec Docker mais vu que je le lance dans un Docker (depuis toujours d’ailleurs, j’ai fait des 10aines d’images bullseye comme ça depuis Gitlab-CI/Docker), je me suis dit que ça pourrait peut-être aidé d’avoir le contexte « docker ».

Voici le contenu du fichier *.packages

firmware-linux
firmware-misc-nonfree
firmware-linux-nonfree
firmware-amd-graphics
libgl1-mesa-dri
libglx-mesa0
mesa-vulkan-drivers
xserver-xorg-video-all
openssh-server
sudo
vim
nano
docker.io
docker-compose
net-tools
apparmor
cu
unzip
zip
bash-completion
ntp
sntp
ntpdate
zstd (ajouté suite à l’erreur mais non présent à la base !)

et le default.conf

mirror_components=« main non-free non-free-firmware contrib »
DISKTYPE=« DVD »

et la ligne de commande

build-simple-cdd --verbose --debug --dist bookworm --profiles NOM_PROFILE --locale en_US --logfile out.log --force-root

Merci :pray:

1 J'aime

A priori je suis pas le seul à avoir ce problème…
https://groups.google.com/g/linux.debian.bugs.dist/c/MMtfo4lnPkA
C’est dommage que ce soit pas mieux maintenu ce truc là, c’était tellement pratique :disappointed_relieved:

Ton lien c’est autre chose.
En fait il y a un problème avec le changement de kernel à partir du 6.1.0-15.
Alors que les noyaux actuel sont à 6.1.0-18, les iso d’installation n’ont pas été mises à jour.
Hors simple-cdd se base sur l’iso netinst. Du coup, l’installateur est en 6.1.0-15 mais certains udeb sont pris en compte par simple-cdd sont en 6.1.0-16 ou plus ce qui génère une erreur.
Perso j’ai modifié la création de mon iso en excluant ce qui ne correspondait pas à la version du kernel de l’installateur.
Pour cela j’ai éjouté à mon répertoire profiles le fichier default.excludes qui contient:

cdrom-core-modules-6.1.0-16-amd64-di
ext4-modules-6.1.0-16-amd64-di
fat-modules-6.1.0-16-amd64-di
firewire-core-modules-6.1.0-16-amd64-di
isofs-modules-6.1.0-16-amd64-di
jfs-modules-6.1.0-16-amd64-di
kernel-image-6.1.0-16-amd64-di
loop-modules-6.1.0-16-amd64-di
nic-modules-6.1.0-16-amd64-di
nic-pcmcia-modules-6.1.0-16-amd64-di
nic-shared-modules-6.1.0-16-amd64-di
nic-usb-modules-6.1.0-16-amd64-di
nic-wireless-modules-6.1.0-16-amd64-di
pata-modules-6.1.0-16-amd64-di
pcmcia-modules-6.1.0-16-amd64-di
pcmcia-storage-modules-6.1.0-16-amd64-di
sata-modules-6.1.0-16-amd64-di
scsi-core-modules-6.1.0-16-amd64-di
scsi-modules-6.1.0-16-amd64-di
usb-storage-modules-6.1.0-16-amd64-di
xfs-modules-6.1.0-16-amd64-di

Par ailleurs, utiliser simple-cdd avec SID n’est pas un gage de réussite. La plupart des essais que j’ai pu faire ont souvent eu pour résultat un échec.

Malheureusement ça n’a rien changé.

Je n’utilise pas simple-cdd, mais zstd a attiré mon attention.
Les problèmes connus avec zstd arrivent en cas de tentative d’installation d’un paquet ubuntu (à titre exceptionnel, of course), dans un système Debian.
Debian utilise xz pour la compression de ses paquets, et ubuntu zstd.
dpkg comprend zstd selon la version [dpkg (>= 1.21.18) / Janv 2023]

dpkg (1.21.18) unstable;
– libdpkg: Add zstd support for .deb archives.
– Tue, 10 Jan 2023

dpkg (1.22.0ubuntu1)
– build: Switch default dpkg-deb compression from xz to zstd.

Si le problème n’est pas au niveau des paquets (trop simple), il y a effectivement un rapport de bug:
#1051721 - simple-cdd: Missing package zstd for default image build on bookworm

simple-cdd:
Depends: rsync debian-cd reprepro wget lsb-release dctrl-tools python3 python3-simple-cdd

Même en fouillant dans les dépendances de simple-cdd, rien de trivial. Etrange.
Dans l’hypothèse où simple-cdd intègre une image squashfs dans l’iso, l’initramfs utilise zstd pour ouvrir le fichier squash.

grep zstd /usr/sbin/mkinitramfs

zstd)   compress="zstd -q ${compresslevel}"
     if ! command -v zstd >/dev/null 2>&1; then
     zstd -q -d --rm "${ko}"

Selon la configuration/version du noyau, zstd est intégré ou non.

grep -i zstd /boot/config-$(uname -r)

Plutôt usine à gaz ce simple-cdd, mais vu les transitions xz/zstd en cours, pas surprenant qu’une dépendance « python3-simple-cdd » par exemple ne soit pas alignée.
Si ajouter zstd contourne le problème, ça ne le clarifie pas pour le moment.

Dans mes images, je n’ai aucun problème. Il est mis dans mon fichier download uniquement.
Cependant, il y a peut être un problème dans les fichiers de configuration du profile correspondant.

Si simple-cdd n’utilise pas de squashfs pour faire l’iso (à confirmer clairement), je ne vois vraiment pas ce qui peut réclamer du zstd dans une debian bookworm.

S’il y est par défaut, ou par une dépendance il peut y être. Dans les miennes il y est par dépendances.