mate-desktop / mate-media

Media tools for MATE
https://mate-desktop.org
GNU General Public License v2.0
19 stars 25 forks source link

meson: two misnamed files in in-process builds crash applet at startup #216

Open lukefromdc opened 6 months ago

lukefromdc commented 6 months ago

Expected behaviour

Building using meson with these options meson setup build --prefix=/usr -Dwayland=true -Din-process=true builds libmate-volume-control-applet.so and org.mate.applets.GvcApplet.mate-panel-applet and installed package works

Actual behaviour

Building using meson with meson setup build --prefix=/usr -Dwayland=true -Din-process=true builds liblibmate-volume-control-applet.so and org.mate.applets.GvcApplet.mate-panel-applet.desktop and installed applet cannot be found to add to panel (due to .desktop on desktop file filename) and if already present crashes on startup, looking for libmate-volume-control-applet.so when the file was installed as liblibmate-volume-control-applet.so

Steps to reproduce the behaviour

Download 1.28.1 or build from git master build and install with

meson setup build --prefix=/usr -Dwayland=true -Din-process=true
ninja -C build
sudo ninja -C build install

If already in the panel, the applet crashes at startup Applet also cannot be added to the panel.

Then look for the .desktop file and for libmate-volume-control-applet.so, you will find the wrongly named files instead. The .desktop file will properly call for running libmate-volume-control-applet.so (a previous bug affecting that was fixed a while ago), but the panel will ignore it, and if you rename it the .so file will only be found if present from a previous build.

Note that to duplicate this, you must fully remove any prior installation of mate-media. If a previous build is installed and 1.28.1 build with meson installed over it, the previous version of org.mate.applets.GvcApplet.mate-panel-applet will still be present, will be found and run the previous build's files, which due to the filename difference will not be overwritten! Also the properly named desktop file (without .desktop) will not be overwritten, will be found by the panel and run normally, entirely concealing this issue.

Due to this, I did not notice the problem until I had to nuke from orbit after a forced power cycle corrupted something in my root fs. On reinstalling and re-updating, no volume control. On digging for the problem, found the bad filenames

MATE general version

1.28

Package version

1.28.1

Linux Distribution

Debian Unstable

Link to bugreport of your Distribution (requirement)

None as this is a local build, not one of Debian's packages