[MIR] golang-petname-dev

Bug #1520687 reported by Stéphane Graber
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
golang-petname (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Please note that the notes below solely apply to the -dev package as that's the only one we require for LXD and so the only one we are looking at getting into main.
If the source package produces other packages, binary, documentation or other, those can stay in universe.

Due to the high number of packages that LXD need to see promoted, the content below was made to be generic and apply to all packages we'd like to see promoted.
The information in it is accurate, in that it was checked individually for all packages before filing the bug report.

[Availability]
Source-only package currently available in universe.

[Rationale]
Build-dependency for LXD once we stop bundling the dependencies in our source package.
See LP: #1507156 for details.

[Security]
This is a source package which will only be used by other Go projects that build-depend on it.
Standard practices in the Go ecosystem unfortunately is not to do any release/tag, nor publish changelogs, bugfix announcements or other advisory information.
Most of those projects will therefore have a 0.0+git-hash kind of version scheme for their packaged form.
Update to those will typically be a completely new snapshot and refresh of their downstreams to match or be a one-off cherry-pick after a specific issue is reported.

CVEs: none
Source-only so none of the binary checks apply.

[Quality assurance]
Source-only, arch:all package so most of the points do not apply.
There are currently no bug reports filed against this source package.
The package is either maintained in Debian or maintained by its upstream directly in Ubuntu.
Most of those packages do not have a debian/watch file due to their upstream never pushing out versioned releases.

[UI standards]
Not applicable

[Dependencies]
We are only interested in the -dev source-only package.
None of those have build-dependencies due to being source-only.
Any needed dependency is already in main or covered by a separate MIR.

[Standards compliance]
All of those packages meet some version of the Debian golang packaging policy. Some using older name patterns, some using newer ones as the golang packaging team is transitioning them progressively.

[Maintenance]
All except one (petname) are coming from Debian and are maintained there.
The Ubuntu LXC team has been subscribed to all bug mails for all packages which we are requesting promotion into main.

[Background information]
All of those MIRs are being filed at the request of the Canonical Security team as a requirement for the supportability of LXD in main for 16.04 LTS.

Note that LXD upstream will keep bundling its dependencies in release tarballs as due to the rather odd way the go ecosystem works, it's the only way for us to absolutely guarantee that what we tested upstream will keep on building and working as expected.
The Ubuntu packaging will simply ignore the "dist/" directory in our release tarball and use the packaged dependencies instead. Backports and PPA uploads will not use the packaged dependencies and instead will use the bundled ones as backporting over 15 packages without breaking any other user of said packages in a world where there is no API/ABI guarantee, just isn't doable.

Related branches

Revision history for this message
Michael Terry (mterry) wrote :

- Needs to use dh-golang
- Needs to set Built-Using for the golang-petname package
- If I understand the import path correctly (github.com/dustinkirkland/golang-petname, right?), golang-petname-dev's package name is wrong. According to Debian's Go packaging guidelines [1], it should be named golang-github-dustinkirkland-golang-petname-dev. Which is an awful mouthful, but still... when/if Debian packages this, it would be nice to already have the same name.
- Why do we skip the dh_strip step?
- Why do we ship the golang-petname package/executable? Isn't it redundant with the petname executable?

[1] http://pkg-go.alioth.debian.org/packaging.html

Changed in golang-petname (Ubuntu):
status: Triaged → Incomplete
Revision history for this message
Stéphane Graber (stgraber) wrote :

Pointed this issue to Dustin who's the upstream and packager of petname.

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

There are 3 different implementations of petname -- in shell, python, and golang -- each for easy consumption by users/developers in each of those languages. They're all built by me from the same upstream source packages and same wordlists.

The source/binary package "petname" is shell, and ships /usr/bin/petname.

The source/binary package "golang-petname" is a binary built with go, and ships /usr/bin/golang-petname.

The source/binary package "python-petname" is python and ships /usr/bin/python-petname.

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

> According to Debian's Go packaging guidelines [1], it should be named golang-github-dustinkirkland-golang-petname-dev. Which is an awful mouthful, but still... when/if Debian packages this, it would be nice to already have the same name."

I'm sorry, but golang-github-dustinkirkland-golang-petname-dev is ridiculous. I'm not going to change the name of my source or binary package to this.

I am happy to additionally provide a binary meta package golang-github-dustinkirkland-golang-petname-dev, if that helps, though.

Changed in golang-petname (Ubuntu):
assignee: nobody → Dustin Kirkland  (kirkland)
status: Incomplete → In Progress
assignee: Dustin Kirkland  (kirkland) → nobody
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package golang-petname - 1.8-0ubuntu1

---------------
golang-petname (1.8-0ubuntu1) xenial; urgency=medium

  * debian/control, debian/rules, debian/update-wordlists.sh:
    - remove build dependency on petname; only the maintainer
      ever needs to run update-wordlists

 -- Dustin Kirkland <email address hidden> Wed, 02 Dec 2015 16:55:44 -0600

Changed in golang-petname (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Stéphane Graber (stgraber) wrote :

Moving back to triaged as Dustin has now updated the packaging according to the golang packaging spec.

Changed in golang-petname (Ubuntu):
status: Fix Released → Triaged
Revision history for this message
Michael Terry (mterry) wrote :

> I'm sorry, but golang-github-dustinkirkland-golang-petname-dev is ridiculous.

Hey, you picked that import name. :)

But yeah, I'm not going to be a stickler about it. I see you added a binary that followed the rule. Ideally the source would match too, so that if Debian packages this, we don't get duplicates in the archive. But we can cross that bridge when we come to it.

> There are 3 different implementations of petname -- in shell, python, and golang -- each for easy consumption by users/developers in each of those languages.

Yeah, I get that. I just don't see why it's important for a Go user or developer to care if the executable is shell or Go. (The library I totally understand, but the exec?) But not important.

> Moving back to triaged as Dustin has now updated the packaging according to the golang packaging spec.

I still have some beefs. Specifically, the code files are installed in the wrong location. They should be installed in /usr/share/gocode/src [1]. Using --buildsystem=golang will do the right thing for you (and then you have to adjust your .install files -- and maybe use the dh-exec rename trick to switch the binary name from petname to golang-petname).

Again, I'm not sure why you skip the strip step. It looks like you could remove that stanza (and the now-no-op override_dh_auto_build stanza).

[1] http://pkg-go.alioth.debian.org/packaging.html#_file_locations

Changed in golang-petname (Ubuntu):
status: Triaged → Incomplete
Revision history for this message
Michael Terry (mterry) wrote :

Oh, but otherwise it looks great, and thanks for making the adjustments you've made already!

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Uploaded a new package that fixes these.

Changed in golang-petname (Ubuntu):
status: Incomplete → Triaged
Revision history for this message
Michael Terry (mterry) wrote :

Awesome. Thank you Dustin! Approved.

Changed in golang-petname (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Stéphane Graber (stgraber) wrote :

Binary and its source promoted to main, thanks.

Changed in golang-petname (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.