On Montag, 19. Oktober 2020 16:56:27 CEST Harald Sitter wrote: > On 19.10.20 12:30, Milian Wolff wrote: > > On Montag, 19. Oktober 2020 11:27:29 CEST Harald Sitter wrote: > >> Yo > >> > >> On 18.10.20 10:11, Milian Wolff wrote: > >>> Hey all, > >>> > >>> since some time now I'm only compiling parts of KF5 selectively into a > >>> custom prefix. Most notably, I'm only interested in ktexteditor and > >>> syntax- highlighting, and would like to obtain all other frameworks > >>> through my distribution packages. > >>> > >>> Sadly, this doesn't work as easily, as ktexteditor is trying to do this: > >>> > >>> ``` > >>> install(TARGETS kauth_ktexteditor_helper DESTINATION $ > >>> {KAUTH_HELPER_INSTALL_DIR} ) > >>> kauth_install_helper_files(kauth_ktexteditor_helper > >>> org.kde.ktexteditor.katetextbuffer root) > >>> kauth_install_actions(org.kde.ktexteditor.katetextbuffer buffer/ > >>> org.kde.ktexteditor.katetextbuffer.actions) > >>> ``` > >>> > >>> Because my KAuth is a system-provided installation, and KTextEditor > >>> should > >>> be installed into a user-writable prefix, I get this error on `ninja > >>> install`: > >>> > >>> ``` > >>> > >>> CMake Error at src/cmake_install.cmake:143 (file): > >>> file INSTALL cannot copy file > >>> "/home/milian/projects/kf5/build/frameworks/ktexteditor/src/ > >>> > >>> org.kde.ktexteditor.katetextbuffer.policy" > >>> > >>> to > >>> "/usr/share/polkit-1/actions/org.kde.ktexteditor.katetextbuffer.policy > >>> " > >>> > >>> Permission denied. > >>> > >>> Call Stack (most recent call first): > >>> cmake_install.cmake:77 (include) > >>> > >>> ``` > >>> > >>> I can workaround this by either commenting out the kauth install bits in > >>> ktexteditor or by installing kauth seperately too. But both are in my > >>> opinion not ideal. > >>> > >>> I don't think it's currently possible to overwrite the KAuth install > >>> directory at cmake configure time. I would like to change that, unless > >>> there is something I'm missing which would prevent this? I am hoping > >>> that > >>> any folder works as long as it's listed in the `XDG_DATA_DIRS` env var - > >>> can someone confirm this? > >> > >> Alas, the path is hardcoded at buildtime from what I see: > >> https://gitlab.freedesktop.org/polkit/polkit/-/blob/master/src/polkitback > >> end /polkitbackendinteractiveauthority.c#L302 > >> > >> Relevant: https://bugs.kde.org/show_bug.cgi?id=425272 > > > > So the path that needs to be used is actually the polkit path? > > That's my understanding of the code, yes. > > > Meaning the > > question where KAuth is being installed to doesn't really matter? That > > would imply that KAuth is broken anyways when it's not installed to the > > same prefix that polkit is being installed to, no? > > Nope. If the policy was installed to a different path it would be > broken, but the very error you posted is because kauth is insisting on > putting the policy in the correct path rather than the prefix the rest > of the build is installing to.
No, it's using the install location of kauth, it doesn't query polkit itself. I.e. if I hand-compile KAuth and install into a custom prefix, then I will have: ``` $ grep INSTALL /home/milian/projects/compiled/kf5-dbg/lib/cmake/KF5Auth/ KF5AuthConfig.cmake set(KAUTH_POLICY_FILES_INSTALL_DIR "/home/milian/projects/compiled/kf5/share/ polkit-1/actions") set(KAUTH_HELPER_INSTALL_DIR "lib/libexec/kauth") set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "/home/milian/projects/compiled/kf5/lib/ libexec/kauth") ``` Now I can happily compile e.g. ktexteditor against this, but it would be just as broken as the polkit files it installed will never be found anyways. So, I guess there are two things to solve here: a) make it easy to opt-out / disable kauth polkit file installation via a cache var in the `kauth_install_*` cmake macros, such that I can just disable that when building ktexteditor. b) find a way to query polkit for the right path to use and use that by default instead of the kauth install prefix. Or? -- Milian Wolff m...@milianw.de http://milianw.de
signature.asc
Description: This is a digitally signed message part.