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