#1148838 lintian: update Go package name checks for dh-go module-aware builds

#1148838#5
Date:
2026-09-24 08:41:22 UTC
From:
To:
Dear Lintian Maintainers,

With the ongoing Go Team transition to `dh-go` and module-aware builds,
the team has updated the naming conventions for Go packages. You can
find the diff of changes here:
https://wiki.debian.org/action/info/Teams/DebianGoTeam/ModuleAwareBuilds?action=diff&rev2=11&rev1=8&utm_source=gemini

Under the updated guide, source package rename are minimized to reduce
maintenance overhead. So that, the tag check source package name to
matches API version such as `go-source-package-does-not-include-version`
may retired. And the package naming check should focus on the `-dev`
binary packages for tag `go-library-package-does-not-include-version`.

Maybe needs some enhance to inspect the root `go.mod` file shipped
within the `-dev` binary package and verify that:

1. The major API version suffix in the go import path of the root
   `go.mod` matches the `-vN` suffix in the binary package name.
2. If import path containing slashes and dots for versioned suffix
   (eg: `/pkg.v3`) convert slashes to hyphens and preserve the dot
   (eg: `-pkg.v3-dev`) to avoid naming confusions.

Checking the root `go.mod` file within the binary package provides two
main benefits:
1. Validates the binary package name matches its Go import path.
2. Avoids false-positive warnings on transitional packages that do not
   ship a `go.mod` file.

Thank you for your great work on Lintian!

Best regards,

#1148838#10
Date:
2026-09-24 10:37:15 UTC
From:
To:
I did not really understand what is it that you exactly want. You want

a) go-source-package-does-not-include-version to go away
b) want to check the -vN in -dev package

Is that so?

b) is covered already by go-library-package-does-not-include-version so I
am pretty confused here.

Kindly clarify.

#1148838#15
Date:
2026-09-24 11:07:22 UTC
From:
To:
Hi Nilesh,
Yes, is that.

In real fact, I also got `go-library-package-does-not-include-version`
warning on the -dev dummy transitional package which doesn't ship any
go.mod file. So I use `Maybe needs some enhance`. :)

Best regards,

#1148838#20
Date:
2026-09-24 11:47:10 UTC
From:
To:
I see. Under previous module aware build discussion, dh-golang (or dh-go?) would
fit all go.mod in the -dev package and I did not account for transitional packages
in the lintian check.

Unfortunately, determining the "root" go.mod in the `.deb` is non-trivial as
lintian runs separately on the `.dsc` and the `.deb`.

That being said, since we do expect `go-library-package-does-not-include-version` to go away
at some point after the transition is over, is it acceptable for you if this tag is not emitted
if the said package is in `oldlibs` section as mentioned in [1]? That would ideally cover your transitional
package case.

Let me know.

[1] https://wiki.debian.org/action/info/Teams/DebianGoTeam/ModuleAwareBuilds#Renaming_Legacy_Package

#1148838#25
Date:
2026-09-24 12:03:29 UTC
From:
To:
Right. I didn't thought about we can skip that if it's in `oldlibs`
section. I think this approach will works great for us. Thanks a lot
for working through this!

Best regards,

#1148838#30
Date:
2026-09-24 16:06:56 UTC
From:
To:
```
golang-package-without-version-suffix (source): go-library-package-does-not-include-version golang-package-without-version-suffix-dev
```

So it is helpful for lib+prog packages.

I also made the oldlibs change plus removing go-source-package-does-not-include-version tag and opened an MR:
https://salsa.debian.org/lintian/lintian/-/merge_requests/813

Set the same to automerge.

HTH,
Nilesh

#1148838#33
Date:
2026-09-24 18:08:39 UTC
From:
To:
Hello,

Bug #1148838 in lintian reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/lintian/lintian/-/commit/f6d518a88c2d96d26584df27ac149c70cc0b6243

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1148838

#1148838#40
Date:
2026-10-09 21:34:20 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
lintian, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1148838@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Louis-Philippe Véronneau <pollo@debian.org> (supplier of updated lintian package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 09 Oct 2026 17:16:31 -0400
Source: lintian
Architecture: source
Version: 2.142.0
Distribution: unstable
Urgency: medium
Maintainer: Debian Lintian Maintainers <lintian-maint@debian.org>
Changed-By: Louis-Philippe Véronneau <pollo@debian.org>
Closes: 1147715 1148076 1148185 1148716 1148838 1148880 1149119
Changes:
 lintian (2.142.0) unstable; urgency=medium
 .
   [ Louis-Philippe Véronneau ]
   * Update old and ancient Python versions and simplify tags' code
 .
   [ Nilesh Patra ]
   * Testsuite.pm: resolve d/t/control via `->child` call for special case
     where d/tests is a file and simplify logic
   * Systemd.pm: Make key extraction non-greedy so it does not consume the
     space in key value (Closes: #1147715)
   * tests(systemd-complex-service-file): Adjust hints with fix for #1147715
   * tags(script with missing dependencies): Mention about making script
     non-executable for cases where the script would not be used by the package
     directly (Closes: #1148716)
   * Drop tag `go-source-package-does-not-include-version` and do not emit
     `go-library-package-does-not-include-version` with `oldlibs` as section
     (Closes: #1148838)
   * tests(golang-package-without-version-suffix): tweak test to check against
     #1148838
   * Python.pm: Add python3-flit also to check for `flit_core.buildapi`
     (Closes: #1148880)
   * Python.pm: Drop `:any` from the check for python modules for dependency
     checking in pyproject.toml
   * tests: Adjust python-could-use-pyproject-* with `:any` dropped
   * Rules.pm: Do not emit `override_dh_foo-does-not-call-dh_foo` when override
     targets use `$(DH_OVERRIDDEN_COMMAND)` (Closes: #1149119)
   * tests(rules-override-dh-foo-does-not-call-dh-foo-unrel): Check for
     `$(DH_OVERRIDDEN_COMMAND)` as a check for #1149119
 .
   [ Soren Stoutner ]
   * Bump font-in-non-font-package from severity info to warning
     (Closes: #1148076)
   * Add a woff-font-in-wrong-dir tag (Closes: #1148185)
 .
   [ Sébastien Villemot ]
   * arch-dep-package-has-big-usr-share: fix devref section pointer
 .
   [ Sylvestre Ledru ]
   * Index/Elf.pm: ask readelf only for what we parse
   * Spelling.pm: cut the per-word work in check_spelling
 .
   [ Lucas Nussbaum ]
   * Group.pm: fix --perf-debug to actually emit performance CSV
   * bin/lintian: export LINTIAN_PERF_DEBUG and let Index default from env
   * Index: time the lazy data collectors and report under -d and --perf-debug
Checksums-Sha1:
 0e39b6a75b95ccd2aad0cdef66ed017477582153 3694 lintian_2.142.0.dsc
 955834b35b63105166e45513e7bcb0c2e410f974 2080952 lintian_2.142.0.tar.xz
 bfc0d75279c44a32fdb9039d0d32cd623560745f 12064 lintian_2.142.0_amd64.buildinfo
Checksums-Sha256:
 a2966a7c3a069cb6f8588cc88e9b08019468b090153a148b53f1a0a261435470 3694 lintian_2.142.0.dsc
 3f70c58cb5f2564aa5a103670aa1d893bc5447658222d2168f01f5d67721d2f2 2080952 lintian_2.142.0.tar.xz
 35421c50190260e8fcb7ae06380b1b75f13f6a5047de6e81106b89186019a071 12064 lintian_2.142.0_amd64.buildinfo
Files:
 7479d291900c7b3c70cb511f7830c236 3694 devel optional lintian_2.142.0.dsc
 e9bc2f59f1f31fd4800153c56c825e67 2080952 devel optional lintian_2.142.0.tar.xz
 f8840135df2dcced5b58e7d467fee216 12064 devel optional lintian_2.142.0_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTKp0AHB6gWsCAvw830JXpQshz6hQUCaslacAAKCRD0JXpQshz6
hbz6AQCE4uRTHwJXatqDILea5/bPj6j7QgkKd+8FZUxaRFVeXgEA0pu/8a/xyZ2B
8nNGZGWldFq9X6KbUhpXQ+alCO7d8Ac=
=+L98
-----END PGP SIGNATURE-----