-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUILD(cmake): Improve install handling #6100
Conversation
@dvzrv I could use your input on what to do with install paths determined via pkgconf, if the user has provided a custom install prefix. What I did for now was to check whether a custom prefix was set (during the first time cmake runs) and if so, make the determined paths relative to that (stripping away what is considered the install prefix from the path and prepending the custom one). If you want to inspect the determined paths, you can pass |
Hello! I just wanted to chime in and say that this fixed my packaging issues when I tried to package the never mumble-server on gentoo. I couldn't get the systemd files to install in the proper locations. But now with the new cmake variables, it seems to work like a charm! Is there anything holding this up or are you simply still looking for feedback? |
I did notice that the new |
I'm looking for feedback and I am currently not really happy how the pkgconf integration works. Using pkgconf yields absolute install paths, which breaks cmake's install handling via I'm thinking of removing the pkgconf integration in our cmake files in favor of choosing a (widely) working default location relative to cmake's default install prefix. The new variables should then still allow packagers to get these files to the correct location in their specific distro 🤔
Indeed. That needs to be fixed, thanks 👍 |
Yeah, seems like a logical choice to remove the pkgconf stuff. Two more things I stumbled upon while testing this out.
However not having a way to configure this is not a big of a deal as we can do a search and replace for the
On my side when testning it seems like only the Before on Gentoo, the Ice file was manually installed into If there is only the |
Maybe |
I agree that it is probably not worth it as it seems to be the only file of this category?
It seem reasonable to me, yes :) . Usually most packages chucks misc files into their |
f7bc3c2
to
8d3f841
Compare
@DarkDefender @dvzrv could you have another look at this PR? I have decided to go the regular Furthermore, I think I have fixed all outstanding issues that @DarkDefender has discovered during their previous test. I decided against implementing the seemingly Gentoo-specific configuration of what files to install in the first place. That seems more complicated to implement on my side than I imagine removing unnecessary files is on the packaging side.
There might be more config files in the future and having file-specific install paths doesn't seem scalable. Plus, I think renaming can easily be done as long as you know where the file can be found in the first place :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Due to a lack of cmake knowledge I can only sanity check the commits, and that looks good to me :)
About the dbus config file removal: Besides that nitpick, I don't see any issues what so ever on my end! :) LGTM |
Just discovered an other nitpick, sorry. Shouldn't the Ice file be installed into |
The incorrect use of this function caused calls to get_pkgconf_variable to fail. Fixes mumble-voip#6038
When inferring install paths from pkgconf, failures to do so should not be silently ignored. Fixes mumble-voip#6038
By using systemd-tmpfiles, we can let the system set the ownership of the installed Mumble server INI file to be root and the group ownership to be _mumble-server, which is the special user that will start the server through the systemd service file. The group ownership ensures that the server has read access to the INI file.
The script assumed that the server executable is installed to /usr/sbin, but this is not necessarily the case.
Since the project's name appears in the cmake generated install path for the doc directory and it these directory names are usually lowercase, the project name was changed to be lowercase as well.
Instead of computing the install paths for auxiliary files inside the respective directory, we now bundle the install path determination with the rest of the paths inside the dedicated script.
If the config file was installed, then every user on the system running this DBus service would have unlimited access to the Mumble server. This is certainly not what we want and given that the DBus API to the server is considered deprecated anyway, this commit simply removes the config file from the Mumble source tree. Fixes mumble-voip#6098
The way I understood #6098 the config file was only providing global, system-wide DBus access to the Mumble server. That is to say that without the config file I assume users can still establish a per-user-level DBus access to the server. But I have never really looked into DBus, so maybe I'm wrong.
Nothing to feel sorry for. I essentially explicitly asked you to nitpick, so you're doing great :D
Good point. Yeah, I guess being explicit that this is a server-specific file probably doesn't hurt 🤔 👍 |
8d3f841
to
6925837
Compare
Inside the
auxiliary_files
directory, we were determining install paths for certain files (some of this was also buggy) instead of doing all that in the dedicated script. This has been streamlined now, along with some general changes to the way these paths are determined/handled.Additionally, there have been some issues concerning e.g. permissions of installed files, which has been fixed as well.
Fixes #6038
Fixes #6039
Fixes #6098
Checks