Package: sponsorship-requests
Severity: normal

Dear mentors,

I am looking for a sponsor for my package "cunit":

 * Package name     : cunit
   Version          : 2.1-3-dfsg-3
   Upstream contact : Jerry St.Clair <[email protected]>
                      Anil Kumar <[email protected]>
 * URL              : https://cunit.sourceforge.net/
 * License          : LGPL-2.0+, GFDL-NIV-1.2+ (documentation),
                      GPL-2.0+ (debian/*)
 * Vcs              : https://salsa.debian.org/ejjl/cunit
   Section          : libs

The source builds the following binary packages:

  libcunit1 - Unit Testing Library for C
  libcunit1-dev - Unit Testing Library for C -- development files
  libcunit1-ncurses - Unit Testing Library for C (ncurses)
  libcunit1-ncurses-dev - Unit Testing Library for C (ncurses) -- development 
files
  libcunit1-doc - Unit Testing Library for C -- documentation

To access further information about this package, please visit the
following URL:

  https://mentors.debian.net/package/cunit/

Alternatively, one can download the package with dget using this command:

  dget -x 
https://mentors.debian.net/debian/pool/main/c/cunit/cunit_2.1-3-dfsg-3.dsc

The package needed quite a bit of polishing up after updating the
debhelper-compat to 14, which is all reported here below.

Changes for the just uploaded package:

 cunit (2.1-3-dfsg-3) unstable; urgency=medium
 .
   * New maintainer (Closes: #1136394)
   * debian/control:
     - Maintainer set to myself; Uploaders and debian/compat dropped
     - debhelper-compat: 9 -> 14; Build-Depends: dh-autoreconf dropped
     - Standards-Version: 3.9.6 -> 4.7.4
     - Priority and Rules-Requires-Root dropped: both are the default since
       dpkg 1.22.13 and are now flagged as redundant
     - Homepage: switched to https
     - Vcs-Git and Vcs-Browser: point at the repository where the package is
       actually maintained
   * debian/rules:
     - drop --with autoreconf (implicit since compat 10)
     - drop DH_VERBOSE and the legacy DPKG_EXPORT_BUILDFLAGS
     - set DEB_BUILD_MAINT_OPTIONS = hardening=+all; the ncurses build had
       lost every hardening flag because -lncurses was passed as a configure
       LDFLAGS assignment, overriding dpkg-buildflags.  Pass it via LIBS
     - split the dh_install, dh_installman and dh_installexamples overrides
       into -arch and -indep variants.  "dpkg-buildpackage -A" installed both
       build trees but built only libcunit1-doc, so dh_missing, which is fatal
       since compat 13, aborted the arch:all-only build
     - keep the examples in /usr/share/doc/libcunit1-doc; since compat 11
       debhelper would auto-detect libcunit1 as the main package and relocate
       them, and libcunit1-doc does not depend on libcunit1
   * debian/watch: rewritten in the version 5 format, https URL, fixed mangles
   * debian/patches: DEP-3 headers on all patches; new patches renaming
     configure.in to configure.ac and fixing a manpage typo
   * debian/not-installed: added (dh_missing is fatal since compat 13)
   * debian/upstream/metadata: added
   * debian/salsa-ci.yml: added, with the arm64 and riscv64 build jobs enabled
     in addition to the default amd64 and i386
   * debian/tests: replaced the stale test.sh, which referenced build
     directories that do not exist at test time, with two tests compiling
     against the installed packages via pkg-config
   * debian/source/lintian-overrides: document the unavoidable
     hyphen-in-upstream-part tag
   * debian/copyright: https URLs; added myself to debian/*

This is my first package as a maintainer; I filed the ITA as #1136394 after
the package was orphaned. The changes are packaging-only: there is no new
upstream release (upstream last released 2.1-3 in April 2014) and no security
component. The upload targets unstable/forky.

Verification performed:

  * builds cleanly with sbuild against unstable (amd64), both the full build
    and the arch:all-only build (dpkg-buildpackage -A)
  * autopkgtest passes both tests (basic and ncurses variants), compiling
    against the installed packages via pkg-config
  * lintian from unstable is clean apart from the tags discussed below
  * Salsa CI is green: builds on amd64, i386, and arm64, plus source build,
    lintian, piuparts, autopkgtest, blhc, reprotest/debrebuild, uscan,
    test-build-any and test-build-all
  * debdiff against 2.1-3-dfsg-2.7 shows no unintended change to the shipped
    files

Three packaging bugs were found and fixed in the process:

  * The arch:all-only build (dpkg-buildpackage -A) failed. debian/rules
    installed both build trees unconditionally, but a binary-indep build only
    builds libcunit1-doc, leaving the libraries, headers, pkg-config file and
    manpage unclaimed; dh_missing, fatal since compat 13, then aborted the
    build. This was introduced by the compat 9 -> 14 upgrade in this very
    upload - at compat 9 dh_missing did not run at all - and would have meant
    libcunit1-doc never building on the archive's arch:all buildd. Caught by
    Salsa CI's test-build-all job. Fixed by splitting the dh_install,
    dh_installman and dh_installexamples overrides into -arch and -indep
    variants, and by having dh_missing only list (not fail on) the arch:any
    files during an arch:all-only build.
  * debian/rules passed LDFLAGS="-lncurses" as a configure command-line
    assignment for the ncurses build. That overrides the environment set by
    dpkg-buildflags, so the ncurses library was built without any hardening
    flags (no bindnow, no relro) and without -Wl,-z,defs. Fixed by passing
    -lncurses via LIBS, which is where libraries belong; the hardening flags
    are now present in both libraries.
  * debian/tests/test.sh referenced debian/tmp and debian/tmp-ncurses, which
    do not exist when autopkgtest runs. The test passed only because gcc fell
    back to the installed headers and library.

One further consequence of the compat upgrade was caught by debdiff: since
compat 11, debhelper auto-detects libcunit1 as the "main package" for
libcunit1-doc and would have relocated the examples from
/usr/share/doc/libcunit1-doc/examples to /usr/share/doc/libcunit1/examples,
even though libcunit1-doc does not depend on libcunit1. debian/rules now
passes --doc-main-package=libcunit1-doc so the files stay where the archive
has always had them.

Remaining lintian tags, all deliberate:

  * no-symbols-control-file (I, both libraries): upstream has been frozen
    since 2014, so per-symbol versioning would produce dependencies identical
    to the existing shlibs. Happy to add symbols files if you prefer.
  * patch-not-forwarded-upstream (I, two patches): both patches are from
    previous NMUs. Upstream is dormant - no release since 2014 and the
    SourceForge bug tracker is inactive.
  * hyphen-in-upstream-part-of-debian-changelog-version (P): overridden with
    an explanatory comment. The upstream version genuinely is "2.1-3".
    Switching to +dfsg is not possible without breaking version ordering:
    dpkg --compare-versions "2.1-3+dfsg-3" gt "2.1-3-dfsg-2.7" is false.
    I intend to switch to +dfsg if upstream ever releases above 2.1-3.
  * package-uses-experimental-debhelper-compat-version: no longer emitted by
    lintian in unstable; compat 14 is a deliberate choice, as this targets
    unstable/forky only.
  * debian-watch-does-not-check-openpgp-signature (X): upstream publishes no
    OpenPGP signatures - the 2.1-3 release directory contains only the
    tarball.

Note on debian/watch: it uses the version 5 (rfc822-style) format. This is
parsed correctly by devscripts 2.26 in unstable and accepted by lintian
there, but uscan in trixie cannot read it. I am happy to revert to version=4
if you consider that premature.

Many thanks also to all on IRC and the mentors mailing list who helped
with this!

Kind regards,

    Edmund Lodewijks


--
Edmund Lodewijks <[email protected]>
TZ: UTC+2 / GMT+2

Reply via email to