linuxmint / cinnamon-settings-daemon

The settings daemon for the Cinnamon desktop
GNU General Public License v2.0
57 stars 58 forks source link

do not delete programs and replace them with broken symlinks to themselves #321

Closed eli-schwartz closed 3 years ago

eli-schwartz commented 3 years ago

commit 67d8cc67f666b726c2d76b6c1c6eb1dcc4cc53cc tries to ensure the programs are available from multiple locations, because users might have custom desktop files with broken paths. Unfortunately it does so by unconditionally deleting one of those locations!

This is exceedingly problematic on distros that do not use the lib vs. libexec split, because libexecdir == pkglibdir, hence the install script first deletes the program itself, then creates a symlink pointing to itself.

$ tree pkg/usr/lib/cinnamon-settings-daemon
pkg/usr/lib/cinnamon-settings-daemon
├── csd-a11y-keyboard -> csd-a11y-keyboard
├── csd-a11y-settings -> csd-a11y-settings
├── csd-automount -> csd-automount
├── csd-background -> csd-background
├── csd-backlight-helper -> csd-backlight-helper
├── csd-clipboard -> csd-clipboard
├── csd-color -> csd-color
├── csd-cursor -> csd-cursor
├── csd-datetime-mechanism -> csd-datetime-mechanism
├── csd-housekeeping -> csd-housekeeping
├── csd-input-helper -> csd-input-helper
├── csd-keyboard -> csd-keyboard
├── csd-list-wacom -> csd-list-wacom
├── csd-locate-pointer -> csd-locate-pointer
├── csd-media-keys -> csd-media-keys
├── csd-mouse -> csd-mouse
├── csd-orientation -> csd-orientation
├── csd-power -> csd-power
├── csd-printer -> csd-printer
├── csd-print-notifications -> csd-print-notifications
├── csd-screensaver-proxy -> csd-screensaver-proxy
├── csd-smartcard -> csd-smartcard
├── csd-sound -> csd-sound
├── csd-wacom -> csd-wacom
├── csd-wacom-led-helper -> csd-wacom-led-helper
├── csd-wacom-osd -> csd-wacom-osd
├── csd-xrandr -> csd-xrandr
└── csd-xsettings -> csd-xsettings

Fixes https://bugs.archlinux.org/task/69309 Fixes regression in #320

mtwebster commented 3 years ago

Sorry!