On Wed, Nov 10, 2021 at 7:02 PM Richard W.M. Jones <rjones(a)redhat.com> wrote:
On Wed, Nov 10, 2021 at 11:08:09AM -0500, Neal Gompa wrote:
> On Wed, Nov 10, 2021 at 9:00 AM Richard W.M. Jones <rjones(a)redhat.com> wrote:
> For PHP, the bindings are currently broken upstream. Patches
> welcome etc ...
>
> Is there a particular report indicating what's broken upstream that
> I can look at? I see that the bindings are built in Fedora against
> PHP 8.0 (which RHEL 9 ships with), so I somewhat expect them to
> work.
AIUI they don't actually work properly with PHP 8 and/or needs
significant porting effort. The references are:
https://bugzilla.redhat.com/show_bug.cgi?id=1935753
https://www.seidengroup.com/2020/12/07/porting-extensions-to-php-8/
> For Golang I think most people are anticipating that you'll
"vendor"
> (ie. bundle) the bindings in your code. While this is stupid, the
> language effectively forces you to do that. A longer term plan may
> look more like what we recently did with the libnbd bindings, but
> we're not there yet.
>
> Search "golang" here:
>
https://listman.redhat.com/archives/libguestfs/2021-November/thread.html
>
> But since libguestfs dynamically generates the bindings for various
> languages, is it even workable to separate it like that? You could
> build it as a pile of Go binding sources and ship it that way
> (similar to how other Go bindings are shipped in Fedora).
Hi Neal,
Can you add more info on this? which module are distributed
and how they are consumed?
In fact so does libnbd, so the problems were the same. Nir
(CC'd)
can talk a bit more about this. My interest in golang is >< small.
LIbnbd Go bindings are published now in the standard way using
Go proxy server. Developers can use:
Import "libguestfs.org/libnbd"
Like any other dependency (e.g. from
github.com, etc).
The go tools will find the package proxy server looking at
https://libguestfs.org/libnbd
pointing the tools to the proxy server at
https://download.libguestfs.org/libnbd/golang
We use this script to prepare the files for the web server
for every release:
https://gitlab.com/nbdkit/libnbd/-/blob/master/golang/make-dist.sh
The same file structure on the web server can be used with
a "file:///" URL, if the files are packaged for a distribution
in a known location, users can use something like:
GOPROXY=file:///path/to/go/modules
See
https://golang.org/ref/mod#environment-variables
But I think this is best discussed here:
https://groups.google.com/g/golang-nuts
I'm working on another module that will likely be published in the
same way, and I also want to package it for Fedora, please CC
me on related discussions.
Nir