Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
cd21425
Merge pull request #8235 from MichaIng/beta
MichaIng Aug 8, 2026
d145556
changelog: fix typo
MichaIng Aug 8, 2026
ca88e12
Merge remote-tracking branch 'origin/master' into dev
MichaIng Aug 8, 2026
9b2ce32
dietpi-banner: show also unmouned drives in menu
MichaIng Aug 9, 2026
e231129
Raspberry Pi: blocks cups-filters from RPi repo
MichaIng Aug 9, 2026
3a86ac1
dietpi-build: raise RISC-V Forky rootfs size
MichaIng Aug 10, 2026
e425c6d
dietpi-trixie-upgrade: migrate OpenSSH setting more aggressively
MichaIng Aug 10, 2026
eb769e1
dietpi-software: Chromium: update flags
MichaIng Aug 11, 2026
059d228
coding: mute shellcheck
MichaIng Aug 11, 2026
ca0c946
dietpi-patches: remove obsolete patch
MichaIng Aug 11, 2026
7a57783
ci: update_urls: print checked ID before network request
MichaIng Aug 12, 2026
766532f
dietpi-software: Ampache: fix version check after v8 release
MichaIng Aug 12, 2026
fcbe8dd
changelog: typo
MichaIng Aug 12, 2026
bea3d1e
coding: shorten some "date" call formats
MichaIng Aug 13, 2026
bf553e3
Extend regex in dietpi-banner to also count bans created in CIDR nota…
JappeHallunken Aug 13, 2026
e16d15a
dietpi-banner: some fixes
MichaIng Aug 14, 2026
f92614b
coding: satisfy shellcheck
MichaIng Aug 14, 2026
0536aa3
dietpi-software: Kodi: do not raise CMA size on RPi 5
MichaIng Aug 15, 2026
bbec5f0
Raspberry Pi: fix dtparam/dtoverlay ordering
MichaIng Aug 15, 2026
2d823ac
coding: mute shellcheck false positive
MichaIng Aug 15, 2026
4006a92
ci: dietpi-build: attempt to fix service order
MichaIng Aug 15, 2026
be7fe69
dietpi-banner: print (update) notifications below dietpi-* commands
MichaIng Aug 15, 2026
371b7bd
dietpi-build: switch to After=multi-user.target
MichaIng Aug 15, 2026
71ad2cc
dietpi-build: mask console-getty.service
MichaIng Aug 15, 2026
b2b97f0
dietpi-build: remove conditional for _mailine suffix
MichaIng Aug 15, 2026
722364d
dietpi-build: adjust rootfs size for rk35xx => mainline builds
MichaIng Aug 15, 2026
6c08a15
dietpi-software: Nextcloud: add GMP PHP module
MichaIng Aug 16, 2026
a0b4f24
dietpi-installer: Orange Pi 5/5B: enable vertical USB 2.0 port
MichaIng Aug 17, 2026
a27cd08
Init v10.7
MichaIng Aug 17, 2026
d4bc412
dietpi-survey_report: fix final version loop
MichaIng Aug 17, 2026
ce7ca65
dietpi-trixie-upgrade: fix migration of RPi Kodi 20 package
MichaIng Aug 17, 2026
145fb9c
Radxa ZERO 3: add overlay prefix for external antenna overlay
MichaIng Aug 19, 2026
a41995c
ci: armbian: add support for sun60iw2 kernel build
MichaIng Aug 21, 2026
b1077ea
dietpi-drive_manager: align variable name
MichaIng Aug 21, 2026
57a40cf
dietpi-banner: correctly count zero failed systemd services
MichaIng Aug 21, 2026
243a2b8
ci: dietpi-build software: switch to process substitution
MichaIng Aug 22, 2026
7e49726
ci: dietpi-software build: fix syntax
MichaIng Aug 22, 2026
922969b
ci: dietpi-software build: switch to Ubuntu 26.04 runners
MichaIng Aug 22, 2026
c08bf65
ci: dietpi-software build: revert to files on disk
MichaIng Aug 22, 2026
d52164f
ci: dietpi-software build: switch to qemu-user-binfmt from Trixie on
MichaIng Aug 22, 2026
91a7d12
rk3399: narrow overlay prefix
MichaIng Aug 22, 2026
8a3a5da
ci: quartz64: cleanup right after upload
MichaIng Aug 22, 2026
aff4c99
dietpi-network: new tool for multi interface configuration (#8251)
Copilot Aug 23, 2026
895c7a5
changelog: add entry about Orange Pi 5/5B
MichaIng Aug 23, 2026
3c5e8ef
changelog: add entry about Chromium
MichaIng Aug 23, 2026
9e171b2
changelog: add entry about banner fix
MichaIng Aug 23, 2026
4082459
dietpi-set_software: allo: keep old behavior exactly
MichaIng Aug 23, 2026
a3b6e04
dietpi-network: add "Save" option
MichaIng Aug 23, 2026
06a6392
RC up
MichaIng Aug 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .build/images/RPi/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# Uncomment to disable HDMI even if plugged, e.g. to force composite output.
#hdmi_ignore_hotplug=1

# Uncomment to enable SDTV/composite output from RPi4 on. This has no effect on previous RPi models.
# Uncomment to enable SDTV/composite output from RPi4 on. This has no effect on older RPi models.
#enable_tvout=1

# Uncomment to force an HDMI mode rather than DVI. This enables HDMI audio in DMT modes.
Expand All @@ -39,10 +39,6 @@ disable_overscan=1
# LCD/OLED Rotation
#lcd_rotate=0

# Enable KMS/DRM display driver, recommended when a GUI application or desktop is used.
# Remove ",noaudio" if HDMI audio is needed, or enable it via dietpi-config.
#dtoverlay=vc4-kms-v3d,noaudio

#-------RPi camera module-------
#camera_auto_detect=1
#disable_camera_led=1
Expand Down Expand Up @@ -87,3 +83,7 @@ initial_turbo=20
#arm_freq_min=300
#core_freq_min=250
#sdram_freq_min=400

# Enable KMS/DRM display driver, recommended when a GUI application or desktop is used.
# Remove ",noaudio" if HDMI audio is needed, or enable it via dietpi-config.
#dtoverlay=vc4-kms-v3d,noaudio
22 changes: 15 additions & 7 deletions .build/images/dietpi-build
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,10 @@ case $HW_MODEL in
108) iname='OrangePiZero3W' HW_ARCH=3 partition_start=32 root_size='sun60iw2';;
*) Error_Exit "Invalid hardware model \"$HW_MODEL\" passed";;
esac
[[ $root_size == 'rk35xx' && $RK35XX_MAINLINE == 1 ]] && root_size='rockchip64'
case $root_size in
'sun60iw2') root_size=600;;
'riscv') root_size=650; (( $DISTRO > 8 )) && ((root_size+=100));;
'riscv') root_size=650; (( $DISTRO > 8 )) && ((root_size+=150));;
'meson') root_size=650; (( $DISTRO > 7 && ! $boot_size )) && ((root_size+=50));;
'rockchip') root_size=700;;
'quartz64') root_size=700; (( $DISTRO > 8 )) && ((root_size+=100));;
Expand Down Expand Up @@ -247,7 +248,7 @@ G_CHECK_URL "https://github.com/$GITOWNER/DietPi/tree/$GITBRANCH" || Error_Exit

# Generate image name and define CLONING_TOOL for dietpi-installer
OUTPUT_IMG_NAME="DietPi_$iname-$iarch-${distro^}"
[[ $RK35XX_MAINLINE == 1 && $HW_MODEL =~ ^(78|79'.'[1-3]|80|82|85|90|91|92|93|94|95|102|103)$ ]] && OUTPUT_IMG_NAME+='_mainline'
(( $RK35XX_MAINLINE )) && OUTPUT_IMG_NAME+='_mainline'
[[ $fsname ]] && OUTPUT_IMG_NAME+="_$fsname"
CLONING_TOOL='dd'
if [[ $VARIANT == 'iso' ]]
Expand Down Expand Up @@ -441,9 +442,11 @@ G_EXEC mount -m -t tmpfs tmpfs rootfs/run
G_EXEC mount -m -t tmpfs tmpfs rootfs/var/cache/apt
G_EXEC mount -m -t tmpfs tmpfs rootfs/var/lib/apt/lists
G_EXEC mount -m -t tmpfs tmpfs rootfs/var/log
# - "--skip=check/empty" to ignore /etc/fstab, boot and tmpfs mounts we added above
# - "--skip=check/qemu" to skip arch test, which requires the "arch-test" package. We however assure emulation support our end.
# "--skip=check/empty" to ignore /etc/fstab, boot and tmpfs mounts we added above
# "--skip=check/qemu" to skip arch test, which requires the "arch-test" package. We however assure emulation support our end.
G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --mode=root --format=dir --skip=check/empty,check/qemu --variant=apt --include="$packages" --arch="$parch" --keyring="$keyring" "$distro" ./rootfs "${mirrors[@]}"
# Prevent doomed wpa_supplicant.service start attempt
[[ $HW_MODEL =~ ^(20|75)$ ]] || G_EXEC systemctl --root=rootfs disable wpa_supplicant
G_EXEC umount rootfs/dev rootfs/run rootfs/var/cache/apt rootfs/var/lib/apt/lists rootfs/var/log

##########################################
Expand Down Expand Up @@ -481,27 +484,32 @@ fi
##########################################
# Create boot script and systemd unit to automate DietPi-Installer
# - NB: WIFI_REQUIRED=1 is always passed here, but ignored by DietPi-Installer for VMs and containers.
# - Prevent console-getty.service from stealing the controlling terminal
G_EXEC ln -s /dev/null rootfs/etc/systemd/system/console-getty.service
cat << _EOF_ > rootfs/dietpi-build.sh || exit 1
#!/bin/dash -e
{
infocmp "\$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"\$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }
export GITOWNER='$GITOWNER' GITBRANCH='$GITBRANCH' HW_MODEL='$HW_MODEL' IMAGE_CREATOR=0 PREIMAGE_INFO=0 WIFI_REQUIRED=1 DISTRO_TARGET=$DISTRO TEST_KERNEL=$TEST_KERNEL TEST_UBOOT=$TEST_UBOOT RK35XX_MAINLINE=$RK35XX_MAINLINE TMPDIR='/tmp'
echo '[ INFO ] Running DietPi-Installer for $G_GITOWNER/$G_GITBRANCH'
bash -c "\$(curl -sSf 'https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-installer' || echo false)" || { echo '[FAILED] DietPi-Installer failed, shutting down ...'; journalctl -n 25; df -h; free -h; exit 1; }
rm -v /etc/systemd/system/multi-user.target.wants/dietpi-build.service /etc/systemd/system/dietpi-build.service /dietpi-build.sh
rm -v /etc/systemd/system/multi-user.target.wants/dietpi-build.service /etc/systemd/system/dietpi-build.service /dietpi-build.sh /etc/systemd/system/console-getty.service
> /success
exit 0
}
_EOF_
G_EXEC chmod +x rootfs/dietpi-build.sh
cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-build.service || exit 1
[Unit]
After=multi-user.target

[Service]
Type=idle
StandardOutput=tty
ExecStart=-/dietpi-build.sh
ExecStopPost=/usr/bin/systemctl --no-block start poweroff.target
_EOF_
G_EXEC ln -s /etc/systemd/system/dietpi-build.service rootfs/etc/systemd/system/multi-user.target.wants/dietpi-build.service
G_EXEC ln -s ../dietpi-build.service rootfs/etc/systemd/system/multi-user.target.wants/dietpi-build.service

# Start container
# - Bind mounts required to allow container reading its own drive info, /dev/disk for GRUB and probably other tools to detect UUIDs
Expand Down Expand Up @@ -1045,7 +1053,7 @@ then
<rasd:ResourceType>10</rasd:ResourceType>
</Item>
</VirtualHardwareSection>
<vbox:Machine ovf:required="false" version="1.16-windows" uuid="{$vmuuid}" name="$image_name" OSType="Debian_64" snapshotFolder="Snapshots" lastStateChange="$(date -u '+%Y-%M-%dT%TZ')">
<vbox:Machine ovf:required="false" version="1.16-windows" uuid="{$vmuuid}" name="$image_name" OSType="Debian_64" snapshotFolder="Snapshots" lastStateChange="$(date -u '+%FT%TZ')">
<ovf:Info>Complete VirtualBox machine configuration in VirtualBox format</ovf:Info>
<Hardware>
<CPU>
Expand Down
40 changes: 15 additions & 25 deletions .build/images/dietpi-installer
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,13 @@ _EOF_
local armbian_packages=0
if (( $G_HW_MODEL < 10 ))
then
G_EXEC mv "$dir/.build/images/RPi/config.txt" /boot/firmware/
# Temporary workaround for misplaced dtoverlay=vc4-kms-v3d above dtparam's: https://forums.raspberrypi.com/viewtopic.php?p=2385679#p2385532
if [[ $G_GITOWNER/$G_GITBRANCH == 'MichaIng/master' ]]
then
G_EXEC curl -sSfo /boot/firmware/config.txt 'https://raw.githubusercontent.com/MichaIng/DietPi/dev/.build/images/RPi/config.txt'
else
G_EXEC mv "$dir/.build/images/RPi/config.txt" /boot/firmware/
fi
G_EXEC eval "echo 'root=PARTUUID=$(findmnt -Ufnro PARTUUID /) rootfstype=$(findmnt -Ufnro FSTYPE /) rootwait fsck.repair=yes net.ifnames=0 logo.nologo console=serial0,115200 console=tty1' > /boot/firmware/cmdline.txt"
# Boot in 64-bit mode if this is a 64-bit image
[[ $userland_arch == 'arm64' ]] && G_CONFIG_INJECT 'arm_64bit=' 'arm_64bit=1' /boot/firmware/config.txt
Expand Down Expand Up @@ -744,18 +750,19 @@ setenv bootlabel "DietPi"' /boot/boot.cmd
# Overlay prefix
case $G_HW_MODEL in
14) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3588-odroidm2 rockchip-rk3588' /boot/dietpiEnv.txt;;
73) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3308' /boot/dietpiEnv.txt;;
77) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3568-rock-3a rockchip-rk3568-hk rockchip-rk3566' /boot/dietpiEnv.txt;;
78) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rock-5b rock-5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
80|106) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=orangepi-5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
82) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=orangepi-5-plus rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
85) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rock-5a rock-5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
90) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3566 rockchip-rk3568 radxa-zero3 rk3568' /boot/dietpiEnv.txt;;
90) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk35xx-radxa-zero-3w rockchip-rk3566 rockchip-rk3568 radxa-zero3 rk3568' /boot/dietpiEnv.txt;;
92) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=nanopi-m6 rockchip-rk3588-nanopi-m6 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
93) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=orangepi-5-pro rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
94) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=orangepi-5-ultra rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
95) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=orangepi-cm5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
73) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3308' /boot/dietpiEnv.txt;; # RK3308 mainline
43|55|56) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3328' /boot/dietpiEnv.txt;; # RK3328 mainline
42|46|47|48|68|72|86|105) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3399' /boot/dietpiEnv.txt;; # RK3399 mainline
79|91) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;; # RK3588 mainline + vendor
19|87|100|101) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3566 rockchip-rk3568-hk' /boot/dietpiEnv.txt;; # RK3566 mainline
18|76) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip-rk3568-hk rockchip-rk3566' /boot/dietpiEnv.txt;; # RK3568 mainline
Expand All @@ -765,7 +772,8 @@ setenv bootlabel "DietPi"' /boot/boot.cmd
esac
# Overlays
case $G_HW_MODEL in
80|91|94|106) G_CONFIG_INJECT 'overlays=' 'overlays=dwc3-host' /boot/dietpiEnv.txt;; # Switch USB-C and vertical USB 2.0 (shares controller with USB-C) to host mode by default
91|94) G_CONFIG_INJECT 'overlays=' 'overlays=dwc3-host' /boot/dietpiEnv.txt;; # vendor: Switch USB-C and vertical USB 2.0 (shares controller with USB-C) to host mode by default
80|106) G_CONFIG_INJECT 'overlays=' 'overlays=usb-c-host' /boot/dietpiEnv.txt;; # mainline: Switch USB-C and vertical USB 2.0 (shares controller with USB-C) to host mode by default
92) G_CONFIG_INJECT 'overlays=' 'overlays=display-dsi1-yx35' /boot/dietpiEnv.txt;; # Enable builtin LCD of official case
*) :;;
esac
Expand Down Expand Up @@ -957,8 +965,9 @@ setenv bootlabel "DietPi"' /boot/boot.cmd
# Block packages from RPi desktop which conflict with a native LXDE desktop:
# - https://github.com/MichaIng/DietPi/issues/1558#issuecomment-691206284
# - https://github.com/MichaIng/DietPi/issues/4687
# and cups-filters: https://github.com/MichaIng/DietPi/issues/8245
G_EXEC eval 'cat << '\''_EOF_'\'' > /etc/apt/preferences.d/dietpi-raspberrypi
Package: src:openbox src:obconf src:pcmanfm src:libfm src:gtk* src:lx*
Package: src:cups-filters src:openbox src:obconf src:pcmanfm src:libfm src:gtk* src:lx*
Pin: origin archive.raspberrypi.com
Pin-Priority: -1
_EOF_'
Expand Down Expand Up @@ -1947,29 +1956,10 @@ _EOF_'
G_EXEC_DESC='Configuring network interfaces'
G_EXEC eval 'cat << _EOF_ > /etc/network/interfaces
# Location: /etc/network/interfaces
# Please modify network settings via: dietpi-config
# Or create your own drop-ins in: /etc/network/interfaces.d/
# Network settings can be changed via dietpi-network.

# Drop-in configs
source interfaces.d/*

# Ethernet
#allow-hotplug eth0
iface eth0 inet dhcp
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
#dns-nameservers 9.9.9.9 149.112.112.112

# WiFi
#allow-hotplug wlan0
iface wlan0 inet dhcp
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
#dns-nameservers 9.9.9.9 149.112.112.112
wireless-power off
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
_EOF_'
# Wait for network at boot by default
/boot/dietpi/func/dietpi-set_software boot_wait_for_network 1
Expand Down
12 changes: 10 additions & 2 deletions .build/software/dietpi-software-build.bash
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ else
'12.'*|'bookworm/sid') G_DISTRO=7;;
'13.'*|'trixie/sid') G_DISTRO=8;;
'14.'*|'forky/sid') G_DISTRO=9;;
*) Error_Exit "Unsupported distro version \"$debian_version\"";;
*) Error_Exit "Unsupported Debian version \"$debian_version\"";;
esac
# Ubuntu ships with /etc/debian_version from Debian testing, hence we assume one version lower.
grep -q '^ID=ubuntu' /etc/os-release && ((G_DISTRO--))
Expand Down Expand Up @@ -101,7 +101,15 @@ apackages=('xz-utils' 'parted' 'fdisk' 'systemd-container')
emulation=0
(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || emulation=1

(( $emulation )) && apackages+=('qemu-user-static')
if (( $emulation ))
then
if (( $G_DISTRO > 7 ))
then
apackages+=('qemu-user-binfmt')
else
apackages+=('qemu-user-static')
fi
fi

G_AG_CHECK_INSTALL_PREREQ "${apackages[@]}"

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/armbian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ jobs:
'rockchip64') BOARD='nanopi-m6';;
'sunxi') BOARD='nanopim1';;
'sunxi64') BOARD='orangepizero3';;
'sun60iw2') BOARD='orangepizero3w';;
esac
echo "BOARD=$BOARD" >> "$GITHUB_ENV"
echo "BRANCH=$BRANCH" >> "$GITHUB_ENV"
Expand Down
19 changes: 10 additions & 9 deletions .github/workflows/dietpi-software-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
name: ${{ steps.name.outputs.name }}
arch: ${{ steps.arch.outputs.arch }}
dist: ${{ steps.dist.outputs.dist }}
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- id: name
run: |
Expand Down Expand Up @@ -72,18 +72,12 @@ jobs:
- { arch: armv7l, name: gzdoom }
fail-fast: false
name: "${{ matrix.name }} - ${{ matrix.arch }} - ${{ matrix.dist }}"
runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }}
runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-26.04' || 'ubuntu-26.04-arm' }}
steps:
- name: Build
run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=$GITHUB_REF_NAME GH_TOKEN='${{ github.token }}'; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/software/dietpi-software-build.bash")" -- -n '${{ matrix.name }}' -a '${{ matrix.arch }}' -d '${{ matrix.dist }}'
- name: Upload
run: |
# SSH server and client keys
mkdir ~/.ssh
umask 377
echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts
echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519

# Generate file lists
files=
urls='"https://dietpi.com/downloads/binaries/${{ matrix.dist }}/testing/"'
Expand All @@ -94,8 +88,15 @@ jobs:
urls="$urls,\"https://dietpi.com/downloads/binaries/${{ matrix.dist }}/testing/$i\""
done
files=${files#,}
echo "Uploading file(s) $files to URL(s) $urls ..."
echo "Uploading file(s) $files to URL(s) $urls"

# Upload
trap 'rm -Rf ~/.ssh' EXIT
mkdir ~/.ssh
umask 377
echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts
echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519
curl -T "{$files}" --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}${{ matrix.dist }}/'
rm -R ~/.ssh

curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' --data "{\"files\":[$urls]}"
8 changes: 5 additions & 3 deletions .github/workflows/quartz64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ concurrency:
permissions: {}
jobs:
build:
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- uses: actions/setup-python@v7
with:
python-version: '3.x'
check-latest: true
- name: Build init
run: |
{ python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } &
{ python3 -m pip install --no-cache-dir -U pip setuptools; python3 -m pip install --no-cache-dir -U pyelftools; } &
{ sudo apt-get -q update; sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison bc libssl-dev swig libgnutls28-dev; } &
{ curl -fO 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-rolling-stable.tar.gz'; tar xf linux-rolling-stable.tar.gz; rm linux-rolling-stable.tar.gz; } &
uboot_version=$(curl -sSf 'https://api.github.com/repos/u-boot/u-boot/tags' | grep -Po '"name": *"\Kv[0-9.]*(?=")' | head -1)
Expand Down Expand Up @@ -171,10 +171,12 @@ jobs:
sudo rm -R firmware-quartz64a firmware-quartz64b firmware-soquartz
- name: Upload
run: |
[ -d ~/.ssh ] || mkdir ~/.ssh
trap 'rm -Rf ~/.ssh' EXIT
mkdir ~/.ssh
umask 377
echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts
echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519
curl -T 'firmware-{quartz64a,quartz64b,soquartz}.deb' --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}all/'
rm -R ~/.ssh
curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \
--data '{"files":["https://dietpi.com/downloads/binaries/testing/","https://dietpi.com/downloads/binaries/testing/firmware-quartz64a.deb","https://dietpi.com/downloads/binaries/testing/firmware-quartz64b.deb","https://dietpi.com/downloads/binaries/testing/firmware-soquartz.deb"]}'
4 changes: 2 additions & 2 deletions .github/workflows/update_urls.bash
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ aREPLACE[$software_id]='version='\''$release'\''\;'

# Ampache
software_id=40
aCHECK[$software_id]='curl -sSf '\''https://api.github.com/repos/ampache/ampache/releases/latest'\'' | grep -Po "\"browser_download_url\": *\"\K[^\"]*\/ampache-[0-9\.]*_all_php8.2\.zip(?=\")"'
aCHECK[$software_id]='curl -sSf '\''https://api.github.com/repos/ampache/ampache/releases'\'' | grep -Po "\"browser_download_url\": *\"\K[^\"]*\/ampache-[0-9\.]*_all_php8.2\.zip(?=\")" | head -1'
aREGEX[$software_id]='https://github.com/ampache/ampache/releases/download/.*/ampache-.*_all_php\$PHP_VERSION.zip'
aREPLACE[$software_id]='${release/8.2/\$PHP_VERSION}'

Expand Down Expand Up @@ -424,6 +424,7 @@ aREGEX[$software_id]='https://github\.com/prometheus/prometheus/releases/downloa
for i in "${!aCHECK[@]}"
do
echo '------------------------------------------'
echo "Checking software ID $i ..."
# Fetch response once for entries with aARCH, to avoid redundant curl calls per architecture
# set -e ensures the script exits on any curl failure
response=
Expand All @@ -440,7 +441,6 @@ do
# Add GitHub token if set: only relevant for entries without aURL, since those still use curl in aCHECK
[[ $GH_TOKEN ]] && aCHECK[i]=${aCHECK[i]//curl -sSf \'https:\/\/api.github.com/curl -H \'Authorization: token $GH_TOKEN\' -sSf \'https://api.github.com}

echo "Checking software ID $i ..."
# Loop through architectures
for arch in ${aARCH[i]:-dummy}
do
Expand Down
6 changes: 5 additions & 1 deletion .meta/dietpi-bookworm-upgrade
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,11 @@ then
fi

# Migrate OpenSSH server setting: https://manpages.debian.org/bookworm/sshd_config#KbdInteractiveAuthentication~2
[[ -f '/etc/ssh/sshd_config' ]] && grep -q '^[[:blank:]]*ChallengeResponseAuthentication[[:blank:]]' /etc/ssh/sshd_config && ! grep -q '^[[:blank:]]*KbdInteractiveAuthentication[[:blank:]]' /etc/ssh/sshd_config && G_EXEC sed --follow-symlinks -Ei 's/^([[:blank:]]*)ChallengeResponseAuthentication([[:blank:]])/\1KbdInteractiveAuthentication\2/' /etc/ssh/sshd_config
if [[ -f '/etc/ssh/sshd_config' ]]
then
G_DIETPI-NOTIFY 2 'Updating deprecated OpenSSH setting: ChallengeResponseAuthentication => KbdInteractiveAuthentication'
G_EXEC sed --follow-symlinks -i 's/ChallengeResponseAuthentication/KbdInteractiveAuthentication/' /etc/ssh/sshd_config
fi

# Remove deprecated OpenVPN setting: https://manpages.debian.org/bullseye/openvpn#keysize
for i in /etc/openvpn/*.{conf,ovpn}
Expand Down
Loading