Re: Redis & SQLite FDW packages - Mailing list pgsql-pkg-debian

From Bradford Boyle
Subject Re: Redis & SQLite FDW packages
Date
Msg-id CAOMoQbS0XtbBRq-HYTPhERkojHArh2GcSCX4TaeZHZXTSpkycA@mail.gmail.com
Whole thread Raw
In response to Redis & SQLite FDW packages  (pgsqlitegis@tutamail.com)
List pgsql-pkg-debian
Hi Michel,

I have provided a some detailed comments about the files under debian/
below. However, as a high-level comment I am somewhat confused about the
layout of the repository. It looks like have both the unpacked source
package form and the original upstream source are being tracked in the
same repo. I know that it is mentioned that this is possible in the
postgresql-debian-packaging [1] documentation but I don't think I have
seen this done of additional tooling like gbp [2] which it doesn't look
like is the case here. When I attempt to build the package using either
sbuild or dpkg-buildpackge, it complains that no upstream tarball can be
found. What I've seen most commonly with packages maintained by the
Debian PostgreSQL Maintainers is that unpacked source format only is
maintained in a separate git repo (usually hosted on salsa.debian.org).
As a concrete example, the source package for pgvector is maintained at
https://salsa.debian.org/postgresql/pgvector and it only contains the
content of the debian/ directory. The upstream source tar archive is
downloaded from the GitHub repo for pgvector
https://github.com/pgvector/pgvector. This downloading can be done
wither manually or with uscan.

Assuming the desired end-goal is that the sqlite_fdw is available for
download and installation from the PGDG archive for all supported
versions of PostgreSQL, these are the steps that need to be done:

1. File an intent-to-package (ITP) bug [3] with bugs.debian.org
    * This will be the source of the bug number that will be referenced
      in the d/changelog line "Initial release. (Closes: #XXXXXX)"
2. Set up a Git repo on salsa.debian.org for maintaining the unpacked
   source package form and get that passing Salsa's standard CI/CD
   pipeline
    * Most the work creating the unpacked source package form is done
      and hosting on s.d.o is not strictly required but follows the
      convention most other PostgreSQL packages are following. Passing
      Salsa's standard CI/CD pipeline will give a good indication of
      whether the package will successfully upload to the Debian archive
3. Add configuration to pgapt [4] to configure the PGDG archive to
   build and publish the package for all supported Debian/Ubuntu
   distributions and all supported PostgreSQL versions


1. d/NEWS
    * You do not need the asterisk per [5]
2. d/changelog
    * should be UNRELEASED since the package has not been uploaded to
      the Debian archive yet. In my experience as a non-uploading team
      member, this is changed to unstable when the uploader uploads to
      the archive. It is set to unstable because that's the distribution
      that the upload is going to; it will automatically enter testing
      based on a set of criteria outlined in [6]. These terms are
      referring to the Debian distribution and not a reflection of the
      state of the upstream project. When the package is re-uploaded to
      the PGDG repos, a new changelog entry will be automatically
      appended with the appropriate distribution substituted.

    * The content of d/changelog is the changelog for the Debian source
      package not the upstream project -- I would not include content
      from any of the releases prior to the initial release version but
      this is my opinion/preference and not hard technical requirement.

3. d/control
    * The Maintainer field  should be set to the package maintainer's
      name and email address [7]
    * The Maintainer field is currently just as "Taiga Katayama" but
      this field is intended for the individual(s) who are maintaining
      the Debian package, not necessarily the upstream maintainer. This
      could either be set to yourself or to the Debian PostgreSQL
      Maintainers. Either way, you will most likely need to also include
      an Uploaders field which includes the name and email address of a
      uploader. [8]
    * There should only be one binary package for PostgreSQL 17 listed
      in d/control. The Debian archive only has one version of the
      PostgreSQL server packages available which for unstable is
      currently 17. Including the other versions and their build
      dependencies in the source package will fail to build when
      uploading to the archive. The archive hosted at PGDG will use
      d/control.in to re-build the package for all PostgreSQL versions
      available in the PGDG archive.
4. d/copyright
    * I am unsure about the use of 'PostgreSQL_like' in the License
      field. My overly cautious reading of [9] indicates that this field
      should use a standard short name and this name is not referenced
      in either [9] or [10]. Based on a quick reading of [11], I think
      the short name should be either 'PostgreSQL License' or
      'PostgreSQL'. However, I am not an expert on copyright matters and
      this is my opinion informed by the referenced links.

5. d/tests
    * I anticipate that the autopkgtests will fail as-is when building
      the packages on PGDG because of the hard-coding of the minor
      version in the paths to the SQL queries. I have a patch that uses
      wildcards to match the PostgreSQL major version to the appropriate
      tests.


[1]: https://salsa.debian.org/postgresql/postgresql-common/-/blob/master/doc/postgresql-debian-packaging.md
[2]: https://wiki.debian.org/PackagingWithGit
[3]: https://wiki.debian.org/ITP
[4]: https://git.postgresql.org/gitweb/?p=pgapt.git;a=summary
[5]:
https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.en.html#supplementing-changelogs-with-news-debian-files
[6]: https://wiki.debian.org/DebianTesting
[7]: https://www.debian.org/doc/debian-policy/ch-controlfields.html#maintainer
[8]: https://www.debian.org/doc/debian-policy/ch-binary.html#s-maintainer
[9]: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/#license-short-name
[10]: https://spdx.org/licenses/
[11]: https://spdx.org/licenses/PostgreSQL.html



pgsql-pkg-debian by date:

Previous
From: apt.postgresql.org Repository Update
Date:
Subject: check-postgres updated to version 2.26.0-2.pgdg+1
Next
From: Christoph Berg
Date:
Subject: apt.postgresql.org news