-
Notifications
You must be signed in to change notification settings - Fork 6
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
Cannot install in Debian #2
Comments
I tested this on my end, the error I got was a failure to find the changelog file, even though it exists, is in the toplevel directory as expected, and in preparing the package I ran git log with the output redirected to the changelog. The error I got was I cannot translate what you got because I boycott Google for privacy reasons. I didn't see this myself because I have always used Checkinstall to build Debian packages in autotools, fetching the built directories from /var/tmp and copying them to a directory including a manually edited DEBIAN/control file. |
mkdir -p /usr/bin |
That looks like an attempt to copy the files directly into the root directory instead of into the package, as though running Turns out my normal DEBIAN/control files are completely invalid for last error I got was
|
A quick way to build an installable Debian package (not one Debian could offer in their repos though) is this: 1: configure and build (build is a no-op for this package) with meson, do not install yet 2: create a directory with the desired name of the package. I am using 3: create a DEBIAN/control file for the package and include it in the directory you just created. Also add this DEBIAN/postinst file:
so installing the package anywhere also recompiles the schemsa 4: Change ownership of this directory to root as a precaution against dpkg installing the files with normal user ownership. No idea if that still happens but I did see this in 2015. 5: For the directrory name I just listed, I "install" to the directory which will become the Debian package's contents with 6: I then add /usr/share/doc/mate-wayland-session and put the changlogs and other docs in there, this is optional for a local install 7: Run |
It seems installation paths are hardcoded in 'session/Makefile.am', so '--destdir' can not be respected. I've simply done the following before building - %{buildroot} is a rpmbuild macro:
but a general fix ('destdir' path instead of '%{buildroot}') is definitely needed. Beside of that, I've had to do also the following:
and: Purely "cosmetic", I am doing this as well (to unify naming with other Mate packages), even if absolutely not needed:
Everything with: |
Note that session managers (at least SDDM) seem to only look in /usr/share/wayland-sessions for wayland sessions and I think /usr/local cannot be used. The build system is one of my weakest areas here. Will try your suggestions.
As it stands now, built to install to /usr/local will hang on installing the schema, I could code it to not install the schema in that case (would just mean our theme defaults are not applied, nothing more), but I think the session directory has to be hardcoded too.
|
I renamed README.md to README and applied the cosmetic changes. A lot of this stems from the fact that I know very little about autotools and the documentation is difficult to understand. For building Debs using autotools I have only known Checkinstall followed by running There is probably no way I can get this into a state distros can use normally by myself. I was able to figure out the actual wayland porting, but I simply do not know packaging at the distro level at all. I need help from others to get this into a state distros can use. |
Thank you for commited changes. To make it more general (easily changed if it is not rpmbuild packaging with %{buildroot} set), I've changed the following:
to:
now. And, I am also changing '/bin/sh' to '/usr/bin/sh':
even if it would work also as it is (there is a link '/bin' to '/usr/bin' in RHEL 9...). I think it is a kind of "standard"? |
Note that I have never worked with RPMs save by opening them in an archive manager
|
All of my builds did in fact send the scripts to /usr/bin both in autotools and in meson. I don't know enough about the build system to understand the rest of what you posted at this moment. Never before have I attempted to create an entire package for use by distros as opposed to those customising one machine |
rpmbuild "prepares" files (during the %install phase) within a 'buildroot' directory (you can consider that as a kind of chroot), before they are actually packed into RPM(s). Normally, rpmbuild process takes care so that everything actually goes smoothly (it kind a changes prefix in install phase - prepend it with a I have therfore prepend paths for installation part of your 'session/Makefile.am' first with The last part just changes the scripts shebang from |
Feel free to submit a PR for this, especially if you can avoid having to hardcode installation paths. Be aware though that at least some session managers will only look for wayland sessions in /usr/share/wayland, and that the gschema override won't work unless it goes to the same directory the schemas were installed into for everything else. |
I'm sorry, I don't use git at all, and don't even know how to submit a PR (I am just browsing https://github.com and download what I need - usually tar packed release or commit stage, and / or some PR patches...). As much as I can see in In any case, it might be worth to mention in the build instructions that you can simply change an installation prefix during the package build process setting the DESTDIR ( |
Build system has received a great many changes to support making tarballs with |
Hello. I'm trying to create a deb package with mate-wayland-session, but while creating it I get an error:
Here is my debian/rules:
The text was updated successfully, but these errors were encountered: