Before this commit, if you attach a portable service using a profile that doesn't exist, it just doesn't add the profile dropin and no warning nor anything is shown: $ portablectl attach -p nonexistent xxx (Matching unit files with prefix 'xxx'.) Created directory /etc/systemd/system.attached. Created directory /etc/systemd/system.attached/xxx-capsule.service.d. Written /etc/systemd/system.attached/xxx-capsule.service.d/20-portable.conf. Copied /etc/systemd/system.attached/xxx-capsule.service. Created symlink /etc/portables/xxx.raw → /var/lib/portables/xxx.raw. $ ls /etc/systemd/system.attached/xxx-capsule.service.d/ 20-portable.conf The 10-profile.conf is not added. If no profile is attached, the /run bind mount is not added and then lot of things inside fail in ways that don't make sense. This patch just makes portable_attach() and reattach check the profile exists. If it doesn't exist, it shows this error now: # portablectl -p doesntexists reattach xxx (Matching unit files with prefix 'xxx'.) ReattachImage failed: Profile 'doesntexists' does not exist, refusing. (Available profiles are: default, nonetwork, strict, trusted) In reattach we do it early, before detach, so we don't detach and then fail to attach it and leave the service detached. An empty profile name is rejected too by the call to filename_is_valid(). portablectl already rejects empty profile names. Please note that we don't change install_profile_dropin(), as that skips non-existing profiles because that is done at the unit type level and it's okay if it doesn't exist for some unit types. For example, /usr/lib/systemd/portable/profile/trusted/ ships a service.conf, but not timer.conf, socket.conf, etc. (cherry picked from commit 5642eb3d848300f7225dff25fdd82940e55101c9)
System and Service Manager
Details
Most documentation is available on systemd's website.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
