Bug 1814538

Summary: [RFE] Add Golang bindings for libnbd
Product: Red Hat Enterprise Linux Advanced Virtualization Reporter: Fabien Dupont <fdupont>
Component: libnbdAssignee: Richard W.M. Jones <rjones>
Status: CLOSED UPSTREAM QA Contact: liuzi <zili>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.1CC: mkletzan, mxie, mzhan, rjones, tyan, tzheng, virt-maint, xiaodwan, zili
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-06 11:03:46 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fabien Dupont 2020-03-18 07:28:37 UTC
Description of problem:

We would like to use libnbd in an Kubernetes operator written in Golang. So, we would need bindings to use libnbd natively.

Comment 1 Richard W.M. Jones 2020-03-18 09:36:32 UTC
Preliminary patches were posted upstream, but they still need a bit of work:

https://www.redhat.com/archives/libguestfs/2020-March/msg00170.html

Comment 2 Richard W.M. Jones 2020-03-24 13:40:23 UTC
v3 posted:
https://www.redhat.com/archives/libguestfs/2020-March/msg00220.html

Generated bindings here:
http://oirase.annexia.org/tmp/libnbd-go/

Comment 4 Richard W.M. Jones 2020-04-01 12:48:44 UTC
Full list of commits required is:
https://github.com/libguestfs/libnbd/commit/cb2121683f38332390ac938eb28d9c79a7aea602
https://github.com/libguestfs/libnbd/commit/460f4fb3a2ed0d937b66383dd2afb599ed39742f

For RHEL AV I don't believe there is a way to package these bindings.
What I anticipate will happen (but don't approve) is that anyone using
these bindings will need to copy out the golang/src/ directory from
the libnbd sources.

[*VERY IMPORTANT NOTE* You MUST do this after compiling libnbd, since
most files in this directory are generated.  Just copying it from git
will NOT WORK.]

They will then bundle the bindings with their package.  It will be
compiled and linked statically into their final program (that is,
the golang bindings of libnbd, not libnbd itself).

As a result I don't think there's anything else we need to do on this
bug, and we can now close it.

Comment 5 Richard W.M. Jones 2020-04-06 11:03:46 UTC
Closing per comment 4.  It is assumed that the bindings will be
distributed ("vendored") in the package which consumes them.