Jambula-OS/CHANGELOG.md

276 lines
15 KiB
Markdown
Raw Normal View History

2025-09-10 10:17:54 +00:00
# Changes
2026-09-29 14:09:07 +00:00
## 2026.9.0
### Added
- Add initial support for x86_64
- Add initial support for Raspberry Pi Zero W v1.1
- Add ZeroPlay package and enable it along with libwebsockets on Raspberry Pi Zero W
- Add zeroplay-remote service for remote-controlled playback from any web browser on PC or mobile
- Add PipeWire support to the ZeroPlay service
- Add jambula-radio-volume service for time-based speaker volume control
- Add open gate audio alert handling to the MQTT events listener
- Add initial support for NFS file sharing on clients
- Add AdGuard Home ad blocker support with a buildroot package and setup option
- Add AdGuard DNS redirect and DoT block to the jambula-internal firewall zone
- Add WLAN_INTERFACE variable to global functions
- Add support for colors in dialog menus
- Show device name alongside MAC address in the Bluetooth discovery list
- Save errors to a log file during jambula-setup without breaking dialog screens
### Changed
- Bump Frigate to version 0.17.2 (via 0.17.1)
- Use a dedicated interface name (ap0) for the hostapd AP instead of the shared wlan device, and add it to the internal firewall zone
- Move detection and selection of wireless device(s) in setup scripts to a unified global function
- Refactor initial boot script for configuring system services
- Move systemd service disabling from the initial boot script to pre-configured presets
- Move psplash progress reporting from the jambula-initial-boot service into the called configuration scripts
- Start dnsmasq manually during prosody setup instead of via systemd
- Migrate tvheadend system user and config path from hts to tvheadend to match the buildroot package user
- Improve Bluetooth device auto-reconnection reliability during boot
- Update Jambula radio streams, schedule and speaker volume
- Update default motion configuration file
- Suppress verbose output during boot on Raspberry Pi Zero W
- Remove obsolete Raspberry Pi 1 Model B kernel config
- Remove realtek kernel module from the automatic startup list
- Skip snapcast client setup prompts when the system role is already known
- Switch system role and internet connection type dialogs from checklist to radiolist in jambula-setup
- Adjust jambula-setup dialog height for the selected options list
- Fix HTTP casing in the nginx setup dialog message
- Make dialog menu wording in select_wifi_device generic to cover both server and client setups
- Clarify pairing prerequisites and connection requirements in the Bluetooth setup script
- Remove redundant dialog clear at the end of the Tailscale setup script
- Remove leftover debugging code from the wifi client setup script
- Revert logging and descriptor redirection in functions introduced in dcdff7a (did not work as intended)
- Revert jambula-setup logging rules inside bash_profile to the original
### Fixed
#### Audio and Bluetooth
- Route audio playback through PipeWire so output to Bluetooth devices works
- Enable onboard Bluetooth on Pi Zero W by removing the disable-bt overlay and freeing the UART console
- Increment psplash progress after configuring wireplumber bluez during initial setup
- Resolve missing ALSA UCM configuration errors by creating a dummy ucm.conf
- Remove unsupported metadata_selector option from MPD input config
- Create the mpd log file and update its group ownership in the mpd server and playlists setup script
- Update snapclient systemd unit with dependencies and delay to resolve connection refused error during boot
- Remove unused START_SNAPCLIENT variable from the snapclient setup script
#### Networking, Wi-Fi and hotspot
- Configure the wifi interface via systemd-networkd during the temporary hotspot so the kea DHCP server works
- Restart kea-dhcp4 after hostapd on wifi band switch to restore client connectivity
- Enable kea DHCP lease persistence and remove the backup .orig config file
- Mask systemd-networkd-wait-online.service to reduce boot time
- Initialize Wi-Fi mode before checking the access point band in jambula-switch-wifi-ap-band
- Fall back to hostapd_cli for WiFi band when iw reports no channel
- Disable the in-kernel rtl8xxxu module to prevent conflict with the out-of-tree rtl8188eu AP driver
- Resolve hostapd startup errors by disabling 802.11ac on the 2.4 GHz AP and using the US regulatory domain for the temporary setup hotspot
- Harden initial temporary wifi hotspot setup script logic, fix kea syntax, and remove .local from avahi configuration
- Remove .local TLD from avahi static hosts configuration to prevent mDNS hostname conflicts
- Run dnsmasq in foreground and wait for the br0 WiFi hotspot IP to prevent systemd SIGTERM
- Silence firewall-cmd output during hostapd internal zone assignment
- Ensure AP networking is set up before configuring other services
- Check that the AP bridge device file exists before reading it to avoid initial setup errors
- Update and resolve bugs in wifi client setup
- Use WLAN_INTERFACE as the default wifi device in the prosody setup script
- Use WLAN_INTERFACE as the default wifi device in the AP networking setup script
- Restart service always when setting up Tailscale remote access
- Update ntp setup script to overwrite timesyncd config with local and remote NTP pool servers
- Increase fs.inotify.max_user_watches to prevent systemctl failures
#### Boot and initial setup
- Resolve initial boot hangs and delays while configuring the temporary hotspot
- Reduce initial boot delays in temporary Wi-Fi AP setup by replacing a blocking avahi poll with a bounded wait and trimming sleep times
- Reduce initial boot delays in system services setup by separating disable from stop and only stopping running units
- Increase jambula-initial-boot timeout to 300s to prevent premature termination
- Update initial-boot systemd service ordering and add error handling for psplash calls
- Add dhcpcd to the disable list, prevent abort on disable failure, and disable all matching unit extensions per service
- Add frigate, mariadb and radicale services to the systemd disable list during initial system configuration
- Correct zram-swap.service ordering to break a sysinit dependency cycle during boot
- Disable jambula-radio-volume.timer by default to stop repeated failures from missing config on first boot
- Stagger jambula systemd timers and remove RandomizedDelaySec to prevent concurrent execution
- Delay tty getty startup to keep boot log noise off the login prompt
- Clear invalid getty credential import path caused by slashes in instance names
- Display only one logo at boot time
- Resolve missing polkit rules directory errors via tmpfiles configuration
- Add clock system group to buildroot users_table.txt
- Write system time to RTC on sync to prevent hardware drift during jambula-clock execution
- Ensure the jambula config directory exists and prevent duplicate systemd symlink creation during smart radio setup
- Update setup script to read a single selection from radiolist dialog menus
#### Raspberry Pi Zero W hardware
- Reduce CMA reservation to 128MB to free up RAM
- Unblacklist bcm2835_codec for hardware H.264 decode and drop the redundant modules-load.d entry
- Enable bcm2835_codec module autoload during boot
- Increase GPU memory and enable the KMS driver for video playback
- Remove cgroup memory tracking from the kernel command line
- Enable dwc2 host mode overlay for USB keyboard/device support
- Trim linux-systemd.fragment to reduce cgroup/audit stack pressure, remove stray ARM64 4K-page fragment, and prune unused RPi board config/readme variants for raspberrypi-0-w
#### Services and packages
- Rework rain phrasing and make heavy-rain warnings list every forecasted day/period in the jambula-weather tool
- Improve MySQL database setup with startup ping checks, waits and an auto-reinitialization fallback
- Wait for the prosody systemd service to be active before adding chat users
- Update and rename patch to allow prosody to build with Lua 5.4
- Source the functions file in the tvheadend setup script to fix a missing dialog command
- Update tvheadend systemd service user to match the buildroot package
- Update frigate web symlink to the dist folder to fix frontend camera display
- Remove premature frigate web directory creation in the buildroot package makefile that prevented the symlink from being placed correctly
- Generate frigate sysconfig dynamically using buildroot package makefile variables
- Include the frigate web symlink in the frigate uninstallation script
- Remove legacy kodi reference from raspberrypi_5 defconfig paths
### Build
- Update buildroot config for Raspberry Pi Zero W (multiple updates)
- Update buildroot config for Raspberry Pi 1 B
- Update default config and variant fragments to match latest sources plus Linux kernel and headers
- Remove legacy options from config files in the latest sources
- Remove rpi4 firmware, bind, ntpd, squid and nut packages from buildroot config files for rpi5
- Increase TARGET_ROOTFS_EXT2_SIZE for all rpi5 images (7680M, then 7936M)
- Update BR2_LINUX_KERNEL_PATCH path in buildroot configs for rpi5
- Add rp1-pio kernel config fragment for Raspberry Pi 5 to fix rp1-pio probe error -2
- Add simple free and paid build targets to automate setup, configs and patches
- Improve package patching logic and strip level in the pre-build script
- Add rsync patch to fix compilation failure during package build
- Fix clean build failures of the pydio-cells package by adding missing dependencies and correcting directory permissions
- Add site-packages and working dir to PYTHONPATH in frigate package sysconfig generation
- Replace boot logo image assets with updated designs
- Remove the time command from free and paid image compilation steps
## 2026.5.3
### Added
- Add openNDS captive portal setup script
- Add system user definition for the openNDS captive portal server
- Integrate openNDS captive portal web pages into the post-build sync pipeline
- Add company domain name variable in global functions
### Changed
- Migrate AP wireless and routing services from wlan0 to the br0 bridge
- Refactor opennds setup script to use native configuration rules
- Use default and auto-generated database credentials for Pydio Cells setup
- Display created access credentials in MySQL database setup
- Secure password creation in the prosody setup script
- Refresh initial setup wizard layout and text colors for an improved onboarding experience
- Polish root password update dialog wording in jambula-setup
- Log jambula-setup background errors to keep screens clean
- Simplify systemctl reboot command during initial setup and protect the setup log variable called by other scripts
- Suppress background networking errors during the initial setup wizard
### Fixed
- Remove duplicate hardcoded wlan1 reference in internet via wpa_supplicant setup
- Ensure the MPD data directory and database exist during setup
- Evaluate wifi mode correctly in jambula-sysinfo
- Add missing http protocol prefix to the completion notice in webcam setup
### Build
- Upgrade openNDS package to version 11.0.0
- Add dnsmasq.conf to the overlay directory to fix a missing file error during initial setup
- Add kea DHCP lease parsing and fix dnsmasq systemctl reload in opennds libraries
- Add rpi5 Broadcom firmware to the rootfs overlay to ensure hostapd stability
## 2026.5.2
### Security
- Enable Yama LSM for ptrace restriction to mitigate CVE-2026-46333
- Disable vulnerable ESP and RXRPC modules to mitigate CVE-2026-43284
### Changed
- Update Bluetooth setup instructions to use the generic default audio sink
- Refine MySQL service startup dialog during initial database setup
- Polish MPD setup prompts and titles
- Improve root password prompt dialog during initial setup
### Fixed
- Route kea-dhcp clients to the gateway for local domain resolution
- Trim whitespace from vendor description and modernise bash test syntax in hostapd setup
- Include Chat Server in the setup options file during initial configuration
- Update sysinfo display to show edition instead of install date
- Simplify and fix network gateway IP and device parsing logic
- Ensure the options file is freshly created during setup
- Enable snapclient without starting it during initial setup to prevent shutdown hang
- Suppress journal log spam and correct mpc status parsing
- Ignore commented variant entries when parsing the os-release file in project functions
2026-05-17 19:32:12 +00:00
𝟐𝟎𝟐6.5.1
--------
Added XMPP chat server (Prosody) to the additional setup options.
Added Subject Alternative Name (SAN) support to the SSL certificate generation script.
Replaced systemd-resolved stub with dnsmasq for local DNS and changed the default system domain suffix to .lan.
Mitigated CVE-2026-31431 local privilege escalation vulnerability in the kernel.
Resolved critical system hangs during shutdown and reboots following the initial first-boot setup.
Forced hard reboots via kernel mode to ensure a pristine cold-boot state after setup.
Resolved a psplash boot hang caused by a missing framebuffer device, and removed the duplicate xlogo boot logo.
Implemented stalled playback detection and recovery for online streams in MPD.
Increased the TARGET_ROOTFS_EXT2_SIZE to 7168M for default and community editions.
Added Raspberry Pi 5 WiFi firmware symlinks to resolve boot errors.
2026-05-07 14:48:54 +00:00
𝟐𝟎𝟐6.5.𝟎
--------
Protect against the Copy Fail vulnerability
Added support for 5 GHz Wi-Fi band with reduced Bluetooth interference on combo wireless devices
Introduced built-in Prosody (XMPP) server with setup scripts and DNS support for local, offline messaging
Added new tool: jambula-switch-wifi-ap-band for easier Wi-Fi band management
Enabled automatic Wi-Fi interface detection during hotspot and client setup
Improved firewall configuration with updated zones, policies, and service rules (including XMPP and OpenNDS)
Added OpenNDS captive portal support with nginx integration
Added SSL certificate setup script
Upgraded Frigate to 0.17.x with continuous recording support and improved setup
Upgraded go2rtc to 1.9.14 with improved camera configuration
Enhanced MQTT tooling with multi-topic support and motion alerts
Fixed slow shutdown issues by improving service ordering (snapclient)
Added watchdog to improve MPD service reliability
Improved dnsmasq with nftables (nftsets) support
Added WebDAV support via nginx module
Cleaned up deprecated patches and removed unused packages
General system improvements, bug fixes, and stability enhancements
2025-09-10 10:17:54 +00:00
𝟐𝟎𝟐𝟓.𝟗.𝟎
---------
𝐁𝐥𝐮𝐞𝐭𝐨𝐨𝐭𝐡 𝐬𝐩𝐞𝐚𝐤𝐞𝐫 𝐬𝐮𝐩𝐩𝐨𝐫𝐭: Added support for Bluetooth audio devices which is ideal for voice prompts or music output.
𝐒𝐰𝐢𝐭𝐜𝐡𝐞𝐝 𝐭𝐨 𝐊𝐞𝐚 𝐃𝐇𝐂𝐏: Replaced dnsmasq with 𝐊𝐞𝐚 𝐃𝐇𝐂𝐏 for better dynamic addressing management.
𝐖𝐢𝐅𝐢 𝐡𝐨𝐭𝐬𝐩𝐨𝐭 𝐜𝐥𝐢𝐞𝐧𝐭 𝐜𝐨𝐮𝐧𝐭 𝐢𝐧 𝐌𝐎𝐓𝐃: See how many clients are connected to your hotspot right in the system’s MOTD.
𝐐𝐑 𝐜𝐨𝐝𝐞 𝐨𝐧 𝐢𝐧𝐢𝐭𝐢𝐚𝐥 𝐥𝐨𝐠𝐢𝐧: Displays a QR code linking to vendor/device info, useful for branding or support.
𝐈𝐦𝐩𝐫𝐨𝐯𝐞𝐝 𝐬𝐞𝐭𝐮𝐩 𝐭𝐨𝐨𝐥𝐬: Smoother first-time setup experience with updated scripts.
𝐇𝐨𝐦𝐞 𝐀𝐬𝐬𝐢𝐬𝐭𝐚𝐧𝐭 𝐮𝐩𝐝𝐚𝐭𝐞𝐝: Latest Home Assistant version included to keep your platform up to date.
𝐁𝐮𝐠 𝐟𝐢𝐱𝐞𝐬: Minor fixes including firewall and weather integration improvements.