linuxmint / cinnamon-control-center

A collection of configuration plugins used in cinnamon-settings
GNU General Public License v2.0
62 stars 67 forks source link

Wrong absolute symbolic links are generated #285

Closed vdcow closed 2 years ago

vdcow commented 2 years ago
 * cinnamon-control-center - latest master
 * Distribution - Alt Linux
 * 64 bit

Issue When build RPM package for cinnamon-control-center I have found that generated absolute symlinks for the package are broken (point to the buildroot, not final destination)

RPM build errors:
    absolute symlink: /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/cinnamon-control-center/panels/cinnamon-color-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-color-panel.desktop
    Symlink points to BuildRoot: /usr/share/cinnamon-control-center/panels/cinnamon-color-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-color-panel.desktop
    absolute symlink: /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/cinnamon-control-center/panels/cinnamon-display-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-display-panel.desktop
    Symlink points to BuildRoot: /usr/share/cinnamon-control-center/panels/cinnamon-display-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-display-panel.desktop
    absolute symlink: /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/cinnamon-control-center/panels/cinnamon-network-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-network-panel.desktop
    Symlink points to BuildRoot: /usr/share/cinnamon-control-center/panels/cinnamon-network-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-network-panel.desktop
    absolute symlink: /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/cinnamon-control-center/panels/cinnamon-wacom-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-wacom-panel.desktop
    Symlink points to BuildRoot: /usr/share/cinnamon-control-center/panels/cinnamon-wacom-panel.desktop -> /usr/src/tmp/cinnamon-control-center-buildroot/usr/share/applications/cinnamon-wacom-panel.desktop

My understanding that it happens because of the following code in install-scripts/desktop-file-links.py

if dest:
    root = dest
else:
    root = "/"

Most likely others RPM distros are affected as well because usually they install all files inside build root directory.

leigh123linux commented 2 years ago

It builds ok on fedora.

https://koji.fedoraproject.org/koji/buildinfo?buildID=1986081

vdcow commented 2 years ago

It builds ok on fedora.

https://koji.fedoraproject.org/koji/buildinfo?buildID=1986081

Ok, looks like it is because on Fedora %meson_install expands to

/usr/bin/meson install -C redhat-linux-build --no-rebuild

when on Alt Linux default way to install is

DESTDIR=%buildroot ninja-build -C %{__builddir} install
eli-schwartz commented 2 years ago

Ok, looks like it is because on Fedora %meson_install expands to

DESTDIR is set on the line before in those logs. I'm not sure how you think Fedora could install into a buildroot without using DESTDIR. :)

It builds ok on fedora.

@leigh123linux

I'm not surprised that the latest stable release builds fine in Koji for Fedora, given that the bug report is about git master and not the latest stable release.

This is genuinely broken -- and misusing Meson. I will submit a PR to fix it.