pivpn: dhcpcd5 dependency breaks Pi OS Bookworm
In raising this issue I confirm that
- I have read the documentation
- I have read and understood the PiVPN General Guidelines
- I have read and understood the PiVPN Troubleshooting Guidelines
- The issue I am reporting isn’t a duplicate, see closed issues and open issues.
- I have searched for similar issues and solutions
- I can replicate the issue even after a clean OS installation
Describe the issue
The latest release of Pi OS is based on Debian Bookworm. This version has switched from dhcpcd to network-manager: https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/
The PiVPN installation of the base dependency dhcpcd5 (install.sh line 579: BASE_DEPS+=(dhcpcd5)) forces the removal of several core Pi OS packages: pi-bluetooth piwiz raspberrypi-sys-mods raspberrypi-ui-mods rpd-plym-splash userconf-pi
The following packages will be REMOVED:
pi-bluetooth piwiz raspberrypi-sys-mods raspberrypi-ui-mods rpd-plym-splash userconf-pi
This breaks the normal functioning of the OS.
The script installs this dependency at line 786 by generating the command: sudo apt-get --yes --no-install-recommends install dnsutils grepcidr bsdmainutils dhcpcd5 iptables-persistent from ${SUDO} ${PKG_INSTALL} "${TO_INSTALL[@]}"
Checking the dhcpcd5 package:
user@raspberrypi:~ $ sudo apt satisfy dhcpcd5
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
raspberrypi-sys-mods : Breaks: dhcpcd5 (< 1:8.1.2-1+rpt2) but 9.4.1-24~deb12u2 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Removing dhcpcd5 from BASE_DEPS no longer targets those OS packages for removal but breaks the install.sh script.
Expected behavior
The normal functioning of the OS must not be affected by the installation of PiVPN.
The script must support both the legacy distros and the new the Bookworm-based Raspberry Pi OS distro.
Please describe the steps to replicate the issue
- Create a bootable SD card with “Raspberry Pi OS Full (64-bit)” Released: 2023-10-10
- Boot from the card and install the OS, along with all the updates
- Open a terminal and run the standard PiVPN install script:
curl -L https://install.pivpn.io | bash - Notice that the install script decides it will have to remove several core Pi OS packages, before it pops up the Welcome screen
- Finish the PiVPN installation and reboot
- Notice that the login screen is now no longer Pi OS themed and that your login is rejected
Have you taken any steps towards solving your issue?
No quick solution is possible because the script is heavily reliant on dhcpcd.
Screenshots
Where did you run pivpn?
Raspberry Pi 4 B 8GB
Please provide your output from uname -a
Linux raspberrypi 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux
Details about Operative System
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Installation
The following packages will be REMOVED:
pi-bluetooth piwiz raspberrypi-sys-mods raspberrypi-ui-mods rpd-plym-splash userconf-pi
Profile / Client creation
No response
Debug output
::: Generating Debug Output
:::: PiVPN debug ::::
=============================================
:::: Latest commit ::::
Branch: master
Commit: f9ae9662ecc49896d09cdb38e177d2efa90e7119
Author: camdenAR
Date: Thu Oct 19 18:56:19 2023 -0500
Summary: fix(scripts): Match full client name when disabling
=============================================
:::: Installation settings ::::
PLAT=Debian
OSCN=bookworm
USING_UFW=0
IPv4dev=wlan0
IPv6dev=wlan0
dhcpReserv=1
IPv4addr=CENSORED
IPv4gw=CENSORED
install_user=CENSORED
install_home=/home/CENSORED
VPN=wireguard
pivpnPORT=CENSORED
pivpnDNS1=CENSORED
pivpnDNS2=CENSORED
pivpnHOST=REDACTED
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=0
INPUT_CHAIN_EDITEDv6=0
FORWARD_CHAIN_EDITEDv6=0
pivpnPROTO=udp
pivpnMTU=1420
pivpnDEV=wg0
pivpnNET=CENSORED
subnetClass=24
pivpnenableipv6=1
pivpnNETv6="CENSORED"
subnetClassv6=64
ALLOWED_IPS="0.0.0.0/0, ::0/0"
UNATTUPG=1
INSTALLED_PACKAGES=(dnsutils grepcidr bsdmainutils dhcpcd5 iptables-persistent wireguard-tools qrencode unattended-upgrades)
=============================================
:::: Server configuration shown below ::::
[Interface]
PrivateKey = server_priv
Address = CENSORED,CENSORED
MTU = 1420
ListenPort = CENSORED
=============================================
:::: Client configuration shown below ::::
::: There are no clients yet
=============================================
:::: Recursive list of files in ::::
:::: /etc/wireguard shown below ::::
/etc/wireguard:
configs
keys
wg0.conf
/etc/wireguard/configs:
clients.txt
/etc/wireguard/keys:
server_priv
server_pub
=============================================
:::: Self check ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] WireGuard is running
:: [OK] WireGuard is enabled
(it will automatically start on reboot)
:: [OK] WireGuard is listening on port CENSORED/udp
=============================================
:::: Having trouble connecting? Take a look at the FAQ:
:::: https://docs.pivpn.io/faq
=============================================
:::: WARNING: This script should have automatically masked sensitive ::::
:::: information, however, still make sure that PrivateKey, PublicKey ::::
:::: and PresharedKey are masked before reporting an issue. An example key ::::
:::: that you should NOT see in this log looks like this: ::::
:::: YIAoJVsdIeyvXfGGDDadHh6AxsMRymZTnnzZoAb9cxRe ::::
=============================================
:::: Debug complete ::::
:::
::: Debug output completed above.
::: Copy saved to /tmp/debug.log
:::
About this issue
- Original URL
- State: closed
- Created 8 months ago
- Comments: 17 (9 by maintainers)
Commits related to this issue
- feat(Network): Add support for network manager fix #1774: Add support for network manager running on Raspberrypi OS bookworm — committed to pivpn/pivpn by coolapso 8 months ago
- feat(Network): Add support for network manager fix #1774: Add support for network manager running on Raspberrypi OS bookworm — committed to pivpn/pivpn by coolapso 8 months ago
- feat(Network): Add support for network manager fix #1774: Add support for network manager running on Raspberrypi OS bookworm — committed to pivpn/pivpn by coolapso 8 months ago
This being said, next time you have a suggestion anywhere on a opensource project, better to make a valid one or maybe with some code.
ill take a look at this if I have time during the weekend
I think it’s a pretty good suggestion as it literally breaks raspbian (showstopper) and I wouldn’t want it to happen to anybody else. At the very least a warning in big characters and getting somebody to press Yes to continue. i’ve been spending the day rebuilding the pi from scratch (I had other software which I found tricky to configure, and I don’t regard myself as an expert). Lesson learned, keep backups up to date.
That being said thankyou for supplying/contributing to this and trying to sort it out. I know it’s time consuming.
🤦 yeah saw it now, got it working, and running tests.
@leimsiv thanks! I managed to get it working on the rpi3 thanks to the @TheCakeGit tip.
will run some tests and get back soon