Added make support for multiple architectures and did cleanup

This commit is contained in:
2021-11-03 16:17:15 +01:00
parent a18780614b
commit 8882eab440
12 changed files with 73 additions and 146 deletions

145
Makefile
View File

@@ -1,121 +1,40 @@
#!/usr/bin/make -f #!/usr/bin/make
# Change the default shell /bin/sh which does not implement 'source' .DEFAULT_GOAL := list
# source is needed to work in a python virtualenv
SHELL := /bin/bash
# remove 'download_extra' to build without third party software/dotfiles list: #Shows this list
all: install_buildenv build @echo The following options are available
@grep '^[^#[:space:]].*:' Makefile | grep -v := | sed -e "s/:[^|]*#/: /g"
download_extra:
make -f Makefile.extra
install_buildenv: install_buildenv: # Install packages required to build the image
# Install packages required to build the image
sudo apt -y install live-build make build-essential wget git unzip colordiff apt-transport-https rename ovmf rsync python3-venv gnupg apt-utils cpio sudo apt -y install live-build make build-essential wget git unzip colordiff apt-transport-https rename ovmf rsync python3-venv gnupg apt-utils cpio
############################## download_extra: #For downloading extra's for iso (not needed/tested)
make -f Makefile.extra
# clear all caches, only required when changing the mirrors/architecture config #Add 'download_extra' to build without third party software/dotfiles (not needed/tested)
clean: build: install_buildenv build_amd64 build_i386 clean_env #Runs build for all architectures
sudo lb clean --all
build_amd64: #Build iso for amd64
rm -f Custom-image-amd64.iso
sudo TargetArch=amd64 lb clean --all
sudo TargetArch=amd64 lb config
sudo TargetArch=amd64 lb build
mv live-image-amd64.hybrid.iso Custom-image-amd64.iso
build_i386: # Build iso for i386
rm -f Custom-image-i386.iso
sudo TargetArch=i386 lb clean --all
sudo TargetArch=i386 lb config
sudo TargetArch=i386 lb build
mv live-image-i386.hybrid.iso Custom-image-i386.iso
clean: clean_env clean_iso #Clear all caches, archives, and isos
clean_env: #Clear all caches and archives
sudo TargetArch=amd64 lb clean --all
sudo TargetArch=i386 lb clean --all
make -f Makefile.extra clean make -f Makefile.extra clean
bump_version: clean_iso: #Removes genereated iso's
@last_tag=$$(git tag | tail -n1); \ rm -f Custom-image-amd64.iso Custom-image-i386.iso
echo "Please set version to $$last_tag in Makefile doc/md/conf.py config/bootloaders/grub-pc/live-theme/theme.txt config/bootloaders/isolinux/live.cfg.in config/bootloaders/isolinux/menu.cfg auto/config doc/md/download-and-installation.md doc/md/index.md"
build:
# Build the live system/ISO image
sudo lb clean --all
sudo lb config
sudo lb build
##############################
release: checksums sign_checksums release_archive
checksums:
# Generate checksums of the resulting ISO image
@mkdir -p iso/
mv *.iso iso/
last_tag=$$(git tag | tail -n1); \
cd iso/; \
rename "s/live-image/dlc-$$last_tag-debian-bullseye/" *; \
sha512sum *.iso > SHA512SUMS; \
# the signing key must be present and loaded on the build machine
# gpg --export-secret-keys --armor $MAINTAINER_EMAIL > $MAINTAINER_EMAIL.key
# rsync -avzP $MAINTAINER_EMAIL.key $BUILD_HOST:
# ssh -t $BUILD_HOST gpg --import $MAINTAINER_EMAIL.key
sign_checksums:
# Sign checksums with a GPG private key
cd iso; \
gpg --detach-sign --armor SHA512SUMS; \
mv SHA512SUMS.asc SHA512SUMS.sign
# Export the public GPG key used for signing
gpg --export --armor nodiscc@gmail.com > dlc-release.key
release_archive:
git archive --format=zip -9 HEAD -o $$(basename $$PWD)-$$(git rev-parse HEAD).zip
################################
tests: test_imagesize test_kvm_bios test_kvm_uefi
test_imagesize:
@size=$$(du -b iso/*.iso | cut -f 1); \
echo "[INFO] ISO image size: $$size bytes"; \
if [[ "$$size" -gt 2147483648 ]]; then \
echo '[WARNING] ISO image size is larger than 2GB!'; \
fi
# iso image must be downloaded from the build machine beforehand
# rsync -avzP $BUILD_HOST:/var/debian-live-config/debian-live-config/iso/ ./
test_kvm_bios:
# Run the resulting image in KVM/virt-manager (legacy BIOS mode)
virt-install --name dlc-test --boot cdrom --video virtio --disk path=$$PWD/dlc-test-disk0.qcow2,format=qcow2,size=20,device=disk,bus=virtio,cache=none --cdrom 'iso/dlc-3.0.0-debian-bullseye-amd64.hybrid.iso' --memory 4096 --vcpu 2
virsh destroy dlc-test
virsh undefine dlc-test
rm -f $$PWD/dlc-test-disk0.qcow2
test_kvm_uefi:
# Run the resulting image in KVM/virt-manager (UEFI mode)
# UEFI support must be enabled in QEMU config for EFI install tests https://wiki.archlinux.org/index.php/Libvirt#UEFI_Support (/usr/share/OVMF/*.fd)
virt-install --name dlc-test --boot loader=/usr/share/OVMF/OVMF_CODE.fd --video virtio --disk path=$$PWD/dlc-test-disk0.qcow2,format=qcow2,size=20,device=disk,bus=virtio,cache=none --cdrom 'iso/dlc-3.0.0-debian-bullseye-amd64.hybrid.iso' --memory 4096 --vcpu 2
virsh destroy dlc-test
virsh undefine dlc-test
rm -f $$PWD/dlc-test-disk0.qcow2
#################################
# Update TODO.md by fetching issues from the main gitea instance API
# requirements: sudo apt install git jq
# gitea-cli config defined in ~/.config/gitearc
update_todo:
git clone https://github.com/bashup/gitea-cli gitea-cli
echo '<!-- This file is automatically generated by "make update_todo" -->' >| doc/md/TODO.md
echo -e "\n### nodiscc/debian-live-config\n" >> doc/md/TODO.md; \
./gitea-cli/bin/gitea issues baron/debian-live-config | jq -r '.[] | "- #\(.number) - \(.title) - **`\(.milestone.title // "-")`** `\(.labels | map(.name) | join(","))`"' | sed 's/ - `null`//' >> doc/md/TODO.md; \
rm -rf gitea-cli
doc: install_dev_docs doc_md doc_html
# install documentation generator (sphinx + markdown + theme)
install_dev_docs:
python3 -m venv .venv/
source .venv/bin/activate && pip3 install sphinx recommonmark sphinx_rtd_theme
doc_md:
cp README.md doc/md/index.md
cp CHANGELOG.md doc/md/
cp LICENSE doc/md/LICENSE.md
sed -i 's|doc/md/||g' doc/md/*.md
./doc/gen_package_lists.py
# HTML documentation generation (sphinx-build --help)
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = doc/md # répertoire source (markdown)
BUILDDIR = doc/html # répertoire destination (html)
doc_html:
source .venv/bin/activate && sphinx-build -c doc/md -b html doc/md doc/html

View File

@@ -10,7 +10,6 @@ clean:
clean_all: clean clean_all: clean
rm -rvf cache/downloads/ rm -rvf cache/downloads/
download_extra: clean download_extra: clean
# TODO use the APT repository at build time, but disable it in the final chroot/image # TODO use the APT repository at build time, but disable it in the final chroot/image
# TODO file ITPs on bugs.debian.org # TODO file ITPs on bugs.debian.org

View File

@@ -2,10 +2,12 @@
# live-build configuration script # live-build configuration script
# see 'man lb config' # see 'man lb config'
#Add "linux-headers" to linux-packages when using nvidia driver
lb config noauto \ lb config noauto \
--apt-recommends false \ --apt-recommends false \
--apt-indices false \ --apt-indices false \
--architectures amd64 \ --architectures $TargetArch \
--archive-areas 'main contrib non-free' \ --archive-areas 'main contrib non-free' \
--backports true \ --backports true \
--security true \ --security true \
@@ -16,7 +18,7 @@ lb config noauto \
--checksums sha256 \ --checksums sha256 \
--clean \ --clean \
--debconf-frontend noninteractive \ --debconf-frontend noninteractive \
--debian-installer false \ --debian-installer none \
--debian-installer-distribution bullseye \ --debian-installer-distribution bullseye \
--debian-installer-gui false \ --debian-installer-gui false \
--debootstrap-options "--include=apt-transport-https,ca-certificates,openssl" \ --debootstrap-options "--include=apt-transport-https,ca-certificates,openssl" \
@@ -24,11 +26,11 @@ lb config noauto \
--firmware-binary true \ --firmware-binary true \
--firmware-chroot true \ --firmware-chroot true \
--initramfs live-boot \ --initramfs live-boot \
--iso-publisher dlc \ --iso-publisher brammp \
--iso-volume dlc-3.0.0 \ --iso-volume Gui-minimal-testing \
--linux-packages "linux-image linux-headers" \ --linux-packages "linux-image" \
--bootappend-live "boot=live config" \ --bootappend-live "boot=live config" \
--memtest memtest86+ \ --memtest none \
--win32-loader true \ --win32-loader false \
--apt-http-proxy "http://192.168.2.83:80" --apt-http-proxy "http://192.168.2.83:80" \
"${@}" --zsync false

View File

@@ -1,7 +1,7 @@
desktop-image: "../splash.png" desktop-image: "../splash.png"
title-color: "#ffffff" title-color: "#ffffff"
title-font: "DejaVu Sans Bold 16" title-font: "DejaVu Sans Bold 16"
title-text: "debian-live-config 3.0.0 (Debian 11.1.0)" title-text: "Gui-minimal-testing"
message-font: "Unifont Regular 16" message-font: "Unifont Regular 16"
terminal-font: "Unifont Regular 16" terminal-font: "Unifont Regular 16"

View File

@@ -1,11 +1,11 @@
menu hshift 0 menu hshift 0
menu width 82 menu width 82
menu title debian-live-config 3.0.0 (Debian 11.1.0) menu title Gui-minimal-testing
include stdmenu.cfg include stdmenu.cfg
label live-amd64 label live-amd64
menu label ^Live system (amd64) (English) menu label ^Live system
menu default menu default
linux /live/vmlinuz linux /live/vmlinuz
initrd /live/initrd.img initrd /live/initrd.img
@@ -13,7 +13,6 @@ label live-amd64
label live-amd64-r label live-amd64-r
menu label ^Live system (ToRam) menu label ^Live system (ToRam)
menu default
linux /live/vmlinuz linux /live/vmlinuz
initrd /live/initrd.img initrd /live/initrd.img
append boot=live config toram locales=en_US.UTF-8 append boot=live config toram locales=en_US.UTF-8

View File

@@ -1,3 +1,7 @@
#!/bin/bash #!/bin/bash
echo "I: running $0" echo "I: running $0"
apt -y purge exim4-base nfs-common rpcbind apt -y purge exim4-base nfs-common rpcbind firmware-netronome grub*
if [ -f "/usr/bin/x86_64" ] ; then
apt purge $(apt list --installed |grep linux-image |grep -v bpo| sed 's#/.*##') -y
fi

View File

@@ -2,7 +2,7 @@
echo "I: running $0" echo "I: running $0"
disabled_services="avahi-daemon.service openvpn.service rsync.service ssh.service nmbd.service smbd.service libvirtd.service libvirt-guests.service" disabled_services="avahi-daemon.service openvpn.service rsync.service ssh.service nmbd.service smbd.service libvirtd.service libvirt-guests.service"
enabled_services="bumblebeed.service cups-browsed.service bluetooth.service cups.service fancontrol.service laptop-mode.service ntp.service plymouth.service preload.service smartmontools.service rsyslog.service lm-sensors.service hddtemp.service haveged.service" enabled_services="bluetooth.service fancontrol.service laptop-mode.service ntp.service preload.service smartmontools.service rsyslog.service lm-sensors.service hddtemp.service haveged.service"
for service in $disabled_services; do for service in $disabled_services; do
echo "Disabling $service" echo "Disabling $service"

View File

@@ -3,20 +3,20 @@
##### Kernel / firmware ##### Kernel / firmware
Package: linux-image-* Package: linux-image-*
Pin: release a=bullseye-backports Pin: release a=bullseye-backports , b=amd64
Pin-Priority: 600 Pin-Priority: 600
Package: linux-headers-* Package: linux-headers-*
Pin: release a=bullseye-backports Pin: release a=bullseye-backports , b=amd64
Pin-Priority: 600 Pin-Priority: 600
Package: firmware-* Package: firmware-*
Pin: release a=bullseye-backports Pin: release a=bullseye-backports , b=amd64
Pin-Priority: 600 Pin-Priority: 600
##### NVIDIA proprietary drivers ##### NVIDIA proprietary drivers
Package: nvidia-driver Package: nvidia-driver
Pin: release a=bullseye-backports Pin: release a=bullseye-backports , b=amd64
Pin-Priority: 600 Pin-Priority: 600

View File

@@ -47,8 +47,8 @@
[greeter] [greeter]
background = /usr/share/backgrounds/homeworld-darker-3840x2160.png background = /usr/share/backgrounds/homeworld-darker-3840x2160.png
user-background = false user-background = false
theme-name = Arc-Darker theme-name = Adwaita-dark
icon-theme-name = Papirus icon-theme-name = Adwaita
font-name = Roboto font-name = Roboto
xft-antialias = true xft-antialias = true
#xft-dpi= #xft-dpi=

View File

@@ -1 +1,6 @@
! Packages Priority important ! Packages Priority important
#For updating kernel to Backport
#if ARCHITECTURES amd64
linux-image-amd64
#endif

View File

@@ -10,8 +10,8 @@ whiptail
moreutils moreutils
less less
#Section: Packaging #Section: Packaging
debhelper #debhelper
equivs #equivs
checkinstall checkinstall
debconf-utils debconf-utils
lintian lintian

View File

@@ -57,7 +57,7 @@ colortail
#Description: lightdm #Description: lightdm
lightdm lightdm
lightdm-gtk-greeter lightdm-gtk-greeter
light-locker #light-locker
#Section: Boot screen #Section: Boot screen
#plymouth #plymouth
@@ -91,10 +91,10 @@ xfonts-75dpi
xfonts-100dpi xfonts-100dpi
xserver-xorg xserver-xorg
xserver-xorg-input-all xserver-xorg-input-all
xserver-xorg-input-wacom #xserver-xorg-input-wacom
xserver-xorg-input-aiptek #xserver-xorg-input-aiptek
xserver-xorg-input-elographics #xserver-xorg-input-elographics
xserver-xorg-input-joystick #xserver-xorg-input-joystick
xserver-xorg-input-kbd xserver-xorg-input-kbd
xserver-xorg-input-mouse xserver-xorg-input-mouse
xserver-xorg-input-mutouch xserver-xorg-input-mutouch
@@ -109,7 +109,7 @@ hwdata
#nvidia-driver #nvidia-driver
##if ARCHITECTURES amd64 ##if ARCHITECTURES amd64
#linux-headers-amd64 #linux-headers-amd64
#endif ##endif
##if ARCHITECTURES i386 ##if ARCHITECTURES i386
#linux-headers-686:i386 #linux-headers-686:i386
##endif ##endif
@@ -120,13 +120,12 @@ hwdata
#Section: Kernel/boot/init #Section: Kernel/boot/init
systemd systemd
os-prober #os-prober
initramfs-tools initramfs-tools
console-setup #console-setup
user-setup user-setup
libpam-systemd libpam-systemd
#Section: Firmwares #Section: Firmwares
firmware-linux-free firmware-linux-free
firmware-linux-nonfree firmware-linux-nonfree