Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
6a302b6
Initial plan
Copilot Feb 17, 2026
111e143
Migrate Python software to venvs, remove global break-system-packages
Copilot Feb 17, 2026
32216c0
Update uninstall sections to remove venvs
Copilot Feb 17, 2026
805e7c2
Make motionEye sed command more robust
Copilot Feb 17, 2026
b8d38a1
Address code review feedback: use global PYTHON_VERSION, add python3-…
Copilot Feb 17, 2026
c40253d
dietpi-software: Python 3: do actually install Python
MichaIng Feb 17, 2026
8e10eb7
dietpi-software: derive local python_version from global PYTHON_VERSI…
MichaIng Feb 17, 2026
fb1762a
dietpi-software: OctoPrint: update all executable paths
MichaIng Feb 17, 2026
765b0ce
dietpi-software: fix pillow dependencies for ARMv6/7
MichaIng Feb 17, 2026
a90e924
dietpi-software: apply temporary workarounds for external bugs
MichaIng Feb 18, 2026
223902b
dietpi-software: Python 3: install pip only on demand
MichaIng Feb 18, 2026
fa6ed55
dietpi-software: minor reformatting
MichaIng Feb 18, 2026
a226b84
dietpi-software: move venv check into function
MichaIng Feb 18, 2026
e834e40
dietpi-patches: migrate Python software into venvs
MichaIng Feb 18, 2026
61c9b41
dietpi-software: ADS-B Feeder: assure dependencies are actually insta…
MichaIng Feb 18, 2026
415d346
dietpi-software: ADS-B Feeder: install cryptography directly
MichaIng Feb 18, 2026
793ccd3
changelog: add entry about Python venv migration
MichaIng Feb 18, 2026
5c2a4d1
dietpi-software: ADS-B Feeder: install Python modules via apt
MichaIng Feb 18, 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
2 changes: 1 addition & 1 deletion .github/workflows/dietpi-software.bash
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ do
61) Process_Software 60;;
125) Process_Software 194;;
86|134|185) Process_Software 162;;
141) Process_Software 17 130 134 162;;
141) Process_Software 17 134 162;;
166) Process_Software 70;;
180) (( $arch == 10 || $arch == 3 )) || Process_Software 170;;
188) Process_Software 17;;
Expand Down
38 changes: 37 additions & 1 deletion .update/patches
Original file line number Diff line number Diff line change
Expand Up @@ -2228,7 +2228,7 @@ Patch_10_1()
then
G_DIETPI-NOTIFY 2 'Fixing Chromium kiosk mode'
# shellcheck disable=SC2016
G_EXEC sed --follow-symlink -i 's|"\$STARTX" chromium|"$STARTX" /usr/bin/chromium|' /var/lib/dietpi/dietpi-software/installed/chromium-autostart.sh
G_EXEC sed --follow-symlinks -i 's|"\$STARTX" chromium|"$STARTX" /usr/bin/chromium|' /var/lib/dietpi/dietpi-software/installed/chromium-autostart.sh
fi

# Orange Pi 3B
Expand Down Expand Up @@ -2258,6 +2258,42 @@ _EOF_'
# Software updates, migrations and patches
if [[ -f '/boot/dietpi/.installed' ]]
then
# Python software migration to venv
# - Python 3
if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[130\]=2' /boot/dietpi/.installed && [[ -f '/etc/pip.conf' ]]
then
G_DIETPI-NOTIFY 2 'Removing obsolete pip directives now that we move all Python software into venvs'
G_EXEC sed --follow-symlinks -i '/^[[:blank:]]*break-system-packages[[:blank:]]*=/d' /etc/pip.conf
G_EXEC sed --follow-symlinks -i '/^[[:blank:]]*root-user-action[[:blank:]]*=/d' /etc/pip.conf
fi
# - Synapse
if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[125\]=2' /boot/dietpi/.installed
then
G_DIETPI-NOTIFY 2 'Removing system-level Synpase Python module and scheduling reinstall to install it into a venv'
command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y --break-system-packages --root-user-action=ignore matrix-synapse
G_EXEC eval 'echo 125 >> /var/tmp/dietpi/dietpi-update_reinstalls'
fi
# - motionEye
if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[136\]=2' /boot/dietpi/.installed
then
G_DIETPI-NOTIFY 2 'Removing system-level motionEye Python module and scheduling reinstall to install it into a venv'
command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y --break-system-packages --root-user-action=ignore motioneye
G_EXEC eval 'echo 136 >> /var/tmp/dietpi/dietpi-update_reinstalls'
fi
# - OctoPrint
if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[153\]=2' /boot/dietpi/.installed
then
G_DIETPI-NOTIFY 2 'Moving user-level OctoPrint Python modules into venv and scheduling reinstall'
if [[ -d '/mnt/dietpi_userdata/octoprint/.local' && ! -d '/mnt/dietpi_userdata/octoprint/venv' ]]
then
G_AGI python3-venv
G_EXEC mv /mnt/dietpi_userdata/octoprint/{.local,venv}
G_EXEC python3 -m venv /mnt/dietpi_userdata/octoprint/venv
G_EXEC find /mnt/dietpi_userdata/octoprint/venv/bin -type f -exec sed --follow-symlinks -i '1s|^#!/.*/bin/python3|#!/mnt/dietpi_userdata/octoprint/venv/bin/python3|' {} +
fi
G_EXEC eval 'echo 153 >> /var/tmp/dietpi/dietpi-update_reinstalls'
fi

# Pi-hole v6 migration
# - /etc/pihole/pihole.toml indicates that Pi-hole has been upgraded to v6 already.
# - The /var/www/pihole symlink indicates that an instance installed via dietpi-software has not been migrated yet.
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ New images:
Enhancements:
- NanoPi R5C | Resolved an issue where the Ethernet network interface names could have swapped on reboots. They are now assigned with eth0 as LAN port and eth1 as WAN port. Many thanks to @firebox for reporting this issue: https://dietpi.com/forum/t/24845/24
- DietPi-Tools | DietPi-Banner: New option to output the Linux kernel version
- DietPi-Software | Python 3: All Python software options make now use of venvs, instead of being installed to the system site "/usr/local/lib/python3.*/dist-packages". Recent pip has increasing issues managing modules there on distros which have own Python module packages. Modern setups almost require isolated environments like venv. Synapse, motionEye, and OctoPrint are reinstalled on DietPi update to perform the migration directly, preserving user data and plugins. The "break-system-packages" flag in /etc/pip.conf is consequently removed. If you need to manage packages via pip at the system site, add the "--break-system-packages" CLI flag to each call.
- DietPi-Software | Navidrome: Support for RISC-V has been unlocked, as official builds have been added with the v0.60.0 release on GitHub.
- DietPi-Software | MinIO: The console client "mc" is now installed along with the server, to make up with the lost administration functionalities of the community server web UI. A shell alias is generated to invoke it as "minio-user" user, using a pre-generated config file /mnt/dietpi_userdata/minio-data/.mc/config.json. It adds the local MinIO server instance as "local" alias. Additionally, the default credentials have been changed to username (access key) "dietpi" and the default software password as secret key. Since MinIO requires the password to be at least 8 characters long, the default software password is concatenated until 8 characters are reached. E.g. if "test" was used, it will be "testtest" for MinIO. However, don't try it and use a secure default software password of 12 characters or more on production systems ;). Change it afterwards for the MinIO server in /etc/default/minio, and for the console client "mc" accordingly in /mnt/dietpi_userdata/minio-data/.mc/config.json.
- DietPi-Software | TigerVNC/RealVNC/XRDP: Those remote desktop servers do not actually require a desktop anymore, but just the X server. This allows lighter setups when using them to show an individual GUI application like Chromium only, instead of a full desktop. Many thanks to @fow0ryl for doing this suggestion: https://github.com/MichaIng/DietPi/issues/7947
Expand Down
Loading