From cebb2ab47cb461aea8db9ca1516d7f8b62d608b4 Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Thu, 5 Dec 2024 18:27:38 +0100
Subject: [PATCH] updated live-exam build

---
 live_exam_os/Dockerfile          | 24 ++++++++++--------------
 live_exam_os/build_live_exam_iso |  5 ++++-
 live_exam_os/config/config       |  4 +---
 3 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/live_exam_os/Dockerfile b/live_exam_os/Dockerfile
index c700e6c..48f0c34 100644
--- a/live_exam_os/Dockerfile
+++ b/live_exam_os/Dockerfile
@@ -39,10 +39,13 @@ RUN apt-get update && apt-get install -y live-build live-config && rm -rf /var/l
 
 WORKDIR /live-default
 
-# Install grub config
+# Install grub config (used when booting on UEFI systems)
 ADD config/00-bootloader/grub_config.cfg config/includes.binary/boot/grub/config.cfg
 
-## Add additionnal Debian packages
+# Install syslinux config (used when booting on BIOS systems)
+ADD config/00-bootloader/isolinux.cfg config/includes.binary/isolinux/isolinux.cfg
+
+# Add additionnal Debian packages
 ADD config/01-build_hooks/packages.list.chroot config/package-lists/
 
 ## Add swiss-french keyboard config
@@ -56,7 +59,7 @@ RUN chmod 0600 config/includes.chroot/etc/NetworkManager/system-connections/wifi
 # RUN mkdir -p config/includes.chroot/etc/live/config.conf.d
 # RUN echo "LIVE_USER_DEFAULT_GROUPS=\"cdrom floppy sudo audio dip video plugdev users netdev bluetooth scanner dialout\"" > config/includes.chroot/etc/live/config.conf.d/10-user-setup.conf
 
-## Copy nexus-exam from builder container
+# Copy nexus-exam from builder container
 COPY --from=nexus-exam-builder /nexus/build/nexus-exam config/includes.chroot/usr/local/bin/
 
 ## Run nexus-exam as soon as user logs in
@@ -72,20 +75,13 @@ RUN chmod +x config/includes.chroot/home/nexus/Bureau/nexus-exam.desktop
 ADD config/01-build_hooks/x11/x11_settings.sh config/includes.chroot/usr/local/bin/
 ADD config/01-build_hooks/x11/x11_settings.desktop config/includes.chroot/etc/xdg/autostart/
 
-## Systemd service to set various X11 settings (does not work - not sure why)
+# Systemd service to set various X11 settings (does not work - not sure why)
 # ADD config/01-build_hooks/systemd/x11_settings.sh config/includes.chroot/usr/local/bin/
 # RUN chmod +x config/includes.chroot/usr/local/bin/x11_settings.sh
 # ADD config/01-build_hooks/systemd/x11_settings.service config/includes.chroot/etc/systemd/system/
 
-# Install nexus server pub cert system wide
-# ADD config/01-build_hooks/${nexus_cert} config/includes.chroot/usr/share/ca-certificates/nexus-server/nexus-server.crt
-
-## Add environment variables for nexus server and certificate
-# RUN mkdir config/includes.chroot/etc/skel/
-# RUN echo "export NEXUS_SERVER=${server_ip}\nexport NEXUS_CERT=/etc/ssl/certs/nexus-server.pem\n" >> config/includes.chroot/etc/skel/.xsessionrc
-
-## Customize xfce4 desktop
-#ADD config/01-build_hooks/xubuntu-development.png config/includes.chroot/usr/share/xfce4/backdrops/xubuntu-development.png
+# Customize xfce4 desktop
+ADD config/01-build_hooks/xubuntu-development.png config/includes.chroot/usr/share/xfce4/backdrops/xubuntu-development.png
 ADD config/01-build_hooks/xfce/xfce4-desktop.xml config/includes.chroot/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
 ADD config/01-build_hooks/xfce/xfce4-panel.xml config/includes.chroot/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
 ADD config/01-build_hooks/xfce/xfce4-settings-manager.xml config/includes.chroot/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
@@ -107,7 +103,7 @@ ADD config/03-boot_hooks/* config/includes.chroot/lib/live/config/
 # Configure firewall hook
 RUN echo "firewall ${server_ip} ${server_port}\n" >> config/includes.chroot/lib/live/config/9999-firewall
 
-## Add config file
+# Add config file
 ADD config/config auto/
 
 RUN lb config
diff --git a/live_exam_os/build_live_exam_iso b/live_exam_os/build_live_exam_iso
index b85da14..f95148f 100755
--- a/live_exam_os/build_live_exam_iso
+++ b/live_exam_os/build_live_exam_iso
@@ -1,5 +1,8 @@
 #!/bin/bash
 
+LIVEBUILD_ISO_NAME=live-image-amd64.hybrid.iso
+#LIVEBUILD_ISO_NAME=live-image-amd64.iso
+
 TMP_CONTAINER_NAME=`echo $RANDOM | md5sum | head -c 20; echo;`
 IMG_SUFFIX=`echo $RANDOM | md5sum | head -c 8; echo;`
 DOCKER_IMG="nexus-live-exam-os_"$IMG_SUFFIX
@@ -91,7 +94,7 @@ else
 fi
 
 # Retrieve live-image from temporary container
-if docker cp $TMP_CONTAINER_NAME:/live-default/live-image-amd64.iso $ISO ; then
+if docker cp $TMP_CONTAINER_NAME:/live-default/$LIVEBUILD_ISO_NAME $ISO ; then
     echo "Successfully extracted $ISO from $TMP_CONTAINER_NAME container"
 else
     error=1
diff --git a/live_exam_os/config/config b/live_exam_os/config/config
index cb516e6..bb9c099 100755
--- a/live_exam_os/config/config
+++ b/live_exam_os/config/config
@@ -6,7 +6,7 @@ lb config noauto \
      --mode debian \
      --parent-distribution bookworm \
      --distribution bookworm \
-     --binary-images iso \
+     --binary-images iso-hybrid \
      --color \
      --iso-application "HEPIA-ISC" \
      --iso-volume "nexus-live-exam" \
@@ -14,7 +14,5 @@ lb config noauto \
      --security true \
      --updates false \
      --archive-areas "main contrib non-free non-free-firmware" \
-     --mirror-bootstrap http://ftp.ch.debian.org/debian/ \
-     --mirror-binary http://ftp.ch.debian.org/debian/ \
      --bootappend-live "boot=live components noeject noroot nottyautologin toram username=nexus hostname=nexus-live-exam locales=fr_CH.UTF-8 keyboard-layouts=ch timezone=Europe/Zurich" \
      "${@}"
-- 
GitLab