diff --git a/README.md b/README.md index 174cf6c..b640a20 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ To install the required dependencies for `pi-gen` you should run: ```bash apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \ dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file git curl bc \ -gpg pigz xxd arch-test +gpg pigz xxd arch-test bmap-tools ``` The file `depends` contains a list of tools needed. The format of this @@ -80,6 +80,13 @@ The following environment variables are supported: will not be included in the image, making it safe to use an `apt-cacher` or similar package for development. + * `TEMP_REPO` (Default: unset) + + An additional temporary apt repo to be used during the build process. This + could be useful if you require pre-release software to be included in the + image. The variable should contain sources in [one-line-style format](https://manpages.debian.org/stable/apt/sources.list.5.en.html#ONE-LINE-STYLE_FORMAT). + "RELEASE" will be replaced with the RELEASE variable. + * `BASE_DIR` (Default: location of `build.sh`) **CAUTION**: Currently, changing this value will probably break build.sh diff --git a/build.sh b/build.sh index 4d55b52..6c3ff24 100755 --- a/build.sh +++ b/build.sh @@ -222,6 +222,7 @@ export PUBKEY_SSH_FIRST_USER export CLEAN export APT_PROXY +export TEMP_REPO export STAGE export STAGE_DIR diff --git a/export-image/00-allow-rerun/00-run.sh b/export-image/00-allow-rerun/00-run.sh index dd67f4c..860ed51 100755 --- a/export-image/00-allow-rerun/00-run.sh +++ b/export-image/00-allow-rerun/00-run.sh @@ -1,9 +1,5 @@ #!/bin/bash -e -if [ ! -x "${ROOTFS_DIR}/usr/bin/qemu-arm-static" ]; then - cp /usr/bin/qemu-arm-static "${ROOTFS_DIR}/usr/bin/" -fi - if [ -e "${ROOTFS_DIR}/etc/ld.so.preload" ]; then mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled" fi diff --git a/export-image/02-set-sources/01-run.sh b/export-image/02-set-sources/01-run.sh index 6d50496..d93efdf 100755 --- a/export-image/02-set-sources/01-run.sh +++ b/export-image/02-set-sources/01-run.sh @@ -1,6 +1,7 @@ #!/bin/bash -e rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" +rm -f "${ROOTFS_DIR}/etc/apt/sources.list.d/00-temp.list" find "${ROOTFS_DIR}/var/lib/apt/lists/" -type f -delete on_chroot << EOF apt-get update diff --git a/export-image/05-finalise/01-run.sh b/export-image/05-finalise/01-run.sh index c59c23b..5cbda20 100755 --- a/export-image/05-finalise/01-run.sh +++ b/export-image/05-finalise/01-run.sh @@ -3,6 +3,7 @@ IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info" SBOM_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.sbom" +BMAP_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.bmap" on_chroot << EOF update-initramfs -k all -c @@ -100,6 +101,12 @@ zerofree "${ROOT_DEV}" unmount_image "${IMG_FILE}" +if hash bmaptool 2>/dev/null; then + bmaptool create \ + -o "${BMAP_FILE}" \ + "${IMG_FILE}" +fi + mkdir -p "${DEPLOY_DIR}" rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*" @@ -126,6 +133,7 @@ none | *) esac if [ -f "${SBOM_FILE}" ]; then - xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/image_$(basename "${SBOM_FILE}").xz" + xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/$(basename "${SBOM_FILE}").xz" fi +cp "$BMAP_FILE" "$DEPLOY_DIR/" cp "$INFO_FILE" "$DEPLOY_DIR/" diff --git a/export-image/prerun.sh b/export-image/prerun.sh index 6a5309a..9f1b496 100755 --- a/export-image/prerun.sh +++ b/export-image/prerun.sh @@ -13,7 +13,7 @@ BOOT_SIZE="$((512 * 1024 * 1024))" ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1) # All partition sizes and starts will be aligned to this size -ALIGN="$((4 * 1024 * 1024))" +ALIGN="$((8 * 1024 * 1024))" # Add this much space to the calculated file size. This allows for # some overhead (since actual space usage is usually rounded up to the # filesystem block size) and gives some free space on the resulting diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index e905541..01662a0 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,35 @@ UNRELEASED: - * + * New mouse and keyboard settings application, rasputin, to replace lxinput + * New printer application, rpinters, to replace system-config-printer + * Added swaylock screen lock application for labwc - use ctrl-alt-L to lock, or access via new option in Shutdown Options + * Added separate settings for console and desktop autologin to raspi-config and Raspberry Pi Configuration + * New command-line password prompt application, sudopwd, to replace zenity password prompts + * New command-line dialog tool, zenoty, to replace zenity error, information, warning and question dialogs + * labwc updated to version 0.8.1 + * wf-panel-pi startup optimised - now starts much faster + * Network manager plugin updated from latest upstream code + * Busy indication (watch cursor) added to first boot wizard + * uBlock Origin Lite now installed by default in Chromium, as it is no longer possible to preinstall uBlock Origin + * Added compatibility with recent kernel to GPU plugin and task manager + * Added more default touchscreen associations + * Added ability to select mouse emulation or multitouch mode for touchscreens in Screen Configuration + * Added ability to set monitor on which squeekboard on-screen keyboard is shown in Raspberry Pi Configuration + * Plugins for lxpanel and wf-panel-pi restructured to build from shared projects for each, to reduce any divergence between them + * Apperance Settings and Raspberry Pi Configuration reviewed - various minor inconsistencies between X and Wayland addressed + * HackSpace removed from Bookshelf application + * Bug fix - correctly position panel menus on secondary monitor under X + * Bug fix - prevent desktop pictures overflowing bounds of monitors + * Bug fix - squeekboard not starting unless a specific monitor had been set for it + * Bug fix - some application icons, including Chromium web apps, were incorrect on the taskbar + * Bug fix - greeter keyboard layout was being reset on updates + * Bug fix - main menu submenus were not scrollable if they didn't fit the screen + * Bug fix - Connect plugin now more accurately detects when Connect is installed and uninstalled + * Bug fix - modified wfpanelctl to work correctly when called via PackageKit + * Various other minor tweaks and updates + * Chromium updated to 135.0.7049.84 + * Firefox updated to 138.0 + * Raspberry Pi firmware bc7f439c234e19371115e07b57c366df59cc1bc7 + * Linux kernel 6.12.25 - 3dd2c2c507c271d411fab2e82a2b3b7e0b6d3f16 2024-10-22: * labwc compositor now used as the default on all models of Raspberry Pi * wf-panel-pi now loads plugins dynamically at runtime diff --git a/stage0/00-configure-apt/00-run.sh b/stage0/00-configure-apt/00-run.sh index 926c4c6..1b7e03f 100755 --- a/stage0/00-configure-apt/00-run.sh +++ b/stage0/00-configure-apt/00-run.sh @@ -12,6 +12,13 @@ else rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" fi +if [ -n "$TEMP_REPO" ]; then + install -m 644 /dev/null "${ROOTFS_DIR}/etc/apt/sources.list.d/00-temp.list" + echo "$TEMP_REPO" | sed "s/RELEASE/$RELEASE/g" > "${ROOTFS_DIR}/etc/apt/sources.list.d/00-temp.list" +else + rm -f "${ROOTFS_DIR}/etc/apt/sources.list.d/00-temp.list" +fi + cat files/raspberrypi.gpg.key | gpg --dearmor > "${STAGE_WORK_DIR}/raspberrypi-archive-stable.gpg" install -m 644 "${STAGE_WORK_DIR}/raspberrypi-archive-stable.gpg" "${ROOTFS_DIR}/etc/apt/trusted.gpg.d/" on_chroot <<- \EOF diff --git a/stage2/02-net-tweaks/00-packages b/stage2/02-net-tweaks/00-packages index d446837..b8c319a 100644 --- a/stage2/02-net-tweaks/00-packages +++ b/stage2/02-net-tweaks/00-packages @@ -1,4 +1,4 @@ -wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek +wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-realtek firmware-mediatek firmware-marvell-prestera- raspberrypi-net-mods network-manager net-tools diff --git a/stage4/05-print-support/00-packages b/stage4/05-print-support/00-packages index e9c36bd..462d36c 100644 --- a/stage4/05-print-support/00-packages +++ b/stage4/05-print-support/00-packages @@ -1,2 +1 @@ cups -system-config-printer