Bug#988116: ITP: libdecor-0.1 -- client-side decoration library for Wayland
On Thu, 06 May 2021 at 00:11:37 +0100, Christian Rauch wrote:
> I am already maintaining an Ubuntu ppa at:
> https://launchpad.net/~christianrauch/+archive/ubuntu/libdecoration
> but would like to upstream the package into Debian.
Is the packaging you used in that Ubuntu PPA already available as a
git tree?
> Since this is my first time packaging a library for Debian, I could use
> support from a co-maintainer who is familiar with Wayland
More important would be to have a co-maintainer who is familiar with
packaging shared libraries, I think. There are some subtleties that are
important to get right.
It would probably make sense for the SDL team and/or the GNOME team to
be in Maintainer and/or Uploaders for this package - SDL wants to use it,
and it comes from GNOME infrastructure and uses GNOME-adjacent libraries
and coding conventions. I'm in both teams and would be willing to
co-maintain. I can help to implement the suggestions below, or you
could do them, whichever you'd prefer.
I haven't yet reviewed the upstream code at all (except for the build
system MR), but a Debian Developer will need to do that before upload,
to check for legality/licensing issues and make sure the code isn't
malicious or obviously broken (I'm sure it isn't, but someone should check).
Some quick review of the version from the PPA:
Package naming:
- Source package name should be libdecor-0 now that upstream has
co-installable naming conventions
- libdecor binary package should be renamed libdecor-0-0 to match the
SONAME libdecor-0.so.0, with Conflicts: libdecor, Replaces: libdecor
to avoid conflicts with the unofficial PPA package
- libdecor-dev binary package should be renamed libdecor-0-dev to match
the .pc file, with Conflicts: libdecor-dev, Replaces: libdecor-dev
- libdecor-plugin-cairo should maybe be renamed libdecor-plugin-1-cairo
or something, to reflect plugin_api_version
d/control:
- libdecor dependency on libwayland-client0 should be unnecessary, you
should find that ${shlibs:Depends} adds a suitable dependency
- Similarly libdecor-plugin-cairo dependency on libcairo2 and
libpangocairo-1.0-0 should come from ${shlibs:Depends}
- libdecor-plugin-cairo should probably have Provides: libdecor-plugin-1
- libdecor-0-0 should probably have
Recommends: libdecor-plugin-1-cairo | libdecor-plugin-1
so that third-party plugins (if any) can Provides: libdecor-plugin-1
- The Standards-Version is very out of date, please check that the package
follows current Debian Policy and then set it to the current Policy
version (4.5.1 at time of writing)
- libdecor-plugin-cairo needs a long Description
d/compat:
- Please use the recommended debhelper compat level (13) for new packages,
unless there is a very good reason to require an older compat level.
The preferred way to do this is to add
Build-Depends: debhelper-compat (= 13) and delete d/compat.
d/copyright:
- The version of the MIT/X11 license quoted here is called "Expat" in
d/copyright files, to distinguish it from the many other licenses
used by MIT and X11.
- You can probably use
Files: *
Copyright: (the same as you have now)
License: Expat
on the assumption that .gitignore, README, meson.build, etc. have the
same copyright holders and licensing as the rest of the package.
- Please declare a copyright holder (you or your employer) and a license
(probably Expat) for the debian directory.
- The copyright file isn't following copyright-format 1.0 syntax yet.
Please see the python3-vdf package (which I maintain) for an example of
a copyright file for a package with the same license as this one.
d/README.Debian:
- If you don't have anything to say here, please delete it
d/rules:
- Probably best to remove the commented-out stuff
- I would suggest enabling the demos and installing them in a new
libdecor-tests package - otherwise it'll be hard to do manual testing
on this package without having the patched SDL available. This will
need some extra build-dependencies.
If this package later gains automated tests, the libdecor-tests package
could contain those too.
Ideally the libdecor-tests package would have Build-Profiles: <!noinsttests>
(I can help with this).
d/source/format:
- Should be 3.0 (quilt) instead of 3.0 (native) for a package with an
upstream developer outside Debian
d/git-build-recipe.manifest:
- This should be removed for an official Debian package.
Other:
- There should be a debian/watch to download the latest official upstream
release. If upstream doesn't release tarballs then use something similar
to https://salsa.debian.org/gnome-team/gnome-desktop-testing/-/blob/debian/2018.1+git20210629-1/debian/watch
to download it directly from git.
- I think all shared library packages should have at least a superficial
autopkgtest, for example similar to the ones in
<https://salsa.debian.org/utopia-team/pipewire/-/blob/debian/master/debian/tests/libpipewire-0.3-dev>
or <https://salsa.debian.org/sdl-team/libsdl2-ttf>.
Reply to: