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 via email to