-
Notifications
You must be signed in to change notification settings - Fork 44
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
Improve Debian packaging #162
Conversation
- Fix Upstream-Name and Source URL. - Add Upstream-Contact. - Fix LGPL's long name. - Fix path to source file Invalid image.
- Migrate to dh-sequence-gir and dh-sequence-python3. - Drop libxapp-dbg in favour of automatically built *-dbgsym packages.
This is needed because of the new Replaces and Breaks stanzas and will eventually be replaced once when the real version 2.4.2 is released.
- Add new symbols. - Add Build-Depends-Package: libxapp-dev.
…nuxmint#149) - Introduce new packages for the GTK3 module and `xapp-sn-watcher`. - Move xinitrc script `xapp-gtk3-module.sh` to package libxapp-gtk3-module. - Move D-Bus service file `org.x.StatusNotifierWatcher.service` and autostart file `xapp-sn-watcher.desktop` to package xapp-sn-watcher as well. - Add dependency on libxapp-gtk3-module and xapp-sn-watcher to libxapp1.
…ession.d This script has been moved to the standard location /etc/X11/xinit/xinitrc.d by commit cba181d that is yet not supported neither by Debian nor by Ubuntu. So unless the user has a custom .xinitrc to source files in /etc/X11/xinit/xinitrc.d or any other mechanism, `80xapp-gtk3-module.sh` is going to be ignored at startup.
- Introduce new package mate-xapp-status-applet to properly reflect dependencies on mate-panel and girepository files. - Align mate panel applet's icon name with the applet name. - Move schema definition for mate panel applet out of `org.x.apps.gschema.xml` into `org.x.apps.mate-panel-applet.gschema.xml`. - Let xapp-sn-watcher suggest mate-xapp-status-applet as well as xfce4-xapp-status-plugin.
- Add source/lintian-overrides, libxapp-gtk3-module.lintian-overrides, and mate-xapp-status-applet.lintian-overrides to prevent false positives. - Add xapps-common.lintian-overrides to silence lintian warnings about missing manpages and non-standard Berber locale.
- Add missing dependency on netcat because of its use in `pastebin`. - Add explicit dependencies on libcairo2-dev and libglib2.0-dev because both are exposed to the user through header files and `xapp.pc`. - Add explicit build dependency on libdbus-1-dev because of its use in `meson.build`. - Remove explicit dependency on libgnomekbd8 from libxapp1 because it is already automatically added by dh_shlibdeps through ${shlibs:Depends}. - Remove no longer applicable ${python:Depends} and ${shlibs:Depends} from gir1.2-xapp-1.0 to prevent warnings from dpkg-buildpackage. - No need to explicitly build-depend on dpkg-dev (>= 1.15.1) because debhelper (>= 12) already depends on dpkg-dev (>= 1.18.2). - Prefer package libgdk-pixbuf-2.0-dev over the transitional package libgdk-pixbuf2.0-dev. - Sort order of dependencies. - Mark xapps-doc with Multi-Arch: foreign. - Declare Rules-Requires-Root: no. - Add Homepage and Vcs-* stanzas. - Update Standards-Version: 4.6.1. - Fix package descriptions.
@uhle thanks for prepare this PR, some fix like 80xapp-gtk3-module.sh path and package split was already done in debian packages (https://salsa.debian.org/cinnamon-team/xapp) but in something seems you did more improvements here |
for don't waste time on other changes and related PRs probably is better ask before to @clefebvre @mtwebster if they accept this |
Fabio, I know these are quite a lot of packages. It's not like I just would want it to be like that. I do also prefer to have as few packages as possible. But still I have decided for the necessary but least intrusive changes. It is all for good reasons. I have tried to explain why I think these separate packages are necessary with respect to the Debian policies, but it seems that I have to elaborate on it a little more. So why do I think these changes are necessary? /usr/lib/i386-linux-gnu/libxapp.so.1 -> libxapp.so.2.4.1 /usr/lib/i386-linux-gnu/gtk-3.0/modules/libxapp-gtk3-module.so /usr/lib/x86_64-linux-gnu/libxapp.so.1 -> libxapp.so.2.4.1 /usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libxapp-gtk3-module.so /usr/libexec/xapps/sn-watcher/xapp-sn-watcher So it is clear that we cannot leave Do these changes imply any changes in projects that depend on Speaking of dbgsym migration. And now to the license file. Speaking of updating the commits. |
I looked too fast the first time, after better review of changes I saw that are needed and I'll do in debian packages anyway, hope will be accepted also here. |
@uhle as I saw in debian that remove a conf file moved to another package with maintscript (I mean /etc/xdg/autostart/xapp-sn-watcher.desktop) cause it to be removed from new packages in many cases, keep the warning of obsolete file is better that risk to don't have it: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886389#50 edit: |
I don't like to comment on dbgsym migration any longer. It's not worth it. Although I don't see the benefit of not letting debhelper automatically do its job, I am going to revert that change and add the other two debug packages to For the dependencies on the new packages, it has to be Regarding the XDG autostart file Anyway, I have not experienced any problems with |
I hope that all changes including dbgsym will be accepted but we need to wait @clefebvre and @mtwebster reply to know (and hope that the evaluation/application of this PR is not deferred to the next version, after half a year) |
Of course I can change the file name
Anyway, it is no problem to have this file in a package that is marked |
I already applied major of your packaging changes and in debian: https://packages.debian.org/source/experimental/xapp |
Looks good at a first glance. |
We don't need a package for the MATE applet and we don't need dependencies on mate-applet. It doesn't matter if the applet isn't functional without the panel. Nobody's installing it or expecting it to work without MATE. The argument that cinnamon/xfce users don't need the applet is more relevant though. But it's not a reason enough to complexify the packaging and have yet another package. Only disk space is at stake here and it's minimal. We could use the same argument for translations. A majority of users only use English, so we could make an -l10n package.. but then German users might argue they don't need non-German translations, so we'd need an -fr, -de, -es etc.... packages. Disk space optimization, at that scale, doesn't matter. For these reasons I disagree with a dependency on mate-panel or the creation of a dedicated mate package. |
The following commits look good to me:
|
Hi, the package changes of this PR have already been applied to the debian packages for debian 12 and on Sunday I did the last remaining tests to upgrade debian 11->debian 12 without encountering any problems. |
Looks good as well. I wouldn't mind going back to the original filename also (i.e. without the .sh suffix). |
good, thanks, debian packaging already did it for a long time (both the path change and remove the suffix) |
/usr/libexec/xapps/sn-watcher/xapp-sn-watcher can be moved to an arch-dependent path and remain part of libxapp1. We don't need a separate package for that. LibXapp supports backwards compatibility as much as possible, that's part of our principles so there's no need for multiple versions to be concurrently installed. |
@clefebvre even if "mint softwares" unfortunately do not increment the versions in case of ABI break, keep inside libxapp1 will be a policy issue and can't be done in debian without risk to open RC (release critical) bug when someone spot them, see for example https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1000824 |
This has nothing to do with Mint software. Any app using libxapp is supported. |
xapp as used by many apps and not only components used only by cinnamon (like muffin) should increase the need for good packaging and increase the library version in case of ABI break in debian for now there is already timeshift that use xapp and is out of packages maintained by cinnamon team |
This is continued at #163. |
The current Debian packaging has several issues that this PR is addressing, most notably:
Multi-Arch: same
, mainly because ofxapp-sn-watcher
. The solution would be to package it in its own binary package because it cannot be moved to the architecture-independent package xapps-common (Arch: all
). Moreover, the GTK3 module should also not be packaged in libxapp1 (see libxapp1 don't respect debian policy about shared libraries #149), but cannot be together withxapp-sn-watcher
in the same package because the package with the GTK3 module needs to be co-installable for different architectures (similar to libxapp1). That is why I propose to do it similar to what is common in Debian (see package libcanberra-gtk3-module for instance).80xapp-gtk3-module.sh
had been moved to the standard location/etc/X11/xinit/xinitrc.d
by commit cba181d that is yet not supported neither by Debian nor by Ubuntu. So unless the user has a custom.xinitrc
to source files in/etc/X11/xinit/xinitrc.d
or any other mechanism,80xapp-gtk3-module.sh
is going to be ignored at startup. That is why this script should still be in/etc/X11/Xsession.d
on any Debian, Ubuntu or Linux Mint system.debian/control
. One of these missing dependencies is the package mate-panel itself. Therefore, I would also like to propose to put it into a separate package. Anyway, a regular Xfce or Cinnamon user for instance doesn't need the MATE panel applet to be installed on the system.debian/libxapp1.symbols
with the new symbols, clean updebian/control
anddebian/rules
, fix some minor issues withdebian/copyright
, and add somelintian-overrides
files).Unfortunately, I had to add an unreleased version to
debian/changelog
as an intermediate solution, so that the relations between the packages can be properly resolved (mostly because of theReplaces
andBreaks
indebian/control
). This changelog entry can be fully replaced with the real entry for version 2.4.2 once this is going to be released.