diff --git a/Dockerfile b/Dockerfile index c31ef7d..13de2b4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN (echo "deb-src http://archive.debian.org/debian etch main" >> /etc/apt/sourc squashfs-source-etchnhalf \ linux-source-2.6.24 && \ apt-get build-dep -y linux-image-2.6.24-etchnhalf.1-686 && \ - apt-get clean + apt-get clean && \ rm -rf /var/lib/apt/lists/* WORKDIR /usr/src diff --git a/Jenkinsfile b/Jenkinsfile index e42c713..9bcd1b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -40,10 +40,13 @@ pipeline { --mirror-chroot-security http://archive.debian.org/debian-security/ \ --union-filesystem unionfs \ --linux-packages "squashfs-modules-2.6.24 linux-image-2.6.24" \ + −−username gaming \ -k retrodebian1 chmod +x /root/update-initramfs.sh + chmod +x /root/autologin-fluxbox.sh cp /root/update-initramfs.sh config/chroot_local-hooks + cp /root/autologin-fluxbox.sh config/chroot_local-hooks cp /root/linux-image-*.deb config/chroot_local-packages/ cp /root/squashfs-modules-*.deb config/chroot_local-packages/ cp /root/desktop.list config/chroot_local-packageslists/ diff --git a/autologin-fluxbox.sh b/autologin-fluxbox.sh new file mode 100644 index 0000000..2a16b30 --- /dev/null +++ b/autologin-fluxbox.sh @@ -0,0 +1,56 @@ +#!/bin/sh +set -e + +USER_NAME="gamer" +USER_HOME="/home/${USER_NAME}" + +# 1) Créer l'utilisateur s'il n'existe pas +if ! id "${USER_NAME}" >/dev/null 2>&1; then + adduser --disabled-password --gecos "" "${USER_NAME}" +fi + +# Groupes utiles pour une distro gaming rétro +for grp in audio video cdrom games plugdev; do + if getent group "$grp" >/dev/null 2>&1; then + adduser "${USER_NAME}" "$grp" >/dev/null 2>&1 || true + fi +done + +# 2) ~/.xinitrc : démarrer Fluxbox proprement +cat > "${USER_HOME}/.xinitrc" <<'EOF' +#!/bin/sh +exec startfluxbox +EOF + +# 3) ~/.profile : lancer X automatiquement seulement sur tty1 +cat > "${USER_HOME}/.profile" <<'EOF' +#!/bin/sh +if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then + exec startx +fi +EOF + +# 4) Si le shell est bash, .bash_profile doit charger .profile +cat > "${USER_HOME}/.bash_profile" <<'EOF' +if [ -f "$HOME/.profile" ]; then + . "$HOME/.profile" +fi +EOF + +chown "${USER_NAME}:${USER_NAME}" \ + "${USER_HOME}/.xinitrc" \ + "${USER_HOME}/.profile" \ + "${USER_HOME}/.bash_profile" + +chmod 0644 \ + "${USER_HOME}/.xinitrc" \ + "${USER_HOME}/.profile" \ + "${USER_HOME}/.bash_profile" + +# 5) Autologin sur tty1 via /etc/inittab +# On remplace seulement la ligne tty1. +if grep -q '^1:2345:respawn:' /etc/inittab; then + sed -i 's|^1:2345:respawn:.*|1:2345:respawn:/sbin/getty -a '"${USER_NAME}"' 38400 tty1 linux|' /etc/inittab +else + printf '\n1:2345:respawn:/sbin/getty -a %s 38400 tty1 linux\n' "${USER_NAME}" >> /etc/inittab +fi \ No newline at end of file