[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Errors Packaging Nebula



Hi Alex,

On 03/07/21 03:30 AM, Flu0r1ne wrote:
> Hi,
> 
> 
> I am in the process of packaging Nebula, a popular networking overlay.
> The binaries seem to build. Yet, two of the tests fail. I wanted to have
> someone double check my methodology since I'm still a novice when it
> comes to packaging. If you think it's a problem for the upstream, I'll
> submit an issue.
>
> 
> I encounter an issue with two failing tests:
> TestMarshalingNebulaCertificate and Test_ca. These rely on the
> "marshaling" functionality in Google's protobuf library. These tests
> pass outside debuild so I'm guessing it's based on the version of some
> library.

I found out the reason -- this is basically due to incompatible
versions.
First off, you also need a B-D on golang-goprotobuf-dev - the
corresponding import path for the same is also mentioned in nebula's
go.mod (github.com/golang/protobuf v1.5.0)

as you might notice, the version there mentioned is "1.5.0", and the
version in the archive (unstable) is "1.3.4-2".
However, the version in experimental is "1.4.3-1~exp1"

When I try to build with the package in experimental, build goes just
fine! \o/

My past experience working with protobuf based dependencies is that the
API changes very frequently, even with minor version bumps or so.

All in all, this patch seems working:

--- a/debian/control
+++ b/debian/control
@@ -18,6 +18,7 @@ Build-Depends: debhelper-compat (= 12),
                golang-github-vishvananda-netlink-dev,
                golang-github-flynn-noise-dev,
                golang-github-skip2-go-qrcode-dev,
+               golang-goprotobuf-dev (>= 1.4~),
                golang-google-protobuf-dev,
                golang-gogoprotobuf-dev,
                golang-github-nbrownus-go-metrics-prometheus-dev


> 
> Note: in order to build Nebula, you have to build dependencies as well.
> 
> 
> Salsa:
> 
> - nebula: https://salsa.debian.org/flu0r1ne/nebula
> 
> - golang-github-nbrownus-go-metrics-prometheus:
> https://salsa.debian.org/flu0r1ne/golang-github-nbrownus-go-metrics-prometheus
> 
> - golang-github-flynn-noise:
> https://salsa.debian.org/flu0r1ne/golang-github-flynn-noise

Oh, there is one more -- it also Build-Depends on
"golang-github-skip2-go-qrcode-dev"
that's not in the archive yet, please consider to package this too

I have a few reviews on these. First off, there's just one "main"
branch. This goes against the way go team packages should be
maintained.

There's a debian/sid branch, along with an upstream branch. It also
seems like you used dh-make for nebula, please consider to use
dh-make-golang.

I'd really recommend you to quickly go through the official go package
team documentation here: https://go-team.pages.debian.net/
if you haven't already it shouldn't take long

Once done, I think maybe redo the dependencies to be packaged -- copy
the current debian dir, and make minor changes.

OR

You could also simply rename the branch from main -> debian/sid and then
gbp-import to get the upstream branch.

Please push to your local fork once done -- once you're familiar with
this, I'll simply add you to the team so you simply push your work
there :)

> 
> You'll receive a few Lintian errors that won't effect the build process.
> Lintian wants to:
> 
> (1) Shorten golang-github-nbrownus-go-metrics-prometheus (I'm following
> the naming scheme. Let me know if i should rename it.)

I think we can simply ignore this warning as you might see on the
corresponding lintian report page here[1], there are several golang packages
with that warning
The naming scheme is correct, and that's fine.

> (2) I'll submit ITPs once I can build Nebula

Cool, I'll be happy to sponsor you uploads, if you need :-)

BTW, you mentioned on IRC yesterday that you're doing a debuild while
that's fine, but you really need to build in a clean chroot before you
think the package is ready for upload.
This will help you catch missing build dependencies which happened in
nebula (as mentioned above for qrcode and golang-protobuf)

sbuild will help you do that easily, please set this up if you haven't
already. You can find the details here[2]

> 
> Build log: https://gist.github.com/flu0r1ne/1a18ffe4fc2c2a8ba2ea14fa6552bb50

Thank you very much for working on these packages!

[1]: https://lintian.debian.org/tags/source-package-component-has-long-file-name
[2]: https://wiki.debian.org/sbuild

Nilesh

Attachment: signature.asc
Description: PGP signature


Reply to: