L'ISO Debian-Facile est un projet visant à faire découvrir l'univers GNU/Linux aux très grands débutants. https://debian-facile.org/projets:iso-debian-facile
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.8 KiB

#!/bin/bash
# Debian-Facile live-build script
# https://debian-facile.org/git/ProjetsDF/dfiso-buster/
# set working directory ------------------------------------------------
DFDIR="$(realpath "$(dirname "$0")")"
cd ${DFDIR}
# cfg ------------------------------------------------------------------
VERSION="10.7-1"
if [ `whoami` != root ]; then
echo "erreur : lancer DFbuild en tant qu'administrateur"
exit 1
fi
# args -----------------------------------------------------------------
if [ "$1" == "32" ]; then ARCH="i386"
elif [ "$1" == "64" ]; then ARCH="amd64"
elif [ "$1" == "clean" ]; then lb clean && rm -R -f cache && exit 0
else
# no args or wrong args > help
echo "Utilisation : en mode administrateur"
echo "./DFbuild.sh 32 > construire DFiso i386"
echo "./DFbuild.sh 64 > construire DFiso amd64"
echo "./DFbuild.sh clean > nettoyer le dossier de construction et le cache"
echo "---"
echo "prenez soin de nettoyer le cache avant de construire sous une nouvelle architecture."
exit 1
fi
## build ISO -----------------------------------------------------------
## place nette
lb clean
## mise en place
echo "INFO: building DFiso-${VERSION}-${ARCH}"
## mise en place du dossier des paquets externes
mkdir -p ${DFDIR}/config/packages
## construction des paquets debian
mkdir -p ${DFDIR}/src-deb
cd ${DFDIR}/src-deb/
# gdebi-fixdesk
echo ""
echo "INFOS : construction du gdebi-fixdesk.deb"
git clone --branch master --depth 1 https://debian-facile.org/git/ProjetsDF/gdebi-fixdesk.git
cd gdebi-fixdesk/
equivs-build gdebi-fixdesk.equivs
cd ${DFDIR}/src-deb/
# dfl-dispatch
echo ""
echo "INFOS : construction du dfl-dispatch.deb"
git clone --branch master --depth 1 https://debian-facile.org/git/ProjetsDF/dfl-dispatch.git
cd dfl-dispatch/
equivs-build dfl-dispatch.equivs
cd ${DFDIR}/src-deb/
# handymenu
echo ""
echo "INFOS : construction du handymenu.deb"
git clone --branch master --depth 1 https://debian-facile.org/git/ProjetsDF/handymenu.git
cd handymenu/
equivs-build handymenu.equivs
cd ${DFDIR}/src-deb/
# df-manuel
echo ""
echo "INFOS : récupération des sources pour doc-dfiso-buster"
git clone --branch master --depth 1 https://debian-facile.org/git/ProjetsDF/doc-dfiso-buster.git
cd doc-dfiso-buster/docs/
./mkpdf
cd ../debian/
./mkdeb
cd ${DFDIR}
echo ""
echo "INFOS : récupération des deb's"
find src-deb -iname "*.deb" -exec mv {} config/packages \;
echo "INFOS : nettoyage du dossier de construction des deb's"
rm -Rf src-deb/
# import des cahiers du débutant
# pensez à vérifier la version sur le serveur pour ajuster la commande
echo ""
echo "INFOS : récupération des cahiers du débutant"
cd config/packages/
wget -q -c https://debian-facile.org/projets/lescahiersdudebutant/download/lescahiersdudebutant_10.6_all.deb
cd ${DFDIR}
## téléchargement des vidéos de présentation et d'installation
## depuis le compte peertube debian-facile
## section à commenter pendant les tests en local
# récupération de la vidéo d'installation
wget -c https://video.tedomum.net/download/videos/872b23f7-aa20-4cf4-b076-a5be2d1ba6b0-718.mp4 \
-O config/includes.chroot/etc/skel/Vidéos/DFiso_3_modes_d_installation.mp4
# récupération de la vidéo de présentation
wget -c https://video.tedomum.net/download/videos/0ed9302a-82bb-482d-a5c1-ef1532385c94-720.mp4 \
-O config/includes.chroot/etc/skel/Vidéos/Debian_Buster_par_Debian_Facile.mp4
CONFIG=()
4 years ago
# utiliser apt-cacher s'il est installé
if dpkg-query -W apt-cacher-ng &>"/dev/null"
then
export http_proxy="http://127.0.0.1:3142/"
CONFIG+=("--apt-http-proxy" "$http_proxy")
4 years ago
else
echo "WARNING: apt-cacher-ng n'est pas installé"
fi
# architecture handling
CONFIG+=("-a" "${ARCH}")
case $ARCH in
i386)CONFIG+=("-k" "686" "--bootloader" "syslinux");;
amd64)CONFIG+=("--bootloader" "syslinux,grub-efi");;
esac
# version into USB name
CONFIG+=("--iso-application" "DFiso_$VERSION" "--iso-volume" "DFiso_$VERSION")
# live-build time
2 years ago
lb config ${CONFIG[@]}
4 years ago
lb build
## renommage
if test -f live-image-${ARCH}.hybrid.iso; then
echo "INFO: renommer"
ISODIR="${DFDIR}/dfiso-${ARCH}"
NAME="debian-facile-${VERSION}_${ARCH}"
mkdir -p ${ISODIR}
mv live-image-${ARCH}.hybrid.iso ${ISODIR}/${NAME}.iso
mv chroot.packages.install ${ISODIR}/${NAME}.pkgs
mv dfiso.log ${ISODIR}/${NAME}.log
cd ${ISODIR} && md5sum ${NAME}.iso > ${NAME}.md5
mv ${DFDIR}/maketorrent.sh ${ISODIR}
./maketorrent.sh ${NAME}.iso
mv maketorrent.sh ${DFDIR} && cd ${DFDIR}
echo "INFO: nettoyage"
rm config/includes.chroot/etc/skel/Vidéos/Debian_Buster_par_Debian_Facile.mp4
rm config/includes.chroot/etc/skel/Vidéos/DFiso_3_modes_d_installation.mp4
lb clean
echo "Opération achevée en $(($SECONDS/60)) minutes"
else
echo "ISO non construite : erreur, voir le fichier dfiso.log"
exit 1
fi
exit 0