235 install(FILES surguch.metainfo.xml DESTINATION ${SHARE_INSTALL_PREFIX}/metainfo PERMISSIONS WORLD_READ) 236 237 IF (NOT DEFINED APP_ICON_DIR) 238 SET(APP_ICON_DIR /usr/share/icons/hicolor/scalable/apps/) 239 ENDIF () 240 IF (NOT DEFINED APP_ICON_PNG_DIR) 241 SET(APP_ICON_PNG_DIR /usr/share/pixmaps/) 242 ENDIF () Исправте пожалуйста это и другие места с хардкодолм
То есть всего-то заменить /usr/share на ${SHARE_INSTALL_PREFIX}
Все что захардкожено используется для локальной сборки из гита APP_ICON_DIR APP_ICON_PNG_DIR можно указать из .spec файла, как и SHARE_INSTALL_PREFIX
SHARE_INSTALL_PREFIX точно такая же hardcoded переменная, если другое не указано в spec файле.
сама семантика IF (NOT DEFINED) и Harcoded идут вразрез по смыслу. Harcoded - это по определению что-то, прибитое гвоздями. IF (NOT DEFINED) - это, скорее, значение по умолчанию. Которое, при желании, можно поменять на любое другое.
*** Bug 57231 has been marked as a duplicate of this bug. ***
(Ответ для proskurinov@basealt.ru на комментарий #3) > SHARE_INSTALL_PREFIX точно такая же hardcoded переменная, если другое не > указано в spec файле. Непонятно, зачем вам вот так определять APP_ICON_DIR и APP_ICON_PNG_DIR? SHARE_INSTALL_PREFIX, который задаётся в спеке в макросе %cmake чем вас не устраивает? При локальной сборке вам по какой-то причине нужно использовать иконки от установленного в систему? Но тогда вы могли бы задать эти переменные при локальной сборке. Но хорошо, если вам это ломает ваш рабочий процесс, задайте в спеке явно эти переменные: -%cmake -DCMAKE_BUILD_TYPE=Release -G Ninja +%cmake -DCMAKE_BUILD_TYPE=Release -G Ninja \ + -DAPP_ICON_DIR=%_iconsdir/hicolor/scalable/apps/ \ + -DAPP_ICON_PNG_DIR=%_pixmapsdir/ Это сделать ещё более несложно.
Ну собственно я с вами полностью согласен, всё это можно и нужно указывать в .spec , переменные были нужны для каких то pipeline-ов на каком-то из этапов проекта. Не вижу причин, почему бы они сейчас могли мешать, так как по факту - это не хардкод. Сейчас вникать в необходимость/возможность их удаления не вижу смысла, потому что придется тестировать все пайплайны для kde/gnome/xfce/mate, выглядит, как пустая трата времени. Вы правы, их нужно явно указать в spec файле, вот здесь наша недоработка, видимо просто забыли/недосмотрели. Собственно, я же сразу такое решение и предлагал - указать в спеке.
surguch-0.4.3-alt2 -> sisyphus: Tue Dec 30 2025 Oleg Proskurin <proskur@altlinux> 0.4.3-alt2 - Fix major mistakes in the .spec file (closes #57232).