diff --git a/Dockerfile b/Dockerfile index 35f483a..2e53149 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,10 +3,11 @@ FROM debian:buster ENV DEBIAN_FRONTEND noninteractive RUN apt-get -y update && \ - apt-get -y install \ + apt-get -y install --no-install-recommends \ git vim parted \ quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \ bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\ + binfmt-support ca-certificates \ && rm -rf /var/lib/apt/lists/* COPY . /pi-gen/ diff --git a/README.md b/README.md index ec4f65c..29d8166 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,11 @@ The following environment variables are supported: but you should use something else for a customized version. Export files in stages may add suffixes to `IMG_NAME`. + * `RELEASE` (Default: buster) + + The release version to build images against. Valid values are jessie, stretch + buster, bullseye, and testing. + * `APT_PROXY` (Default: unset) If you require the use of an apt proxy, set it here. This proxy setting diff --git a/build-docker.sh b/build-docker.sh index 79b68d4..b6a9ea3 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -32,7 +32,7 @@ done # Ensure that the configuration file is an absolute path if test -x /usr/bin/realpath; then - CONFIG_FILE=$(realpath -s "$CONFIG_FILE") + CONFIG_FILE=$(realpath -s "$CONFIG_FILE" || realpath "$CONFIG_FILE") fi # Ensure that the confguration file is present @@ -41,7 +41,7 @@ if test -z "${CONFIG_FILE}"; then exit 1 else # shellcheck disable=SC1090 - source "${CONFIG_FILE}" + source ${CONFIG_FILE} fi CONTAINER_NAME=${CONTAINER_NAME:-pigen_work} diff --git a/build.sh b/build.sh index a906e10..a8247ab 100755 --- a/build.sh +++ b/build.sh @@ -20,7 +20,7 @@ EOF PACKAGES="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < "${i}-packages-nr")" if [ -n "$PACKAGES" ]; then on_chroot << EOF -apt-get install --no-install-recommends -y $PACKAGES +apt-get -o APT::Acquire::Retries=3 install --no-install-recommends -y $PACKAGES EOF fi log "End ${SUB_STAGE_DIR}/${i}-packages-nr" @@ -30,7 +30,7 @@ EOF PACKAGES="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < "${i}-packages")" if [ -n "$PACKAGES" ]; then on_chroot << EOF -apt-get install -y $PACKAGES +apt-get -o APT::Acquire::Retries=3 install -y $PACKAGES EOF fi log "End ${SUB_STAGE_DIR}/${i}-packages" @@ -166,6 +166,7 @@ export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi} export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} +export RELEASE=${RELEASE:-buster} export WPA_ESSID export WPA_PASSWORD export WPA_COUNTRY diff --git a/export-noobs/00-release/00-run.sh b/export-noobs/00-release/00-run.sh index 1d0b12f..18a3a5d 100755 --- a/export-noobs/00-release/00-run.sh +++ b/export-noobs/00-release/00-run.sh @@ -36,6 +36,7 @@ sed "${NOOBS_DIR}/partitions.json" -i -e "s|ROOT_NOM|${ROOT_NOM}|" sed "${NOOBS_DIR}/os.json" -i -e "s|UNRELEASED|${IMG_DATE}|" sed "${NOOBS_DIR}/os.json" -i -e "s|NOOBS_NAME|${NOOBS_NAME}|" sed "${NOOBS_DIR}/os.json" -i -e "s|NOOBS_DESCRIPTION|${NOOBS_DESCRIPTION}|" +sed "${NOOBS_DIR}/os.json" -i -e "s|RELEASE|${RELEASE}|" sed "${NOOBS_DIR}/release_notes.txt" -i -e "s|UNRELEASED|${IMG_DATE}|" diff --git a/export-noobs/00-release/files/os.json b/export-noobs/00-release/files/os.json index afa9f9a..e231238 100644 --- a/export-noobs/00-release/files/os.json +++ b/export-noobs/00-release/files/os.json @@ -16,5 +16,5 @@ ], "url": "http://www.raspbian.org/", "username": "pi", - "version": "buster" + "version": "RELEASE" } diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 45e8576..8d7f014 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,38 @@ UNRELEASED: - * + * Raspberry Pi Configuration - screen blanking setting disabled if Xscreensaver is installed + * Bug fix - switch to turn off VNC server in Raspberry Pi Configuration has no effect + * Bug fix - fix %20 characters in file names + * Linux kernel 4.19.97 + * Raspberry Pi firmware 9a34efbf2fc6a27231607ce91a7cb6bf3bdbc0c5 + - gencmd: Fix measure_clock name for CLOCK_OUTPUT_108 + - mmal isp: Remote alignment requirements for RGB24 formats + - Add missing flags for VC_IMAGE_PROP_YUVUV_4K_CHROMA_ALIGN + - platform: Compromise on gpu overclock settings +2020-02-05: + * Version 3.2.6 of Thonny included - significant improvements in speed, particularly when debugging + * Version 1.0.4 of Scratch 3 included - adds new "display stage" and "display sprite" blocks to SenseHAT extension, and loading of files from command line + * Version 32.0.0.314 of Flash player included + * Version 1.0.3 of NodeRED included + * Version 6.6.0 of RealVNC Server and version 6.19.923 of RealVNC Viewer included - adds support for audio + * Version 78.0.3904.108 of Chromium included + * Mesa updated to 19.3.2 for OpenGL ES 3.1 conformance + * Pixel doubling option added in Raspberry Pi Configuration on platforms using FKMS display driver + * Orca screen reader added to Recommended Software + * Code The Classics Python games added to Recommended Software + * File manager - new "places" pane added at top of sidebar to show mounted drives in simplified view; "new folder" icon added to taskbar; expanders in directory browser now correctly show state of subfolders + * Multiple monitor support improved - alignment of icons on second desktop corrected, Appearance Settings opens on correct tab when launched from context menu + * Raspberry Pi Touchscreen correctly aligned with display + * System clock synchronised before installing new packages in startup wizard and Recommended Software + * Mixer dialogs added to taskbar volume plugin; separate Audio Preferences application removed + * Raspberry Pi Configuration - separate tab added for display options; screen blanking control added + * Volume taskbar plugin and raspi-config modified to support separate ALSA devices for internal audio outputs (analogue and HDMI 1 and 2) + * Robustness improvements in volume, ejecter and battery taskbar plugins + * Movement of mouse pointer to menu button on startup now controlled by point_at_menu parameter in Global section of lxpanel configuration file + * Ctrl-Alt-Del and Ctrl-Alt-End shortcuts added to open shutdown options box + * Ctrl-Shift-Esc shortcut added to open task manager + * Enabled NEON routines in OpenSSL + * Linux kernel 4.19.97 + * Raspberry Pi firmware 149cd7f0487e08e148efe604f8d4d359541cecf4 2019-09-26: * rpi-eeprom included - This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version. diff --git a/stage0/00-configure-apt/00-run.sh b/stage0/00-configure-apt/00-run.sh index 9d21ffb..d10a49f 100755 --- a/stage0/00-configure-apt/00-run.sh +++ b/stage0/00-configure-apt/00-run.sh @@ -2,6 +2,8 @@ install -m 644 files/sources.list "${ROOTFS_DIR}/etc/apt/" install -m 644 files/raspi.list "${ROOTFS_DIR}/etc/apt/sources.list.d/" +sed -i "s/RELEASE/${RELEASE}/g" "${ROOTFS_DIR}/etc/apt/sources.list" +sed -i "s/RELEASE/${RELEASE}/g" "${ROOTFS_DIR}/etc/apt/sources.list.d/raspi.list" if [ -n "$APT_PROXY" ]; then install -m 644 files/51cache "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" diff --git a/stage0/00-configure-apt/files/raspi.list b/stage0/00-configure-apt/files/raspi.list index 122287e..41c5a70 100644 --- a/stage0/00-configure-apt/files/raspi.list +++ b/stage0/00-configure-apt/files/raspi.list @@ -1,3 +1,3 @@ -deb http://archive.raspberrypi.org/debian/ buster main +deb http://archive.raspberrypi.org/debian/ RELEASE main # Uncomment line below then 'apt-get update' to enable 'apt-get source' -#deb-src http://archive.raspberrypi.org/debian/ buster main +#deb-src http://archive.raspberrypi.org/debian/ RELEASE main diff --git a/stage0/00-configure-apt/files/sources.list b/stage0/00-configure-apt/files/sources.list index 61820ac..4a5dd8a 100644 --- a/stage0/00-configure-apt/files/sources.list +++ b/stage0/00-configure-apt/files/sources.list @@ -1,3 +1,3 @@ -deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi +deb http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' -#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi +#deb-src http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi diff --git a/stage0/prerun.sh b/stage0/prerun.sh index 9ce3e02..3b25783 100755 --- a/stage0/prerun.sh +++ b/stage0/prerun.sh @@ -1,5 +1,5 @@ #!/bin/bash -e if [ ! -d "${ROOTFS_DIR}" ]; then - bootstrap buster "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/ + bootstrap ${RELEASE} "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/ fi diff --git a/stage2/02-net-tweaks/01-run.sh b/stage2/02-net-tweaks/01-run.sh index 63fbff7..0929755 100755 --- a/stage2/02-net-tweaks/01-run.sh +++ b/stage2/02-net-tweaks/01-run.sh @@ -27,5 +27,5 @@ fi # Disable wifi on 5GHz models mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/" -echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmc:wlan" -echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmc:wlan" +echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan" +echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan" diff --git a/stage4/03-magpi/00-run.sh b/stage4/03-magpi/00-run.sh index cc5a820..b27b85f 100755 --- a/stage4/03-magpi/00-run.sh +++ b/stage4/03-magpi/00-run.sh @@ -1,12 +1,12 @@ #!/bin/sh -e magpi_regex="MagPi[[:digit:]]*.pdf" -magpi_loc="https://www.raspberrypi.org/magpi-issues" -magpi_latest="$(curl "$magpi_loc/?C=M;O=D" -s | grep "$magpi_regex" -m 1 -o | head -n 1)" +magpi_loc="$(curl -s https://magpi.raspberrypi.org/latest-pdf)" +magpi_latest="$(echo "$magpi_loc" | grep "$magpi_regex" -m 1 -o)" if [ ! -f "files/$magpi_latest" ]; then find files/ -regextype grep -regex "files/$magpi_regex" -delete - wget "$magpi_loc/$magpi_latest" -O "files/$magpi_latest" + wget "$magpi_loc" -O "files/$magpi_latest" fi file "files/$magpi_latest" | grep -q "PDF document" diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages index afe5aee..609e718 100644 --- a/stage5/00-install-extras/00-packages +++ b/stage5/00-install-extras/00-packages @@ -13,3 +13,4 @@ nodered realvnc-vnc-viewer python-games +code-the-classics