From 4118f8d52404deb92de15837aa0ff8456c7b85f9 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 8 Jul 2019 19:29:35 +0100 Subject: [PATCH 01/63] stage5: Add Mathematica --- stage5/00-install-extras/00-packages | 1 + 1 file changed, 1 insertion(+) diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages index 5eb164ed30..9d6a6682df 100644 --- a/stage5/00-install-extras/00-packages +++ b/stage5/00-install-extras/00-packages @@ -6,6 +6,7 @@ smartsim minecraft-pi python-minecraftpi python-sense-emu sense-emu-tools python-sense-emu-doc +wolfram-engine claws-mail greenfoot-unbundled bluej nodered From 37482277d362859b84a50ba4646043f3ab9ecf1e Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 8 Jul 2019 19:42:09 +0100 Subject: [PATCH 02/63] stage2: Add vl805fw --- stage2/01-sys-tweaks/00-packages | 1 + 1 file changed, 1 insertion(+) diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index d808197759..bb33b5a385 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -24,3 +24,4 @@ policykit-1 ssh-import-id rng-tools ethtool +vl805fw From 175dfb027ffabd4b8d5080097af0e51ed9a4a56c Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 8 Jul 2019 19:52:00 +0100 Subject: [PATCH 03/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 5fe21e0c44..a90f71fa7f 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,20 @@ UNRELEASED: - * + * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration + * Option added to Appearance Settings to move taskbar to second monitor + * Option added to Recommended Software to restrict package installs by architecture + * New version of Adobe Flash player (32.0.0.223) + * Selection of screen refresh rates added to Screen Configuration + * Fix for missing text insertion cursor in LibreOffice on Pi 4 + * Fix for Wi-fi interruption when Wi-fi icon on taskbar is clicked + * FIx for incorrect desktop background behind desktop login prompt + * Fix for segmentation faults when launching obconf and lxapperarance + * Fix for unclosed file pointer in Screen Configuration + * Fix for Bluetooth plugin freeze when large numbers of devices detected + * Fix for opening URLs not working in lxterminal + * Fix for start menu opening on incorrect monitor when launched from keyboard + * Fix for taskbar item not having [] removed when un-minimising on second monitor + * Linux kernel 4.19.57 + * Raspberry Pi firmware cb3a32adf39f45a49be454e30c7464920ad7c605 2019-06-20: * Based on Debian Buster * Support for Raspberry Pi 4 hardware From 4c575d7e8ffceffd0146554447a57d9375ca99d8 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 10 Jul 2019 15:42:40 +0100 Subject: [PATCH 04/63] Add missing release notes --- export-noobs/00-release/files/release_notes.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index a90f71fa7f..86651bcdb4 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,6 @@ UNRELEASED: + * +2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor * Option added to Recommended Software to restrict package installs by architecture @@ -13,6 +15,9 @@ UNRELEASED: * Fix for opening URLs not working in lxterminal * Fix for start menu opening on incorrect monitor when launched from keyboard * Fix for taskbar item not having [] removed when un-minimising on second monitor + * Fix for Chromium video playback and WebGL performance on Pi 4 + * Remove 4kp60 option from Raspberry Pi Configuration + * Rename hdmi_enable_4k to hdmi_enable_4kp60 in /boot/config.txt and raspi-config * Linux kernel 4.19.57 * Raspberry Pi firmware cb3a32adf39f45a49be454e30c7464920ad7c605 2019-06-20: From 210b51c293d3fdea968818d72d72085ca181bd7f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 10 Jul 2019 15:47:17 +0100 Subject: [PATCH 05/63] stage3: remove Epiphany --- export-noobs/00-release/files/release_notes.txt | 2 +- stage3/00-install-packages/00-packages-nr | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 86651bcdb4..60ae4bd459 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,5 @@ UNRELEASED: - * + * Remove Epiphany 2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor diff --git a/stage3/00-install-packages/00-packages-nr b/stage3/00-install-packages/00-packages-nr index c0152873d5..ebbbd16aa1 100644 --- a/stage3/00-install-packages/00-packages-nr +++ b/stage3/00-install-packages/00-packages-nr @@ -1,5 +1,4 @@ xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg-video-fbturbo -epiphany-browser lxde lxtask menu-xdg zenity xdg-utils gvfs-backends gvfs-fuse From 9c0a25d8528c64eea3f208ee53c7c84a1a02c2eb Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 18 Jul 2019 12:07:45 +0100 Subject: [PATCH 06/63] stage2: add ntfs-3g --- export-noobs/00-release/files/release_notes.txt | 5 +++-- stage2/01-sys-tweaks/00-packages | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 60ae4bd459..8a7f2c8ac3 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,6 @@ UNRELEASED: - * Remove Epiphany + * Epiphany/Web removed + * ntfs-3g included 2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor @@ -19,7 +20,7 @@ UNRELEASED: * Remove 4kp60 option from Raspberry Pi Configuration * Rename hdmi_enable_4k to hdmi_enable_4kp60 in /boot/config.txt and raspi-config * Linux kernel 4.19.57 - * Raspberry Pi firmware cb3a32adf39f45a49be454e30c7464920ad7c605 + * Raspberry Pi firmware 356f5c2880a3c7e8774025aa6fc934a617553e7b 2019-06-20: * Based on Debian Buster * Support for Raspberry Pi 4 hardware diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index bb33b5a385..6ed90e6518 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -25,3 +25,4 @@ ssh-import-id rng-tools ethtool vl805fw +ntfs-3g From c0714e33d61da15538ad8deeb23bc195564f0880 Mon Sep 17 00:00:00 2001 From: 132ikl <132@ikl.sh> Date: Tue, 23 Jul 2019 09:43:07 -0400 Subject: [PATCH 07/63] Update Stretch to Buster in README (#310) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9fe12c93a3..f15f07631a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ _Tool used to create the raspberrypi.org Raspbian images_ ## Dependencies pi-gen runs on Debian based operating systems. Currently it is only supported on -either Debian Stretch or Ubuntu Xenial and is known to have issues building on +either Debian Buster or Ubuntu Xenial and is known to have issues building on earlier releases of these systems. On other Linux distributions it may be possible to use the Docker build described below. From 5436273ec728c8369dab9c08f2739805f20510f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Hilligs=C3=B8e?= Date: Tue, 23 Jul 2019 15:44:33 +0200 Subject: [PATCH 08/63] Make build_docker.sh portable again (#308) Last commit made the script break on macOS. From `man sed` (On Linux): ``` -E, -r, --regexp-extended use extended regular expressions in the script (for portability use POSIX -E). ``` --- build-docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-docker.sh b/build-docker.sh index 2210cb5093..f96854546d 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -63,7 +63,7 @@ if [ "${CONTAINER_EXISTS}" != "" ] && [ "${CONTINUE}" != "1" ]; then fi # Modify original build-options to allow config file to be mounted in the docker container -BUILD_OPTS="$(echo ${BUILD_OPTS:-} | sed -r 's@\-c\s?([^ ]+)@-c /config@')" +BUILD_OPTS="$(echo ${BUILD_OPTS:-} | sed -E 's@\-c\s?([^ ]+)@-c /config@')" ${DOCKER} build -t pi-gen "${DIR}" if [ "${CONTAINER_EXISTS}" != "" ]; then From 920e22bdc5224238881d8a87d17efa9d6f1e991c Mon Sep 17 00:00:00 2001 From: Hugo Hromic Date: Tue, 30 Jul 2019 12:38:26 +0100 Subject: [PATCH 09/63] Ensure that the configuration file is an absolute path in Docker build (#306) * Use `&&` instead of `;` in Docker pipeline * In case of error, `&&` does not continue execution * Silence shellcheck warning * SC2086: Double quote to prevent globbing and word splitting. * Ensure that the configuration file is an absolute path in Docker build The specific problem is in commit 2ddd7c1, where the passed config file (using the `-c` option) is now mounted inside the container using the `--volume src:dest:opt` Docker option. The problem is that Docker requires absolute paths for mounting single files inside the container, otherwise it silently tries to mount a volume name instead as an empty directory. Therefore the Docker build no longer works with the following invocation forms (relative config-paths): ./build-docker.sh -c myconfig /path/to/build-docker.sh -c myconfig # also doesn't work This commit uses `realpath` (included in coreutils) in the Docker build script to ensure that the passed configuration file is always an absolute path before passing it to Docker. --- build-docker.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build-docker.sh b/build-docker.sh index f96854546d..3d7634df34 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -30,6 +30,9 @@ do esac done +# Ensure that the configuration file is an absolute path +CONFIG_FILE=$(realpath -s "$CONFIG_FILE") + # Ensure that the confguration file is present if test -z "${CONFIG_FILE}"; then echo "Configuration file need to be present in '${DIR}/config' or path passed as parameter" @@ -63,7 +66,7 @@ if [ "${CONTAINER_EXISTS}" != "" ] && [ "${CONTINUE}" != "1" ]; then fi # Modify original build-options to allow config file to be mounted in the docker container -BUILD_OPTS="$(echo ${BUILD_OPTS:-} | sed -E 's@\-c\s?([^ ]+)@-c /config@')" +BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" ${DOCKER} build -t pi-gen "${DIR}" if [ "${CONTAINER_EXISTS}" != "" ]; then @@ -73,7 +76,7 @@ if [ "${CONTAINER_EXISTS}" != "" ]; then --volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \ pi-gen \ bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && - cd /pi-gen; ./build.sh ${BUILD_OPTS} ; + cd /pi-gen; ./build.sh ${BUILD_OPTS} && rsync -av work/*/build.log deploy/" & wait "$!" else From 18b945ffb2ed771e7b234af30882f048c27c5e65 Mon Sep 17 00:00:00 2001 From: Kevin Stone Date: Sun, 11 Aug 2019 10:44:00 -0500 Subject: [PATCH 10/63] Moved git-hash determination to passed in build variable (#273) --- build-docker.sh | 5 +++++ build.sh | 2 ++ scripts/common | 3 --- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/build-docker.sh b/build-docker.sh index 3d7634df34..583bf6a175 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -52,6 +52,9 @@ if [ -z "${IMG_NAME}" ]; then exit 1 fi +# Ensure the Git Hash is recorded before entering the docker container +GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} + CONTAINER_EXISTS=$(${DOCKER} ps -a --filter name="${CONTAINER_NAME}" -q) CONTAINER_RUNNING=$(${DOCKER} ps --filter name="${CONTAINER_NAME}" -q) if [ "${CONTAINER_RUNNING}" != "" ]; then @@ -73,6 +76,7 @@ if [ "${CONTAINER_EXISTS}" != "" ]; then trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}_cont' SIGINT SIGTERM time ${DOCKER} run --rm --privileged \ --volume "${CONFIG_FILE}":/config:ro \ + -e "GIT_HASH=${GIT_HASH}" \ --volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \ pi-gen \ bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && @@ -83,6 +87,7 @@ else trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}' SIGINT SIGTERM time ${DOCKER} run --name "${CONTAINER_NAME}" --privileged \ --volume "${CONFIG_FILE}":/config:ro \ + -e "GIT_HASH=${GIT_HASH}" \ pi-gen \ bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && cd /pi-gen; ./build.sh ${BUILD_OPTS} && diff --git a/build.sh b/build.sh index 3e56629d7f..93faf720f9 100755 --- a/build.sh +++ b/build.sh @@ -168,6 +168,8 @@ export WPA_PASSWORD export WPA_COUNTRY export ENABLE_SSH="${ENABLE_SSH:-0}" +export GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} + export BASE_DIR export CLEAN diff --git a/scripts/common b/scripts/common index f264755b34..68fab54ef1 100644 --- a/scripts/common +++ b/scripts/common @@ -94,9 +94,6 @@ on_chroot() { export -f on_chroot update_issue() { - local GIT_HASH - GIT_HASH=$(git rev-parse HEAD) echo -e "Raspberry Pi reference ${IMG_DATE}\nGenerated using ${PI_GEN}, ${PI_GEN_REPO}, ${GIT_HASH}, ${1}" > "${ROOTFS_DIR}/etc/rpi-issue" } export -f update_issue - From 8110eb48916b1ee39c1e4eed6783a5a142814ffd Mon Sep 17 00:00:00 2001 From: Christophe Hurpeau Date: Sun, 11 Aug 2019 17:50:11 +0200 Subject: [PATCH 11/63] Remove unused interfaces file (#322) --- stage1/02-net-tweaks/files/interfaces | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 stage1/02-net-tweaks/files/interfaces diff --git a/stage1/02-net-tweaks/files/interfaces b/stage1/02-net-tweaks/files/interfaces deleted file mode 100644 index 88a8c6adf5..0000000000 --- a/stage1/02-net-tweaks/files/interfaces +++ /dev/null @@ -1,4 +0,0 @@ -auto lo - -iface lo inet loopback -iface eth0 inet dhcp From d1f7a389055eae207009dd1a19d971d4b873b73e Mon Sep 17 00:00:00 2001 From: Joshua Bussdieker Date: Wed, 14 Aug 2019 03:26:55 -0700 Subject: [PATCH 12/63] Support regional config settings (#323) --- README.md | 16 ++++++++++++++++ build.sh | 7 +++++++ stage0/01-locale/00-debconf | 4 ++-- stage2/01-sys-tweaks/00-debconf | 4 ++-- stage2/03-set-timezone/02-run.sh | 2 +- 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f15f07631a..15affd0e26 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,22 @@ The following environment variables are supported: Setting to '1' enables the QEMU mode - creating an image that can be mounted via QEMU for an emulated environment. These images include "-qemu" in the image file name. + * `LOCALE_DEFAULT` (Default: "en_GB.UTF-8" ) + + Default system locale. + + * `KEYBOARD_KEYMAP` (Default: "gb" ) + + Default keyboard keymap. + + * `KEYBOARD_LAYOUT` (Default: "English (UK)" ) + + Default keyboard layout. + + * `TIMEZONE_DEFAULT` (Default: "Europe/London" ) + + Default keyboard layout. + * `FIRST_USER_NAME` (Default: "pi" ) Username for the first user diff --git a/build.sh b/build.sh index 93faf720f9..81ef26f147 100755 --- a/build.sh +++ b/build.sh @@ -168,6 +168,13 @@ export WPA_PASSWORD export WPA_COUNTRY export ENABLE_SSH="${ENABLE_SSH:-0}" +export LOCALE_DEFAULT="${LOCALE_DEFAULT:-en_GB.UTF-8}" + +export KEYBOARD_KEYMAP="${KEYBOARD_KEYMAP:-gb}" +export KEYBOARD_LAYOUT="${KEYBOARD_LAYOUT:-English (UK)}" + +export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}" + export GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} export BASE_DIR diff --git a/stage0/01-locale/00-debconf b/stage0/01-locale/00-debconf index e9d6348a34..b0ad3e4afb 100644 --- a/stage0/01-locale/00-debconf +++ b/stage0/01-locale/00-debconf @@ -1,6 +1,6 @@ # Locales to be generated: # Choices: All locales, aa_DJ ISO-8859-1, aa_DJ.UTF-8 UTF-8, aa_ER UTF-8, aa_ER@saaho UTF-8, aa_ET UTF-8, af_ZA ISO-8859-1, af_ZA.UTF-8 UTF-8, ak_GH UTF-8, am_ET UTF-8, an_ES ISO-8859-15, an_ES.UTF-8 UTF-8, anp_IN UTF-8, ar_AE ISO-8859-6, ar_AE.UTF-8 UTF-8, ar_BH ISO-8859-6, ar_BH.UTF-8 UTF-8, ar_DZ ISO-8859-6, ar_DZ.UTF-8 UTF-8, ar_EG ISO-8859-6, ar_EG.UTF-8 UTF-8, ar_IN UTF-8, ar_IQ ISO-8859-6, ar_IQ.UTF-8 UTF-8, ar_JO ISO-8859-6, ar_JO.UTF-8 UTF-8, ar_KW ISO-8859-6, ar_KW.UTF-8 UTF-8, ar_LB ISO-8859-6, ar_LB.UTF-8 UTF-8, ar_LY ISO-8859-6, ar_LY.UTF-8 UTF-8, ar_MA ISO-8859-6, ar_MA.UTF-8 UTF-8, ar_OM ISO-8859-6, ar_OM.UTF-8 UTF-8, ar_QA ISO-8859-6, ar_QA.UTF-8 UTF-8, ar_SA ISO-8859-6, ar_SA.UTF-8 UTF-8, ar_SD ISO-8859-6, ar_SD.UTF-8 UTF-8, ar_SS UTF-8, ar_SY ISO-8859-6, ar_SY.UTF-8 UTF-8, ar_TN ISO-8859-6, ar_TN.UTF-8 UTF-8, ar_YE ISO-8859-6, ar_YE.UTF-8 UTF-8, as_IN UTF-8, ast_ES ISO-8859-15, ast_ES.UTF-8 UTF-8, ayc_PE UTF-8, az_AZ UTF-8, be_BY CP1251, be_BY.UTF-8 UTF-8, be_BY@latin UTF-8, bem_ZM UTF-8, ber_DZ UTF-8, ber_MA UTF-8, bg_BG CP1251, bg_BG.UTF-8 UTF-8, bho_IN UTF-8, bn_BD UTF-8, bn_IN UTF-8, bo_CN UTF-8, bo_IN UTF-8, br_FR ISO-8859-1, br_FR.UTF-8 UTF-8, br_FR@euro ISO-8859-15, brx_IN UTF-8, bs_BA ISO-8859-2, bs_BA.UTF-8 UTF-8, byn_ER UTF-8, ca_AD ISO-8859-15, ca_AD.UTF-8 UTF-8, ca_ES ISO-8859-1, ca_ES.UTF-8 UTF-8, ca_ES.UTF-8@valencia UTF-8, ca_ES@euro ISO-8859-15, ca_ES@valencia ISO-8859-15, ca_FR ISO-8859-15, ca_FR.UTF-8 UTF-8, ca_IT ISO-8859-15, ca_IT.UTF-8 UTF-8, cmn_TW UTF-8, crh_UA UTF-8, cs_CZ ISO-8859-2, cs_CZ.UTF-8 UTF-8, csb_PL UTF-8, cv_RU UTF-8, cy_GB ISO-8859-14, cy_GB.UTF-8 UTF-8, da_DK ISO-8859-1, da_DK.UTF-8 UTF-8, de_AT ISO-8859-1, de_AT.UTF-8 UTF-8, de_AT@euro ISO-8859-15, de_BE ISO-8859-1, de_BE.UTF-8 UTF-8, de_BE@euro ISO-8859-15, de_CH ISO-8859-1, de_CH.UTF-8 UTF-8, de_DE ISO-8859-1, de_DE.UTF-8 UTF-8, de_DE@euro ISO-8859-15, de_LI.UTF-8 UTF-8, de_LU ISO-8859-1, de_LU.UTF-8 UTF-8, de_LU@euro ISO-8859-15, doi_IN UTF-8, dv_MV UTF-8, dz_BT UTF-8, el_CY ISO-8859-7, el_CY.UTF-8 UTF-8, el_GR ISO-8859-7, el_GR.UTF-8 UTF-8, en_AG UTF-8, en_AU ISO-8859-1, en_AU.UTF-8 UTF-8, en_BW ISO-8859-1, en_BW.UTF-8 UTF-8, en_CA ISO-8859-1, en_CA.UTF-8 UTF-8, en_DK ISO-8859-1, en_DK.ISO-8859-15 ISO-8859-15, en_DK.UTF-8 UTF-8, en_GB ISO-8859-1, en_GB.ISO-8859-15 ISO-8859-15, en_GB.UTF-8 UTF-8, en_HK ISO-8859-1, en_HK.UTF-8 UTF-8, en_IE ISO-8859-1, en_IE.UTF-8 UTF-8, en_IE@euro ISO-8859-15, en_IN UTF-8, en_NG UTF-8, en_NZ ISO-8859-1, en_NZ.UTF-8 UTF-8, en_PH ISO-8859-1, en_PH.UTF-8 UTF-8, en_SG ISO-8859-1, en_SG.UTF-8 UTF-8, en_US ISO-8859-1, en_US.ISO-8859-15 ISO-8859-15, en_US.UTF-8 UTF-8, en_ZA ISO-8859-1, en_ZA.UTF-8 UTF-8, en_ZM UTF-8, en_ZW ISO-8859-1, en_ZW.UTF-8 UTF-8, eo ISO-8859-3, eo.UTF-8 UTF-8, es_AR ISO-8859-1, es_AR.UTF-8 UTF-8, es_BO ISO-8859-1, es_BO.UTF-8 UTF-8, es_CL ISO-8859-1, es_CL.UTF-8 UTF-8, es_CO ISO-8859-1, es_CO.UTF-8 UTF-8, es_CR ISO-8859-1, es_CR.UTF-8 UTF-8, es_CU UTF-8, es_DO ISO-8859-1, es_DO.UTF-8 UTF-8, es_EC ISO-8859-1, es_EC.UTF-8 UTF-8, es_ES ISO-8859-1, es_ES.UTF-8 UTF-8, es_ES@euro ISO-8859-15, es_GT ISO-8859-1, es_GT.UTF-8 UTF-8, es_HN ISO-8859-1, es_HN.UTF-8 UTF-8, es_MX ISO-8859-1, es_MX.UTF-8 UTF-8, es_NI ISO-8859-1, es_NI.UTF-8 UTF-8, es_PA ISO-8859-1, es_PA.UTF-8 UTF-8, es_PE ISO-8859-1, es_PE.UTF-8 UTF-8, es_PR ISO-8859-1, es_PR.UTF-8 UTF-8, es_PY ISO-8859-1, es_PY.UTF-8 UTF-8, es_SV ISO-8859-1, es_SV.UTF-8 UTF-8, es_US ISO-8859-1, es_US.UTF-8 UTF-8, es_UY ISO-8859-1, es_UY.UTF-8 UTF-8, es_VE ISO-8859-1, es_VE.UTF-8 UTF-8, et_EE ISO-8859-1, et_EE.ISO-8859-15 ISO-8859-15, et_EE.UTF-8 UTF-8, eu_ES ISO-8859-1, eu_ES.UTF-8 UTF-8, eu_ES@euro ISO-8859-15, eu_FR ISO-8859-1, eu_FR.UTF-8 UTF-8, eu_FR@euro ISO-8859-15, fa_IR UTF-8, ff_SN UTF-8, fi_FI ISO-8859-1, fi_FI.UTF-8 UTF-8, fi_FI@euro ISO-8859-15, fil_PH UTF-8, fo_FO ISO-8859-1, fo_FO.UTF-8 UTF-8, fr_BE ISO-8859-1, fr_BE.UTF-8 UTF-8, fr_BE@euro ISO-8859-15, fr_CA ISO-8859-1, fr_CA.UTF-8 UTF-8, fr_CH ISO-8859-1, fr_CH.UTF-8 UTF-8, fr_FR ISO-8859-1, fr_FR.UTF-8 UTF-8, fr_FR@euro ISO-8859-15, fr_LU ISO-8859-1, fr_LU.UTF-8 UTF-8, fr_LU@euro ISO-8859-15, fur_IT UTF-8, fy_DE UTF-8, fy_NL UTF-8, ga_IE ISO-8859-1, ga_IE.UTF-8 UTF-8, ga_IE@euro ISO-8859-15, gd_GB ISO-8859-15, gd_GB.UTF-8 UTF-8, gez_ER UTF-8, gez_ER@abegede UTF-8, gez_ET UTF-8, gez_ET@abegede UTF-8, gl_ES ISO-8859-1, gl_ES.UTF-8 UTF-8, gl_ES@euro ISO-8859-15, gu_IN UTF-8, gv_GB ISO-8859-1, gv_GB.UTF-8 UTF-8, ha_NG UTF-8, hak_TW UTF-8, he_IL ISO-8859-8, he_IL.UTF-8 UTF-8, hi_IN UTF-8, hne_IN UTF-8, hr_HR ISO-8859-2, hr_HR.UTF-8 UTF-8, hsb_DE ISO-8859-2, hsb_DE.UTF-8 UTF-8, ht_HT UTF-8, hu_HU ISO-8859-2, hu_HU.UTF-8 UTF-8, hy_AM UTF-8, hy_AM.ARMSCII-8 ARMSCII-8, ia_FR UTF-8, id_ID ISO-8859-1, id_ID.UTF-8 UTF-8, ig_NG UTF-8, ik_CA UTF-8, is_IS ISO-8859-1, is_IS.UTF-8 UTF-8, it_CH ISO-8859-1, it_CH.UTF-8 UTF-8, it_IT ISO-8859-1, it_IT.UTF-8 UTF-8, it_IT@euro ISO-8859-15, iu_CA UTF-8, iw_IL ISO-8859-8, iw_IL.UTF-8 UTF-8, ja_JP.EUC-JP EUC-JP, ja_JP.UTF-8 UTF-8, ka_GE GEORGIAN-PS, ka_GE.UTF-8 UTF-8, kk_KZ PT154, kk_KZ RK1048, kk_KZ.UTF-8 UTF-8, kl_GL ISO-8859-1, kl_GL.UTF-8 UTF-8, km_KH UTF-8, kn_IN UTF-8, ko_KR.EUC-KR EUC-KR, ko_KR.UTF-8 UTF-8, kok_IN UTF-8, ks_IN UTF-8, ks_IN@devanagari UTF-8, ku_TR ISO-8859-9, ku_TR.UTF-8 UTF-8, kw_GB ISO-8859-1, kw_GB.UTF-8 UTF-8, ky_KG UTF-8, lb_LU UTF-8, lg_UG ISO-8859-10, lg_UG.UTF-8 UTF-8, li_BE UTF-8, li_NL UTF-8, lij_IT UTF-8, lo_LA UTF-8, lt_LT ISO-8859-13, lt_LT.UTF-8 UTF-8, lv_LV ISO-8859-13, lv_LV.UTF-8 UTF-8, lzh_TW UTF-8, mag_IN UTF-8, mai_IN UTF-8, mg_MG ISO-8859-15, mg_MG.UTF-8 UTF-8, mhr_RU UTF-8, mi_NZ ISO-8859-13, mi_NZ.UTF-8 UTF-8, mk_MK ISO-8859-5, mk_MK.UTF-8 UTF-8, ml_IN UTF-8, mn_MN UTF-8, mni_IN UTF-8, mr_IN UTF-8, ms_MY ISO-8859-1, ms_MY.UTF-8 UTF-8, mt_MT ISO-8859-3, mt_MT.UTF-8 UTF-8, my_MM UTF-8, nan_TW UTF-8, nan_TW@latin UTF-8, nb_NO ISO-8859-1, nb_NO.UTF-8 UTF-8, nds_DE UTF-8, nds_NL UTF-8, ne_NP UTF-8, nhn_MX UTF-8, niu_NU UTF-8, niu_NZ UTF-8, nl_AW UTF-8, nl_BE ISO-8859-1, nl_BE.UTF-8 UTF-8, nl_BE@euro ISO-8859-15, nl_NL ISO-8859-1, nl_NL.UTF-8 UTF-8, nl_NL@euro ISO-8859-15, nn_NO ISO-8859-1, nn_NO.UTF-8 UTF-8, nr_ZA UTF-8, nso_ZA UTF-8, oc_FR ISO-8859-1, oc_FR.UTF-8 UTF-8, om_ET UTF-8, om_KE ISO-8859-1, om_KE.UTF-8 UTF-8, or_IN UTF-8, os_RU UTF-8, pa_IN UTF-8, pa_PK UTF-8, pap_AN UTF-8, pap_AW UTF-8, pap_CW UTF-8, pl_PL ISO-8859-2, pl_PL.UTF-8 UTF-8, ps_AF UTF-8, pt_BR ISO-8859-1, pt_BR.UTF-8 UTF-8, pt_PT ISO-8859-1, pt_PT.UTF-8 UTF-8, pt_PT@euro ISO-8859-15, quz_PE UTF-8, ro_RO ISO-8859-2, ro_RO.UTF-8 UTF-8, ru_RU ISO-8859-5, ru_RU.CP1251 CP1251, ru_RU.KOI8-R KOI8-R, ru_RU.UTF-8 UTF-8, ru_UA KOI8-U, ru_UA.UTF-8 UTF-8, rw_RW UTF-8, sa_IN UTF-8, sat_IN UTF-8, sc_IT UTF-8, sd_IN UTF-8, sd_IN@devanagari UTF-8, se_NO UTF-8, shs_CA UTF-8, si_LK UTF-8, sid_ET UTF-8, sk_SK ISO-8859-2, sk_SK.UTF-8 UTF-8, sl_SI ISO-8859-2, sl_SI.UTF-8 UTF-8, so_DJ ISO-8859-1, so_DJ.UTF-8 UTF-8, so_ET UTF-8, so_KE ISO-8859-1, so_KE.UTF-8 UTF-8, so_SO ISO-8859-1, so_SO.UTF-8 UTF-8, sq_AL ISO-8859-1, sq_AL.UTF-8 UTF-8, sq_MK UTF-8, sr_ME UTF-8, sr_RS UTF-8, sr_RS@latin UTF-8, ss_ZA UTF-8, st_ZA ISO-8859-1, st_ZA.UTF-8 UTF-8, sv_FI ISO-8859-1, sv_FI.UTF-8 UTF-8, sv_FI@euro ISO-8859-15, sv_SE ISO-8859-1, sv_SE.ISO-8859-15 ISO-8859-15, sv_SE.UTF-8 UTF-8, sw_KE UTF-8, sw_TZ UTF-8, szl_PL UTF-8, ta_IN UTF-8, ta_LK UTF-8, te_IN UTF-8, tg_TJ KOI8-T, tg_TJ.UTF-8 UTF-8, th_TH TIS-620, th_TH.UTF-8 UTF-8, the_NP UTF-8, ti_ER UTF-8, ti_ET UTF-8, tig_ER UTF-8, tk_TM UTF-8, tl_PH ISO-8859-1, tl_PH.UTF-8 UTF-8, tn_ZA UTF-8, tr_CY ISO-8859-9, tr_CY.UTF-8 UTF-8, tr_TR ISO-8859-9, tr_TR.UTF-8 UTF-8, ts_ZA UTF-8, tt_RU UTF-8, tt_RU@iqtelif UTF-8, ug_CN UTF-8, uk_UA KOI8-U, uk_UA.UTF-8 UTF-8, unm_US UTF-8, ur_IN UTF-8, ur_PK UTF-8, uz_UZ ISO-8859-1, uz_UZ.UTF-8 UTF-8, uz_UZ@cyrillic UTF-8, ve_ZA UTF-8, vi_VN UTF-8, wa_BE ISO-8859-1, wa_BE.UTF-8 UTF-8, wa_BE@euro ISO-8859-15, wae_CH UTF-8, wal_ET UTF-8, wo_SN UTF-8, xh_ZA ISO-8859-1, xh_ZA.UTF-8 UTF-8, yi_US CP1255, yi_US.UTF-8 UTF-8, yo_NG UTF-8, yue_HK UTF-8, zh_CN GB2312, zh_CN.GB18030 GB18030, zh_CN.GBK GBK, zh_CN.UTF-8 UTF-8, zh_HK BIG5-HKSCS, zh_HK.UTF-8 UTF-8, zh_SG GB2312, zh_SG.GBK GBK, zh_SG.UTF-8 UTF-8, zh_TW BIG5, zh_TW.EUC-TW EUC-TW, zh_TW.UTF-8 UTF-8, zu_ZA ISO-8859-1, zu_ZA.UTF-8 UTF-8 -locales locales/locales_to_be_generated multiselect en_GB.UTF-8 UTF-8 +locales locales/locales_to_be_generated multiselect ${LOCALE_DEFAULT} UTF-8 # Default locale for the system environment: # Choices: None, C.UTF-8, en_GB.UTF-8 -locales locales/default_environment_locale select en_GB.UTF-8 +locales locales/default_environment_locale select ${LOCALE_DEFAULT} diff --git a/stage2/01-sys-tweaks/00-debconf b/stage2/01-sys-tweaks/00-debconf index 96aa9b0882..c13e3b1949 100644 --- a/stage2/01-sys-tweaks/00-debconf +++ b/stage2/01-sys-tweaks/00-debconf @@ -15,7 +15,7 @@ keyboard-configuration keyboard-configuration/altgr select The default for the k keyboard-configuration keyboard-configuration/model select Generic 105-key (Intl) PC # Keymap to use: # Choices: American English, Albanian, Arabic, Asturian, Bangladesh, Belarusian, Bengali, Belgian, Bosnian, Brazilian, British English, Bulgarian, Bulgarian (phonetic layout), Burmese, Canadian French, Canadian Multilingual, Catalan, Chinese, Croatian, Czech, Danish, Dutch, Dvorak, Dzongkha, Esperanto, Estonian, Ethiopian, Finnish, French, Georgian, German, Greek, Gujarati, Gurmukhi, Hebrew, Hindi, Hungarian, Icelandic, Irish, Italian, Japanese, Kannada, Kazakh, Khmer, Kirghiz, Korean, Kurdish (F layout), Kurdish (Q layout), Lao, Latin American, Latvian, Lithuanian, Macedonian, Malayalam, Nepali, Northern Sami, Norwegian, Persian, Philippines, Polish, Portuguese, Punjabi, Romanian, Russian, Serbian (Cyrillic), Sindhi, Sinhala, Slovak, Slovenian, Spanish, Swedish, Swiss French, Swiss German, Tajik, Tamil, Telugu, Thai, Tibetan, Turkish (F layout), Turkish (Q layout), Ukrainian, Uyghur, Vietnamese -keyboard-configuration keyboard-configuration/xkb-keymap select gb +keyboard-configuration keyboard-configuration/xkb-keymap select ${KEYBOARD_KEYMAP} # Compose key: # Choices: No compose key, Right Alt (AltGr), Right Control, Right Logo key, Menu key, Left Logo key, Caps Lock keyboard-configuration keyboard-configuration/compose select No compose key @@ -23,4 +23,4 @@ keyboard-configuration keyboard-configuration/compose select No compose key keyboard-configuration keyboard-configuration/ctrl_alt_bksp boolean true # Keyboard layout: # Choices: English (UK), English (UK) - English (UK\, Colemak), English (UK) - English (UK\, Dvorak with UK punctuation), English (UK) - English (UK\, Dvorak), English (UK) - English (UK\, Macintosh international), English (UK) - English (UK\, Macintosh), English (UK) - English (UK\, extended WinKeys), English (UK) - English (UK\, international with dead keys), Other -keyboard-configuration keyboard-configuration/variant select English (UK) +keyboard-configuration keyboard-configuration/variant select ${KEYBOARD_LAYOUT} diff --git a/stage2/03-set-timezone/02-run.sh b/stage2/03-set-timezone/02-run.sh index 67cbfd3afe..96b22c7f4e 100755 --- a/stage2/03-set-timezone/02-run.sh +++ b/stage2/03-set-timezone/02-run.sh @@ -1,6 +1,6 @@ #!/bin/bash -e -echo "Europe/London" > "${ROOTFS_DIR}/etc/timezone" +echo "${TIMEZONE_DEFAULT}" > "${ROOTFS_DIR}/etc/timezone" rm "${ROOTFS_DIR}/etc/localtime" on_chroot << EOF From 28f344144c78a0d9fbe8371c9b6f3bd231fec25f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 12 Aug 2019 11:14:35 +0100 Subject: [PATCH 13/63] stage5: add scratch3 --- export-noobs/00-release/files/release_notes.txt | 1 + stage5/00-install-extras/00-packages | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 8a7f2c8ac3..92971cdc7b 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,6 +1,7 @@ UNRELEASED: * Epiphany/Web removed * ntfs-3g included + * Scratch 3 added to full image 2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages index 9d6a6682df..0deac8384d 100644 --- a/stage5/00-install-extras/00-packages +++ b/stage5/00-install-extras/00-packages @@ -1,6 +1,6 @@ mu-editor sonic-pi -scratch nuscratch scratch2 +scratch nuscratch scratch2 scratch3 smartsim minecraft-pi python-minecraftpi From c1ff2b1cacf52d6092b92be77a47481d11ead486 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 12 Aug 2019 11:15:58 +0100 Subject: [PATCH 14/63] stage4: rename thonny package --- stage4/00-install-packages/00-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stage4/00-install-packages/00-packages b/stage4/00-install-packages/00-packages index aac5493406..7dadd73061 100644 --- a/stage4/00-install-packages/00-packages +++ b/stage4/00-install-packages/00-packages @@ -1,5 +1,5 @@ python python3-pygame python-pygame python-tk -python3 python3-tk python3-thonny +python3 python3-tk thonny python3-pgzero python-serial python3-serial python-picamera python3-picamera From a016561600292047971b65d034f0e6eaeadd1122 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 7 May 2019 17:51:18 +0100 Subject: [PATCH 15/63] export-image: Remove interfaces.dpkg-old --- export-image/04-finalise/01-run.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/export-image/04-finalise/01-run.sh b/export-image/04-finalise/01-run.sh index 9215dec550..c2de08055c 100755 --- a/export-image/04-finalise/01-run.sh +++ b/export-image/04-finalise/01-run.sh @@ -49,6 +49,8 @@ find "${ROOTFS_DIR}/var/log/" -type f -exec cp /dev/null {} \; rm -f "${ROOTFS_DIR}/root/.vnc/private.key" rm -f "${ROOTFS_DIR}/etc/vnc/updateid" +rm -f "${ROOTFS_DIR}/etc/network/interfaces.dpkg-old" + update_issue "$(basename "${EXPORT_DIR}")" install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/issue.txt" From c49261d7567f2548af28aa3f3262c017b2f44f4f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 3 Jun 2019 11:31:29 +0100 Subject: [PATCH 16/63] stage2: install pciutils --- export-noobs/00-release/files/release_notes.txt | 1 + stage2/01-sys-tweaks/00-packages | 1 + 2 files changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 92971cdc7b..b507576f4a 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -2,6 +2,7 @@ UNRELEASED: * Epiphany/Web removed * ntfs-3g included * Scratch 3 added to full image + * pciutils added 2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index 6ed90e6518..f370556337 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -26,3 +26,4 @@ rng-tools ethtool vl805fw ntfs-3g +pciutils From 77833ba929734536ce257b7dbdd39ee7336903bb Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 3 Jun 2019 11:32:22 +0100 Subject: [PATCH 17/63] cmdline.txt: remove dwc_otg.lpm_enable=0 --- stage1/00-boot-files/files/cmdline.txt | 2 +- stage2/01-sys-tweaks/00-patches/07-resize-init.diff | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/stage1/00-boot-files/files/cmdline.txt b/stage1/00-boot-files/files/cmdline.txt index 2b0634bf04..b815bd89db 100644 --- a/stage1/00-boot-files/files/cmdline.txt +++ b/stage1/00-boot-files/files/cmdline.txt @@ -1 +1 @@ -dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait +console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait diff --git a/stage2/01-sys-tweaks/00-patches/07-resize-init.diff b/stage2/01-sys-tweaks/00-patches/07-resize-init.diff index 07016415e8..8c41357e8f 100644 --- a/stage2/01-sys-tweaks/00-patches/07-resize-init.diff +++ b/stage2/01-sys-tweaks/00-patches/07-resize-init.diff @@ -1,5 +1,5 @@ ---- a/rootfs/boot/cmdline.txt -+++ b/rootfs/boot/cmdline.txt +--- stage2.orig/rootfs/boot/cmdline.txt ++++ stage2/rootfs/boot/cmdline.txt @@ -1 +1 @@ --dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait -+dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh +-console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ++console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh From e8460beb3b2698b7f4c3bb04e03237ee7f8944e0 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 14 Aug 2019 15:54:50 +0100 Subject: [PATCH 18/63] Revert "export-image: Remove interfaces.dpkg-old" This reverts commit a016561600292047971b65d034f0e6eaeadd1122. --- export-image/04-finalise/01-run.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/export-image/04-finalise/01-run.sh b/export-image/04-finalise/01-run.sh index c2de08055c..9215dec550 100755 --- a/export-image/04-finalise/01-run.sh +++ b/export-image/04-finalise/01-run.sh @@ -49,8 +49,6 @@ find "${ROOTFS_DIR}/var/log/" -type f -exec cp /dev/null {} \; rm -f "${ROOTFS_DIR}/root/.vnc/private.key" rm -f "${ROOTFS_DIR}/etc/vnc/updateid" -rm -f "${ROOTFS_DIR}/etc/network/interfaces.dpkg-old" - update_issue "$(basename "${EXPORT_DIR}")" install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/issue.txt" From 00c22ab57e4de6a17fd3e9d142426838ec17d36b Mon Sep 17 00:00:00 2001 From: Russ Kubes Date: Tue, 27 Aug 2019 12:16:24 -0500 Subject: [PATCH 19/63] Updated export-image to not depend on fake-hwclock and hardlink. (#326) --- export-image/04-finalise/01-run.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/export-image/04-finalise/01-run.sh b/export-image/04-finalise/01-run.sh index 9215dec550..0864639b23 100755 --- a/export-image/04-finalise/01-run.sh +++ b/export-image/04-finalise/01-run.sh @@ -4,8 +4,12 @@ IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info" on_chroot << EOF -/etc/init.d/fake-hwclock stop -hardlink -t /usr/share/doc +if [ -x /etc/init.d/fake-hwclock ]; then + /etc/init.d/fake-hwclock stop +fi +if hash hardlink 2>/dev/null; then + hardlink -t /usr/share/doc +fi EOF if [ -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" ]; then From d1ed4a2982fc37fbd69e71cdc408dfa174f66b84 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 18 Sep 2019 14:53:35 +0100 Subject: [PATCH 20/63] Include rpi-eeprom --- export-noobs/00-release/files/release_notes.txt | 1 + stage2/01-sys-tweaks/00-packages | 1 + 2 files changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index b507576f4a..b167c77de3 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,5 @@ UNRELEASED: + * rpi-eeprom included * Epiphany/Web removed * ntfs-3g included * Scratch 3 added to full image diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index f370556337..16b9350f36 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -27,3 +27,4 @@ ethtool vl805fw ntfs-3g pciutils +rpi-eeprom From 652780757be196ac7292a9e1d3a8182a2b6c0de2 Mon Sep 17 00:00:00 2001 From: fpicalausa Date: Mon, 23 Sep 2019 18:11:58 +0900 Subject: [PATCH 21/63] Update config.txt to replace lirc-rpi with gpio-ir (#328) The example for enabling IR transmission in `/boot/config.txt` is still using the deprecated `lirc-rpi` overlay. The documentation in `/boot/overlays/README` indicates that this overlay has been deprecated in favor of `gpio-ir` / `gpio-ir-tx`. This updates the actual config.txt to suggest `gpio-ir` instead of `lirc-rpi`. --- stage1/00-boot-files/files/config.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stage1/00-boot-files/files/config.txt b/stage1/00-boot-files/files/config.txt index 578d736c9f..548f4accc2 100644 --- a/stage1/00-boot-files/files/config.txt +++ b/stage1/00-boot-files/files/config.txt @@ -47,8 +47,9 @@ #dtparam=i2s=on #dtparam=spi=on -# Uncomment this to enable the lirc-rpi module -#dtoverlay=lirc-rpi +# Uncomment this to enable infrared communication. +#dtoverlay=gpio-ir,gpio_pin=17 +#dtoverlay=gpio-ir-tx,gpio_pin=18 # Additional overlays and parameters are documented /boot/overlays/README From 6538d5babff4e684e986eaee723cce107b5c37c3 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 23 Sep 2019 09:52:35 +0100 Subject: [PATCH 22/63] Update release notes --- .../00-release/files/release_notes.txt | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index b167c77de3..ba260bc307 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,9 +1,44 @@ UNRELEASED: + * New icon theme for file manager icons + * Appearance Settings - option for identical desktop on both monitors + * Appearance Settings - option to show different desktop icons on both monitors + * Taskbar automatically moved to monitor 0 if monitor 1 not found at boot + * Switching of audio output between two HDMI devices added to volume plugin + * Switching of audio input devices added to volume plugin + * .asoundrc (ALSA config file) now uses 'plug' values to support more devices + * Audio Settings tool modified to integrate more closely with volume plugin to reduce duplicated code + * Screen Configuration tool now shows separate menus for resolution and refresh rate + * Primary and active monitor settings removed from Screen Configuration tool + * Overscan support added for FKMS driver + * New keyboard shortcuts added - Ctrl-Alt-End brings up shutdown menu; Ctrl-Alt-M moves taskbar between monitors + * Latest changes to Bluez ALSA interface integrated to improve connection to Bluetooth audio devices + * Version 3.2 of Thonny added + * Version 74 of Chromium added + * Version 3.0.8 of VLC added + * Version 32.0.0.255 of Flash player added + * Version 6.5.0 of RealVNC Server added + * Version 6.19.715 of RealVNC Viewer added (full image only) + * Version 12.0.1 of Mathematica added (full image only) + * Version 0.20.8 of NodeRED added (full image only) + * Version 3.1.0 of Sonic Pi added (full image only) + * Scratch 3 added (full image only) + * Bug fix - URL handling in Terminal + * Bug fix - octal values in SSIDs in network plugin + * Bug fix - remaining value in progress bar when transferring files + * Bug fix - integration of xarchiver tool with file manager + * Bug fix - start menu opening on incorrect monitor + * Bug fix - minimised applications wrongly displayed on taskbar on second monitor + * Bug fix - Bluetooth icon disappearing on x86 platforms when Bluetooth turned off + * Bug fix - Screen Configuration tool not shown on x86 platforms and settings not being saved + * Various translation updates + * Various minor bug fixes * rpi-eeprom included * Epiphany/Web removed * ntfs-3g included * Scratch 3 added to full image * pciutils added + * Linux kernel 4.19.71 + * Raspberry Pi firmware 04ddd4957d470528d7b26ea00a37d8fe2f1e2db7 2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor From 946f164006148648cc6195f4cae7a7f2d6da6f88 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 24 Sep 2019 15:57:09 +0100 Subject: [PATCH 23/63] stage3: Mousepad used as simple text editor instead of leafpad --- export-noobs/00-release/files/release_notes.txt | 1 + stage3/00-install-packages/00-packages-nr | 1 + 2 files changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index ba260bc307..c0899f73f4 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -12,6 +12,7 @@ UNRELEASED: * Overscan support added for FKMS driver * New keyboard shortcuts added - Ctrl-Alt-End brings up shutdown menu; Ctrl-Alt-M moves taskbar between monitors * Latest changes to Bluez ALSA interface integrated to improve connection to Bluetooth audio devices + * Mousepad used as simple text editor instead of leafpad * Version 3.2 of Thonny added * Version 74 of Chromium added * Version 3.0.8 of VLC added diff --git a/stage3/00-install-packages/00-packages-nr b/stage3/00-install-packages/00-packages-nr index ebbbd16aa1..ffc324bf4a 100644 --- a/stage3/00-install-packages/00-packages-nr +++ b/stage3/00-install-packages/00-packages-nr @@ -1,4 +1,5 @@ xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg-video-fbturbo +mousepad lxde lxtask menu-xdg zenity xdg-utils gvfs-backends gvfs-fuse From 99f702f0ffc3461bd5ace466ba69de08307799bb Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Wed, 25 Sep 2019 14:46:38 +0200 Subject: [PATCH 24/63] Use parted for partitioning (#285) Previously, fdisk was used by sending commands into its stdin, which is not very robust (since it heavily relies on the interactive prompts offered by fdisk as well as the default values it offers, which seem prone to changing in future version). It seems likely that in the past, fdisk was easier than parted since it provides default values that make it easier to create adjacent partitions, without precalculating all positions in the script. However now that partitions are manually being aligned, all data must be calculated anyway. This commit changes the partition generation to use parted rather than fdisk. For this, it rewrites various calculations and renames variables to be easier to read as well. All values are now in number of bytes, rather than mixing bytes and sectors. This commit also makes makes sure that the boot partition and root partition are always adjacent (previously the root partition was aligned without also rounding the boot partition size, leaving some empty space in between). As a side effect of using parted, this also causes the "bootcode" part of the MBR to be filled with some default x86 bootcode. This is totally irrelevant for booting the Raspberry Pi, but it does prevent triggering a bug in parted. When using parted to change the partition table (e.g. when resizing the root partition on first boot by raspi-config's init_resize.sh), the disk identifier would be changed due to this bug, which would change the PARTUUID of all partitions. The init_resize.sh script would work around this by updating the PARTUUID in e.g. fstab, but that's fragile at best. This commit prevents the bug from triggering and keeps the disk identifier the same. See https://debbugs.gnu.org/35714 for details about this parted bug. This commit fixes #284. --- export-image/prerun.sh | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/export-image/prerun.sh b/export-image/prerun.sh index ea1e2d67af..cecde32bed 100755 --- a/export-image/prerun.sh +++ b/export-image/prerun.sh @@ -10,32 +10,27 @@ rm -rf "${ROOTFS_DIR}" mkdir -p "${ROOTFS_DIR}" BOOT_SIZE="$((256 * 1024 * 1024))" -TOTAL_SIZE=$(du --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --block-size=1 | cut -f 1) - -ROUND_SIZE="$((4 * 1024 * 1024))" -ROUNDED_ROOT_SECTOR=$(((BOOT_SIZE + ROUND_SIZE) / ROUND_SIZE * ROUND_SIZE / 512 + 8192)) -IMG_SIZE=$(((BOOT_SIZE + TOTAL_SIZE + (800 * 1024 * 1024) + ROUND_SIZE - 1) / ROUND_SIZE * ROUND_SIZE)) +ROOT_SIZE=$(du --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot --block-size=1 | cut -f 1) + +# All partition sizes and starts will be aligned to this size +ALIGN="$((4 * 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 +# image. +ROOT_MARGIN=$((800*1024*1024)) + +BOOT_PART_START=$((ALIGN)) +BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN)) +ROOT_PART_START=$((BOOT_PART_START + BOOT_PART_SIZE)) +ROOT_PART_SIZE=$(((ROOT_SIZE + ROOT_MARGIN + ALIGN - 1) / ALIGN * ALIGN)) +IMG_SIZE=$((BOOT_PART_START + BOOT_PART_SIZE + ROOT_PART_SIZE)) truncate -s "${IMG_SIZE}" "${IMG_FILE}" -fdisk -H 255 -S 63 "${IMG_FILE}" < Date: Wed, 25 Sep 2019 15:06:49 +0100 Subject: [PATCH 25/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index c0899f73f4..7441d4adea 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,7 @@ UNRELEASED: + * rpi-eeprom included + - This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version. + See https://rpf.io/eeprom for more information. * New icon theme for file manager icons * Appearance Settings - option for identical desktop on both monitors * Appearance Settings - option to show different desktop icons on both monitors @@ -33,10 +36,8 @@ UNRELEASED: * Bug fix - Screen Configuration tool not shown on x86 platforms and settings not being saved * Various translation updates * Various minor bug fixes - * rpi-eeprom included * Epiphany/Web removed * ntfs-3g included - * Scratch 3 added to full image * pciutils added * Linux kernel 4.19.71 * Raspberry Pi firmware 04ddd4957d470528d7b26ea00a37d8fe2f1e2db7 From 80d486687ea77d31fc3fc13cf3a2f8b464e129be Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 25 Sep 2019 19:26:16 +0100 Subject: [PATCH 26/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 7441d4adea..fe56c58421 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -39,8 +39,8 @@ UNRELEASED: * Epiphany/Web removed * ntfs-3g included * pciutils added - * Linux kernel 4.19.71 - * Raspberry Pi firmware 04ddd4957d470528d7b26ea00a37d8fe2f1e2db7 + * Linux kernel 4.19.75 + * Raspberry Pi firmware 01508e81ec1e918448227ca864616d56c430b46d 2019-07-10: * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration * Option added to Appearance Settings to move taskbar to second monitor From 8026d9dc8f1675c9fddfa6e714ee4c4df75de502 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 14 Oct 2019 10:54:20 +0100 Subject: [PATCH 27/63] Update changelog --- export-noobs/00-release/files/release_notes.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index fe56c58421..45e8576fc6 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,6 @@ UNRELEASED: + * +2019-09-26: * rpi-eeprom included - This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version. See https://rpf.io/eeprom for more information. From 336ff2107e51092ec58639f180a6fce89a01fa61 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sun, 13 Oct 2019 19:57:50 +0200 Subject: [PATCH 28/63] Document how to get values for the localization values --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 15affd0e26..33f085e01e 100644 --- a/README.md +++ b/README.md @@ -86,14 +86,25 @@ The following environment variables are supported: Default keyboard keymap. + To get the current value from a running system, run `debconf-show + keyboard-configuration` and look at the + `keyboard-configuration/xkb-keymap` value. + * `KEYBOARD_LAYOUT` (Default: "English (UK)" ) Default keyboard layout. + To get the current value from a running system, run `debconf-show + keyboard-configuration` and look at the + `keyboard-configuration/variant` value. + * `TIMEZONE_DEFAULT` (Default: "Europe/London" ) Default keyboard layout. + To get the current value from a running system, look in + `/etc/timezone`. + * `FIRST_USER_NAME` (Default: "pi" ) Username for the first user From 19c0188798f39149e5a82f70a3f96b96cfdaa7d9 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 30 Oct 2019 13:23:35 +0000 Subject: [PATCH 29/63] Ensure debootstrap runs through 'sh' rather than 'bash' This fixes #338 and fixes #294 --- scripts/common | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/common b/scripts/common index 68fab54ef1..e2048d904f 100644 --- a/scripts/common +++ b/scripts/common @@ -17,8 +17,9 @@ bootstrap(){ BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") BOOTSTRAP_ARGS+=("$@") + printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" - setarch linux32 capsh --drop=cap_setfcap -- "${BOOTSTRAP_CMD}" "${BOOTSTRAP_ARGS[@]}" || true + setarch linux32 capsh --drop=cap_setfcap -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true if [ -d "$2/debootstrap" ]; then rmdir "$2/debootstrap" From d30343f626916a5b6f23cec67df919bd5a5b643a Mon Sep 17 00:00:00 2001 From: Rene Klootwijk Date: Sat, 26 Oct 2019 12:49:30 +0200 Subject: [PATCH 30/63] Added hostname parameter --- README.md | 6 +++++- build.sh | 2 ++ stage1/02-net-tweaks/00-run.sh | 2 +- stage1/02-net-tweaks/files/hostname | 1 - 4 files changed, 8 insertions(+), 3 deletions(-) delete mode 100644 stage1/02-net-tweaks/files/hostname diff --git a/README.md b/README.md index 33f085e01e..e131ca48f9 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ The following environment variables are supported: be built and cached. Note, `WORK_DIR` stores a complete copy of the target system for each build stage, amounting to tens of gigabytes in the case of Raspbian. - + **CAUTION**: If your working directory is on an NTFS partition you probably won't be able to build. Make sure this is a proper Linux filesystem. * `DEPLOY_DIR` (Default: `"$BASE_DIR/deploy"`) @@ -82,6 +82,10 @@ The following environment variables are supported: Default system locale. + * `HOSTNAME` (Default: "raspberrypi" ) + + Setting the hostname to the specified value. + * `KEYBOARD_KEYMAP` (Default: "gb" ) Default keyboard keymap. diff --git a/build.sh b/build.sh index 81ef26f147..a730e44285 100755 --- a/build.sh +++ b/build.sh @@ -161,6 +161,8 @@ export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"} export DEPLOY_ZIP="${DEPLOY_ZIP:-1}" export LOG_FILE="${WORK_DIR}/build.log" +export HOSTNAME=${HOSTNAME:-raspberrypi} + export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} export WPA_ESSID diff --git a/stage1/02-net-tweaks/00-run.sh b/stage1/02-net-tweaks/00-run.sh index a49b4b055c..8637edc4cc 100755 --- a/stage1/02-net-tweaks/00-run.sh +++ b/stage1/02-net-tweaks/00-run.sh @@ -1,5 +1,5 @@ #!/bin/bash -e -install -m 644 files/hostname "${ROOTFS_DIR}/etc/hostname" +echo "${HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname" ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link" diff --git a/stage1/02-net-tweaks/files/hostname b/stage1/02-net-tweaks/files/hostname deleted file mode 100644 index 41757af4a7..0000000000 --- a/stage1/02-net-tweaks/files/hostname +++ /dev/null @@ -1 +0,0 @@ -raspberrypi From 95ba042c8393682eecab36e6c7056a28c5cafed4 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 6 Nov 2019 14:33:07 +0000 Subject: [PATCH 31/63] Add hostname to /etc/hosts --- stage1/02-net-tweaks/00-patches/01-hosts.diff | 9 --------- stage1/02-net-tweaks/00-patches/series | 1 - stage1/02-net-tweaks/00-run.sh | 1 + 3 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 stage1/02-net-tweaks/00-patches/01-hosts.diff delete mode 100644 stage1/02-net-tweaks/00-patches/series diff --git a/stage1/02-net-tweaks/00-patches/01-hosts.diff b/stage1/02-net-tweaks/00-patches/01-hosts.diff deleted file mode 100644 index ad07ae586a..0000000000 --- a/stage1/02-net-tweaks/00-patches/01-hosts.diff +++ /dev/null @@ -1,9 +0,0 @@ -Index: jessie-stage1/rootfs/etc/hosts -=================================================================== ---- jessie-stage1.orig/rootfs/etc/hosts -+++ jessie-stage1/rootfs/etc/hosts -@@ -3,3 +3,4 @@ - ff02::1 ip6-allnodes - ff02::2 ip6-allrouters - -+127.0.1.1 raspberrypi diff --git a/stage1/02-net-tweaks/00-patches/series b/stage1/02-net-tweaks/00-patches/series deleted file mode 100644 index 3dc19a258e..0000000000 --- a/stage1/02-net-tweaks/00-patches/series +++ /dev/null @@ -1 +0,0 @@ -01-hosts.diff diff --git a/stage1/02-net-tweaks/00-run.sh b/stage1/02-net-tweaks/00-run.sh index 8637edc4cc..fc9e7638ee 100755 --- a/stage1/02-net-tweaks/00-run.sh +++ b/stage1/02-net-tweaks/00-run.sh @@ -1,5 +1,6 @@ #!/bin/bash -e echo "${HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname" +echo "127.0.1.1 ${HOSTNAME}" >> "${ROOTFS_DIR}/etc/hosts" ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link" From a449c75facc8b373eab7cf4f884f5a3d45028478 Mon Sep 17 00:00:00 2001 From: snoe925 Date: Mon, 11 Nov 2019 12:23:58 -0600 Subject: [PATCH 32/63] OS X does not have realpath (#342) Check that realpath is present. OS X doesn't have realpath. The RPi builds on Docker for Mac if you increase the VM size. I am using 256G for my image. See the Docker for Mac preferences. --- build-docker.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build-docker.sh b/build-docker.sh index 583bf6a175..79b68d45e1 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -31,7 +31,9 @@ do done # Ensure that the configuration file is an absolute path -CONFIG_FILE=$(realpath -s "$CONFIG_FILE") +if test -x /usr/bin/realpath; then + CONFIG_FILE=$(realpath -s "$CONFIG_FILE") +fi # Ensure that the confguration file is present if test -z "${CONFIG_FILE}"; then From 7f143a185e891055ef2580b68750ade8c7cdaad5 Mon Sep 17 00:00:00 2001 From: Leander Date: Mon, 18 Nov 2019 14:32:16 +0100 Subject: [PATCH 33/63] Export base directory before loading config file (#347) --- build.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index a730e44285..d93d4dc91c 100755 --- a/build.sh +++ b/build.sh @@ -122,6 +122,8 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi +BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"} +export BASE_DIR if [ -f config ]; then # shellcheck disable=SC1091 @@ -154,7 +156,6 @@ export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}" export IMG_FILENAME="${IMG_FILENAME:-"${IMG_DATE}-${IMG_NAME}"}" export ZIP_FILENAME="${ZIP_FILENAME:-"image_${IMG_DATE}-${IMG_NAME}"}" -BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" export SCRIPT_DIR="${BASE_DIR}/scripts" export WORK_DIR="${WORK_DIR:-"${BASE_DIR}/work/${IMG_DATE}-${IMG_NAME}"}" export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"} @@ -179,8 +180,6 @@ export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}" export GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} -export BASE_DIR - export CLEAN export IMG_NAME export APT_PROXY From 5e190333878c45695990a861092991bb5c2cfd15 Mon Sep 17 00:00:00 2001 From: Leander Date: Mon, 18 Nov 2019 15:38:54 +0100 Subject: [PATCH 34/63] Remove accidental trailing brace (#348) --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index d93d4dc91c..b806562d4d 100755 --- a/build.sh +++ b/build.sh @@ -122,7 +122,7 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi -BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"} +BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" export BASE_DIR if [ -f config ]; then From 5456c3801fc7ef99d1563cd54e581cb9b3d54c4a Mon Sep 17 00:00:00 2001 From: Leander Date: Tue, 26 Nov 2019 16:03:48 +0100 Subject: [PATCH 35/63] Explicitly check if postrun script exists in BASE_DIR (#351) --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index b806562d4d..a396b060f1 100755 --- a/build.sh +++ b/build.sh @@ -247,7 +247,7 @@ for EXPORT_DIR in ${EXPORT_DIRS}; do fi done -if [ -x postrun.sh ]; then +if [ -x ${BASE_DIR}/postrun.sh ]; then log "Begin postrun.sh" cd "${BASE_DIR}" ./postrun.sh From d7c1ae21cafc0fd32a907db7de2b9c13ef12d76f Mon Sep 17 00:00:00 2001 From: RaspberryPiFan <49343974+RaspberryPiFan@users.noreply.github.com> Date: Tue, 26 Nov 2019 16:49:49 +0100 Subject: [PATCH 36/63] New types of images. (#352) --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e131ca48f9..7a272f1860 100644 --- a/README.md +++ b/README.md @@ -277,14 +277,13 @@ maintenance and allows for more easy customization. enhancements, etc. This is a base desktop system, with some development tools installed. - - **Stage 4** - Raspbian system meant to fit on a 4GB card. More development + - **Stage 4** - Normal Raspbian image. System meant to fit on a 4GB card. More development tools, an email client, learning tools like Scratch, specialized packages like sonic-pi, system documentation, office productivity, etc. This is the stage that installs all of the things that make Raspbian friendly to new users. - - **Stage 5** - The official Raspbian Desktop image. Right now only adds - Mathematica. + - **Stage 5** - The Raspbian Full image. ### Stage specification From 8bdbbfb099ecac884a901572d126b0fe47de5d95 Mon Sep 17 00:00:00 2001 From: RaspberryPiFan <49343974+RaspberryPiFan@users.noreply.github.com> Date: Wed, 27 Nov 2019 17:11:20 +0100 Subject: [PATCH 37/63] Added stage 5 to the text (#353) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a272f1860..83dd2ad1d7 100644 --- a/README.md +++ b/README.md @@ -291,7 +291,7 @@ If you wish to build up to a specified stage (such as building up to stage 2 for a lite system), place an empty file named `SKIP` in each of the `./stage` directories you wish not to include. -Then add an empty file named `SKIP_IMAGES` to `./stage4` (if building up to stage 2) or +Then add an empty file named `SKIP_IMAGES` to `./stage4` and `./stage5` (if building up to stage 2) or to `./stage2` (if building a minimal system). ```bash From 18c3cebe94c99daf80dcdeaa8bc0f9202de3a943 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Thu, 5 Dec 2019 16:08:04 +0100 Subject: [PATCH 38/63] configure unprotected wifi when WPA_PASSWORD is unset (#357) --- README.md | 2 +- stage2/02-net-tweaks/01-run.sh | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 83dd2ad1d7..7ad31db4c2 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ The following environment variables are supported: * `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset) - If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot. + If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. * `ENABLE_SSH` (Default: `0`) diff --git a/stage2/02-net-tweaks/01-run.sh b/stage2/02-net-tweaks/01-run.sh index 3ba2ef9e01..154e515094 100755 --- a/stage2/02-net-tweaks/01-run.sh +++ b/stage2/02-net-tweaks/01-run.sh @@ -14,6 +14,14 @@ if [ -v WPA_ESSID ] && [ -v WPA_PASSWORD ]; then on_chroot <> "/etc/wpa_supplicant/wpa_supplicant.conf" EOF +elif [ -v WPA_ESSID ]; then +cat >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" << EOL + +network={ + ssid="${WPA_ESSID}" + key_mgmt=NONE +} +EOL fi # Disable wifi on 5GHz models From 32353a162bfaecc41b6ef218b919ef82a0295e71 Mon Sep 17 00:00:00 2001 From: RaspberryPiFan <49343974+RaspberryPiFan@users.noreply.github.com> Date: Mon, 9 Dec 2019 12:57:26 +0100 Subject: [PATCH 39/63] Updated info about stage4 and stage5 (#359) --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7ad31db4c2..1f8524bdbd 100644 --- a/README.md +++ b/README.md @@ -277,13 +277,13 @@ maintenance and allows for more easy customization. enhancements, etc. This is a base desktop system, with some development tools installed. - - **Stage 4** - Normal Raspbian image. System meant to fit on a 4GB card. More development - tools, an email client, learning tools like Scratch, specialized packages - like sonic-pi, system documentation, office productivity, etc. This is the - stage that installs all of the things that make Raspbian friendly to new - users. + - **Stage 4** - Normal Raspbian image. System meant to fit on a 4GB card. This is the + stage that installs most things that make Raspbian friendly to new + users like system documentation. - - **Stage 5** - The Raspbian Full image. + - **Stage 5** - The Raspbian Full image. More development + tools, an email client, learning tools like Scratch, specialized packages + like sonic-pi, office productivity, etc. ### Stage specification From 9d15c0f7d1d01ba65fac1d5f7ebdbcfdfb02bbed Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Thu, 12 Dec 2019 11:15:17 +0100 Subject: [PATCH 40/63] move picraft to stage where minecraft is installed (#362) --- stage4/00-install-packages/00-packages | 1 - stage5/00-install-extras/00-packages | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/stage4/00-install-packages/00-packages b/stage4/00-install-packages/00-packages index 7dadd73061..f9f5ef4395 100644 --- a/stage4/00-install-packages/00-packages +++ b/stage4/00-install-packages/00-packages @@ -18,7 +18,6 @@ python-spidev python3-spidev python-twython python3-twython python-smbus python3-smbus python-flask python3-flask -python-picraft python3-picraft pprompt piwiz rp-prefapps diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages index 0deac8384d..afe5aeef57 100644 --- a/stage5/00-install-extras/00-packages +++ b/stage5/00-install-extras/00-packages @@ -3,7 +3,7 @@ sonic-pi scratch nuscratch scratch2 scratch3 smartsim -minecraft-pi python-minecraftpi +minecraft-pi python-minecraftpi python-picraft python3-picraft python-sense-emu sense-emu-tools python-sense-emu-doc wolfram-engine From 271177a0f781a116ddaeb485ac62d28bc18fe74c Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Mon, 23 Dec 2019 14:21:08 +0000 Subject: [PATCH 41/63] Use tee with wpa_passphrase so errors are visable wpa_passphrase writes its error messages to stdout, so this needs to tee so that errors are visable to user. Also need to enable pipefail so that the error code still gets caught. --- stage2/02-net-tweaks/01-run.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stage2/02-net-tweaks/01-run.sh b/stage2/02-net-tweaks/01-run.sh index 154e515094..63fbff71cd 100755 --- a/stage2/02-net-tweaks/01-run.sh +++ b/stage2/02-net-tweaks/01-run.sh @@ -12,7 +12,8 @@ fi if [ -v WPA_ESSID ] && [ -v WPA_PASSWORD ]; then on_chroot <> "/etc/wpa_supplicant/wpa_supplicant.conf" +set -o pipefail +wpa_passphrase "${WPA_ESSID}" "${WPA_PASSWORD}" | tee -a "/etc/wpa_supplicant/wpa_supplicant.conf" EOF elif [ -v WPA_ESSID ]; then cat >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" << EOL From 024840034e2fab7efe170a303ef726fed1314f82 Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Mon, 23 Dec 2019 14:29:09 +0000 Subject: [PATCH 42/63] Check WPA_PASSWORD length early WPA_PASSWORD needs to be between 8 adn 63 characters. Check early to avoid hitting error in stage2. --- build.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.sh b/build.sh index a396b060f1..4ef6296993 100755 --- a/build.sh +++ b/build.sh @@ -220,6 +220,11 @@ if [[ -n "${APT_PROXY}" ]] && ! curl --silent "${APT_PROXY}" >/dev/null ; then exit 1 fi +if [[ ${#WPA_PASSWORD} -lt 8 || ${#WPA_PASSWORD} -gt 63 ]] ; then + echo "WPA_PASSWORD" must be between 8 and 63 characters + exit 1 +fi + mkdir -p "${WORK_DIR}" log "Begin ${BASE_DIR}" From 9d334bee66a75bd334b8f241f1c31ce6cc0f5f17 Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Tue, 7 Jan 2020 21:48:09 +0000 Subject: [PATCH 43/63] WPA_PASSWORD length check should only occur if set Test if WPA_PASSWORD is set before check that it has a valid length. --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 4ef6296993..9e78728ad4 100755 --- a/build.sh +++ b/build.sh @@ -220,7 +220,7 @@ if [[ -n "${APT_PROXY}" ]] && ! curl --silent "${APT_PROXY}" >/dev/null ; then exit 1 fi -if [[ ${#WPA_PASSWORD} -lt 8 || ${#WPA_PASSWORD} -gt 63 ]] ; then +if [[ -n "${WPA_PASSWORD}" && ${#WPA_PASSWORD} -lt 8 || ${#WPA_PASSWORD} -gt 63 ]] ; then echo "WPA_PASSWORD" must be between 8 and 63 characters exit 1 fi From f9375cdcec9421a0b5290a1c34c899d976f60f31 Mon Sep 17 00:00:00 2001 From: Andrew Pattison <58046090+andrum99@users.noreply.github.com> Date: Wed, 8 Jan 2020 11:54:06 +0000 Subject: [PATCH 44/63] README.md - mention WPA_PASSWORD length requirement --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f8524bdbd..04e1caa1c8 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ The following environment variables are supported: * `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset) - If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. + If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. If set, `WPA_PASSWORD` must be between 8 and 63 characters. * `ENABLE_SSH` (Default: `0`) From f8f3d6fe93a6709f02f63f3a203a38bcd33a0c0d Mon Sep 17 00:00:00 2001 From: Andrew Pattison <58046090+andrum99@users.noreply.github.com> Date: Wed, 8 Jan 2020 11:55:34 +0000 Subject: [PATCH 45/63] capitalise Raspberry Pi --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 04e1caa1c8..73d49613f6 100644 --- a/README.md +++ b/README.md @@ -119,11 +119,11 @@ The following environment variables are supported: * `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset) - If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. If set, `WPA_PASSWORD` must be between 8 and 63 characters. + If these are set, they are use to configure `wpa_supplicant.conf`, so that the Raspberry Pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. If set, `WPA_PASSWORD` must be between 8 and 63 characters. * `ENABLE_SSH` (Default: `0`) - Setting to `1` will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you RaspberryPi. + Setting to `1` will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you Raspberry Pi. * `STAGE_LIST` (Default: `stage*`) From 24bb01dec280f568ac59cdd1253a33a6d30ac4c4 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 5 Dec 2019 16:25:18 +0000 Subject: [PATCH 46/63] Rename HOSTNAME variable to TARGET_HOSTNAME Bash sets the HOSTNAME variable, overriding our default --- README.md | 2 +- build.sh | 2 +- stage1/02-net-tweaks/00-run.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 73d49613f6..bf681fae3d 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ The following environment variables are supported: Default system locale. - * `HOSTNAME` (Default: "raspberrypi" ) + * `TARGET_HOSTNAME` (Default: "raspberrypi" ) Setting the hostname to the specified value. diff --git a/build.sh b/build.sh index 9e78728ad4..a906e102a4 100755 --- a/build.sh +++ b/build.sh @@ -162,7 +162,7 @@ export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"} export DEPLOY_ZIP="${DEPLOY_ZIP:-1}" export LOG_FILE="${WORK_DIR}/build.log" -export HOSTNAME=${HOSTNAME:-raspberrypi} +export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi} export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} diff --git a/stage1/02-net-tweaks/00-run.sh b/stage1/02-net-tweaks/00-run.sh index fc9e7638ee..4943cabf0d 100755 --- a/stage1/02-net-tweaks/00-run.sh +++ b/stage1/02-net-tweaks/00-run.sh @@ -1,6 +1,6 @@ #!/bin/bash -e -echo "${HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname" -echo "127.0.1.1 ${HOSTNAME}" >> "${ROOTFS_DIR}/etc/hosts" +echo "${TARGET_HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname" +echo "127.0.1.1 ${TARGET_HOSTNAME}" >> "${ROOTFS_DIR}/etc/hosts" ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link" From 0a6624b26dd8006a75725e5379431abf1c5b0f09 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 24 Jan 2020 12:48:57 +0000 Subject: [PATCH 47/63] Update ROOT_MARGIN --- Dockerfile | 2 +- README.md | 2 +- depends | 1 + export-image/prerun.sh | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 706a5fb5a3..35f483a3e1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ RUN apt-get -y update && \ apt-get -y install \ git vim parted \ quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \ - bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod\ + bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\ && rm -rf /var/lib/apt/lists/* COPY . /pi-gen/ diff --git a/README.md b/README.md index bf681fae3d..ec4f65cb62 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,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 bsdtar libcap2-bin grep rsync xz-utils file git curl +dosfstools bsdtar libcap2-bin grep rsync xz-utils file git curl bc ``` The file `depends` contains a list of tools needed. The format of this diff --git a/depends b/depends index 6238eb1eed..a86bc82123 100644 --- a/depends +++ b/depends @@ -16,3 +16,4 @@ xxd file git lsmod:kmod +bc diff --git a/export-image/prerun.sh b/export-image/prerun.sh index cecde32bed..8bbc566e06 100755 --- a/export-image/prerun.sh +++ b/export-image/prerun.sh @@ -18,7 +18,7 @@ ALIGN="$((4 * 1024 * 1024))" # some overhead (since actual space usage is usually rounded up to the # filesystem block size) and gives some free space on the resulting # image. -ROOT_MARGIN=$((800*1024*1024)) +ROOT_MARGIN="$(echo "($ROOT_SIZE * 0.2 + 200 * 1024 * 1024) / 1" | bc)" BOOT_PART_START=$((ALIGN)) BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN)) From ca31aef1f74294a767ff8f6fb55e904aa21a4cf8 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 24 Jan 2020 13:09:04 +0000 Subject: [PATCH 48/63] stage5: install code-the-classics --- stage5/00-install-extras/00-packages | 1 + 1 file changed, 1 insertion(+) diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages index afe5aeef57..609e718125 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 From bdbd85892e8a80bd69366ea7f84f8ea1f2a0433f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 27 Jan 2020 15:20:33 +0000 Subject: [PATCH 49/63] Update MagPi URL scheme --- stage4/03-magpi/00-run.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stage4/03-magpi/00-run.sh b/stage4/03-magpi/00-run.sh index cc5a820817..b27b85f359 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" From b4ea63c0454e12af659623d0bd34bba71e6c9f25 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 28 Jan 2020 12:43:53 +0000 Subject: [PATCH 50/63] Update persistent rkfill files --- stage2/02-net-tweaks/01-run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stage2/02-net-tweaks/01-run.sh b/stage2/02-net-tweaks/01-run.sh index 63fbff71cd..092975531f 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" From 306c7eba3b241c963d3fdbfd47e0bd1cf9c1a323 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 27 Jan 2020 17:48:12 +0000 Subject: [PATCH 51/63] Update release notes --- .../00-release/files/release_notes.txt | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 45e8576fc6..0235ba9fb2 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,26 @@ UNRELEASED: - * + * 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 + * 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 + * Linux kernel 4.19.93 + * Raspberry Pi firmware 67392a7a32bddad7f571047fccafca9eeb65d29c 2019-09-26: * rpi-eeprom included - This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version. From 87f7a59cab051d54a306a680a615170aa33bd5ca Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 3 Feb 2020 13:22:33 +0000 Subject: [PATCH 52/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 0235ba9fb2..5be3a960ee 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -19,6 +19,7 @@ UNRELEASED: * 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.93 * Raspberry Pi firmware 67392a7a32bddad7f571047fccafca9eeb65d29c 2019-09-26: From e577677b623b577f2a0ec7cfaffc3c27da005da3 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 5 Feb 2020 15:37:57 +0000 Subject: [PATCH 53/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 5be3a960ee..6f74f5de45 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -6,6 +6,7 @@ UNRELEASED: * 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 From 6b72a64f020cd3143093aae5ad82accc4976f735 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 7 Feb 2020 11:19:19 +0000 Subject: [PATCH 54/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 6f74f5de45..11963a440b 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,6 @@ UNRELEASED: + * +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 From 6d71ac0bf9f9f2ac4f483bca598cff52cf3b7e8e Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 10 Feb 2020 16:59:56 +0000 Subject: [PATCH 55/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 11963a440b..1ca67ec80b 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,12 @@ 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 2efcd0bb3848640e385c894b22551f0d32761bf8 + - 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 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 @@ -23,8 +30,8 @@ UNRELEASED: * 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.93 - * Raspberry Pi firmware 67392a7a32bddad7f571047fccafca9eeb65d29c + * 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. From 5f884374b6ac6e155330c58caa1fb7249b8badf1 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 13 Feb 2020 15:47:46 +0000 Subject: [PATCH 56/63] Update release notes --- export-noobs/00-release/files/release_notes.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 1ca67ec80b..8d7f014032 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -3,10 +3,11 @@ UNRELEASED: * 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 2efcd0bb3848640e385c894b22551f0d32761bf8 + * 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 From 38d22e976a2d6ad2ccabc2704c966f586550122c Mon Sep 17 00:00:00 2001 From: "Luigi F. Cruz" Date: Thu, 20 Feb 2020 14:18:50 -0300 Subject: [PATCH 57/63] Retry apt downloads 3 times Fixes #194 --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index a906e102a4..e012569cec 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" From 65f91b8349565f5ddb8806ccc80a48871c5b86e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Vis=C3=A9e?= Date: Thu, 20 Feb 2020 18:20:03 +0100 Subject: [PATCH 58/63] BusyBox realpath does not support -s flag, fallback to use no flags (#384) * BusyBox realpath does not support -s flag, fallback to use no flags * Fix config sourcing problem --- build-docker.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-docker.sh b/build-docker.sh index 79b68d45e1..b6a9ea3d81 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} From 8ef3f47d7f0c6fdc722b1c3161d2502c9201bcc1 Mon Sep 17 00:00:00 2001 From: Leandro Lisboa Penz Date: Thu, 20 Feb 2020 17:20:29 +0000 Subject: [PATCH 59/63] Dockerfile: use --no-install-recommends in apt-get install (#383) --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 35f483a3e1..2e53149b52 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/ From 08fc0b9a8237c5a9926a0e9d660156a1e838d33a Mon Sep 17 00:00:00 2001 From: DragonEagle Date: Wed, 26 Feb 2020 05:36:39 -0800 Subject: [PATCH 60/63] Exposed RELEASE as a configurable variable (#391) Exposed RELEASE as a configurable variable and updated README.md. As a bonus, there is only on place to change the release name when the next release is stable now. --- README.md | 5 +++++ build.sh | 1 + export-noobs/00-release/00-run.sh | 1 + export-noobs/00-release/files/os.json | 2 +- stage0/00-configure-apt/00-run.sh | 2 ++ stage0/00-configure-apt/files/raspi.list | 4 ++-- stage0/00-configure-apt/files/sources.list | 4 ++-- stage0/prerun.sh | 2 +- 8 files changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ec4f65cb62..29d81667d4 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.sh b/build.sh index e012569cec..a8247ab040 100755 --- a/build.sh +++ b/build.sh @@ -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 1d0b12f175..18a3a5dcd6 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 afa9f9a8fc..e231238be6 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/stage0/00-configure-apt/00-run.sh b/stage0/00-configure-apt/00-run.sh index 9d21ffba2b..d10a49f174 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 122287e1d5..41c5a70755 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 61820ac04e..4a5dd8a9fd 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 9ce3e0227f..3b257836b8 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 From 6ef7fa5d570d701f30ad3891d8d6c6df44884ca0 Mon Sep 17 00:00:00 2001 From: Ani Balasubramaniam Date: Tue, 2 Jun 2020 00:41:45 -0700 Subject: [PATCH 61/63] Autmagically use 1386/debian:buster when running on 64-bit host to prevent error #271 --- Dockerfile | 3 ++- build-docker.sh | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e53149b52..3d5874d17b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM debian:buster +ARG BASE_IMAGE=debian:buster +FROM ${BASE_IMAGE} ENV DEBIAN_FRONTEND noninteractive diff --git a/build-docker.sh b/build-docker.sh index b6a9ea3d81..6ab8f4c77b 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -73,7 +73,10 @@ fi # Modify original build-options to allow config file to be mounted in the docker container BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" -${DOCKER} build -t pi-gen "${DIR}" +ARCH=$(uname -m) +[[ $ARCH == "x86_64" || $ARCH == "aarch64" ]] && BASE_IMAGE=i386/debian:buster || BASE_IMAGE=debian:buster +${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}" + if [ "${CONTAINER_EXISTS}" != "" ]; then trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}_cont' SIGINT SIGTERM time ${DOCKER} run --rm --privileged \ From c1d1015c9b08ca56c493f49f9399523f24f3023b Mon Sep 17 00:00:00 2001 From: Ani Balasubramaniam Date: Tue, 2 Jun 2020 00:47:37 -0700 Subject: [PATCH 62/63] Add comment --- build-docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build-docker.sh b/build-docker.sh index 6ab8f4c77b..7ba31949a2 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -73,6 +73,7 @@ fi # Modify original build-options to allow config file to be mounted in the docker container BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" +# Check the arch of the machine we're running on. If it's 64-bit, use a 32-bit base image instead ARCH=$(uname -m) [[ $ARCH == "x86_64" || $ARCH == "aarch64" ]] && BASE_IMAGE=i386/debian:buster || BASE_IMAGE=debian:buster ${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}" From 4f5dfc4d1e4c1ccd25d015ebad4e43fc4c414385 Mon Sep 17 00:00:00 2001 From: Ani Balasubramaniam Date: Tue, 2 Jun 2020 08:58:25 -0700 Subject: [PATCH 63/63] Fix conditional to read better using a case statement --- build-docker.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/build-docker.sh b/build-docker.sh index 7ba31949a2..350f722bde 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -74,8 +74,14 @@ fi BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" # Check the arch of the machine we're running on. If it's 64-bit, use a 32-bit base image instead -ARCH=$(uname -m) -[[ $ARCH == "x86_64" || $ARCH == "aarch64" ]] && BASE_IMAGE=i386/debian:buster || BASE_IMAGE=debian:buster +case "$(uname -m)" in + x86_64|aarch64) + BASE_IMAGE=i386/debian:buster + ;; + *) + BASE_IMAGE=debian:buster + ;; +esac ${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}" if [ "${CONTAINER_EXISTS}" != "" ]; then