kpeeters / cadabra2

A field-theory motivated approach to computer algebra.
https://cadabra.science/
GNU General Public License v3.0
228 stars 37 forks source link

CMake violates the install path #117

Closed suhr closed 5 years ago

suhr commented 5 years ago

Cadabra 2.2.0

 * ACCESS DENIED:  unlinkat:     /usr/lib64/python3.5/site-packages/cadabra2.so
rm: cannot remove '/usr/lib64/python3.5/site-packages/cadabra2.so': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/lib64/python3.5/site-packages/cadabra2_defaults.py
rm: cannot remove '/usr/lib64/python3.5/site-packages/cadabra2_defaults.py': Permission denied
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/cadabra2/python/cadabra2.so
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/icons/hicolor/scalable/apps
 * ACCESS DENIED:  unlinkat:     /usr/bin/cadabra-gtk
rm: cannot remove '/usr/bin/cadabra-gtk': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/bin/cadabra-qt5
rm: cannot remove '/usr/bin/cadabra-qt5': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/applications/cadabra2.desktop
rm: cannot remove '/usr/share/applications/cadabra2.desktop': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/applications/cadabra2-gtk.desktop
rm: cannot remove '/usr/share/applications/cadabra2-gtk.desktop': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/64x64/apps/cadabra2.png
rm: cannot remove '/usr/share/icons/hicolor/64x64/apps/cadabra2.png': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/128x128/apps/cadabra2.png
rm: cannot remove '/usr/share/icons/hicolor/128x128/apps/cadabra2.png': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/256x256/apps/cadabra2.png
rm: cannot remove '/usr/share/icons/hicolor/256x256/apps/cadabra2.png': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/scalable/apps/cadabra2.svg
rm: cannot remove '/usr/share/icons/hicolor/scalable/apps/cadabra2.svg': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/64x64/apps/cadabra2-gtk.png
rm: cannot remove '/usr/share/icons/hicolor/64x64/apps/cadabra2-gtk.png': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/128x128/apps/cadabra2-gtk.png
rm: cannot remove '/usr/share/icons/hicolor/128x128/apps/cadabra2-gtk.png': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/256x256/apps/cadabra2-gtk.png
rm: cannot remove '/usr/share/icons/hicolor/256x256/apps/cadabra2-gtk.png': Permission denied
 * ACCESS DENIED:  unlinkat:     /usr/share/icons/hicolor/scalable/apps/cadabra2-gtk.svg
rm: cannot remove '/usr/share/icons/hicolor/scalable/apps/cadabra2-gtk.svg': Permission denied
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/bin/cadabra2-gtk
-- Set runtime path of "/var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image//usr/bin/cadabra2-gtk" to "/usr/lib"
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/cadabra2/images/cadabra2-gtk.png
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/icons/hicolor/64x64/apps/cadabra2-gtk.png
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/icons/hicolor/128x128/apps/cadabra2-gtk.png
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/icons/hicolor/256x256/apps/cadabra2-gtk.png
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/icons/hicolor/scalable/apps/cadabra2-gtk.svg
-- Installing: /var/tmp/portage/sci-mathematics/cadabra2-2.2.0/image/usr/share/applications/cadabra2-gtk.desktop
 * ACCESS DENIED:  open_wr:      /usr/share/icons/hicolor/icon-theme.cache
 * ACCESS DENIED:  utimensat:    /usr/share/icons/hicolor/icon-theme.cache
touch: cannot touch '/usr/share/icons/hicolor/icon-theme.cache': Permission denied
 * ACCESS DENIED:  fchmodat:     /usr/share/icons/hicolor/icon-theme.cache
chmod: changing permissions of '/usr/share/icons/hicolor/icon-theme.cache': Permission denied
kpeeters commented 5 years ago

Similar issue was posted here a while ago. These are two different things:

1) I am deleting some binaries which were at some point incorrectly installed in the wrong place (cadabra-qt5 and related). These, I agree, should go (that issue will most likely not bite anyone anymore).

2) Icons. I have been battling icons for days, and there simply seems to be no universally working solution that makes icons show up if you install them in anything but /usr/share/icons. Please tell me I am wrong about that and I'll happily change that part of the installation.

suhr commented 5 years ago

Even if /usr/share/icons is the only reasonable path for icons, it is not a good idea to ignore DESTDIR.

kpeeters commented 5 years ago

That doesn't solve my problem; either I install in /usr/share/icons or I don't install at all. What do you suggest when DESTDIR != /usr ?

suhr commented 5 years ago

DESTDIR is not PREFIX. It is the staging dir. From the docs:

If your installation step would normally install /usr/local/bin/foo and /usr/local/lib/libfoo.a, then an installation invoked as in the example above would install /tmp/stage/usr/local/bin/foo and /tmp/stage/usr/local/lib/libfoo.a instead.

You can ignore the prefix and install into /tmp/stage/usr/share/icons instead of /tmp/stage/usr/local/share/icons. But you should not ignore the DESTDIR, it is commonly used by package managers.

kpeeters commented 5 years ago

d11e42b67ee59fd5e6688ce18d5516e08cfc08f0 should fix this; let me know if it doesn't.