On Sun, Feb 6, 2022 at 9:13 PM Richard W.M. Jones
<rjones(a)redhat.com> wrote:
>
> On Sun, Feb 06, 2022 at 07:21:02PM +0200, Nir Soffer wrote:
> > Generated the list file when creating the distribution. Since the Go
> > tool treat the list file on the proxy server as the source of truth, we
> > do the same. The new list file is created by downloading the current
> > list file, sorting it, and appending the current version.
> >
> > Creating a distribution tarball requires now access to
> >
download.libguestfs.org.
> >
> > With this change the distribution tarball can be extract on the server
> > without any additional manual process.
> >
> > Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
> > ---
> > golang/make-dist.sh | 16 +++++-----------
> > 1 file changed, 5 insertions(+), 11 deletions(-)
> >
> > diff --git a/golang/make-dist.sh b/golang/make-dist.sh
> > index a590e6c6..5fe006ff 100755
> > --- a/golang/make-dist.sh
> > +++ b/golang/make-dist.sh
> > @@ -86,48 +86,42 @@ rm -rf
libguestfs.org
> > #
> > #
libguestfs.org
> > # └── libnbd
> > # ├── @latest
> > # └── @v
> > # ├── list
> > # ├── v1.11.4.info
> > # ├── v1.11.4.mod
> > # └── v1.11.4.zip
> > #
> > -# We create @latest and @v/*{.info,mod,zip} here.
> > -#
> > -# The "@v/list" file must be created on the web server after
uploading
> > -# a new release:
> > -#
> > -# $ cd
libguestfs.org/libnbd/@v
> > -# $ ls -1 v*.info | awk -F.info '{print $1}' > list
> > -# $ cat list
> > -# v1.11.3
> > -# v1.11.4
> > -#
> > # See
https://golang.org/ref/mod#serving-from-proxy
> >
> >
module_dir=libguestfs.org/libnbd
> > v_dir=$module_dir/@v
> >
> > mkdir -p $v_dir
> >
> > # Go wants a string in RFC 3339 format, git strict ISO 8601 format is
> > # compatible.
> > info="{
> > \"Version\": \"$version\",
> > \"Time\": \"$(git show -s --format=%cI)\"
> > }"
> > echo "$info" > $module_dir/@latest
> > echo "$info" > $v_dir/$version.info
> >
> > cp go.mod $v_dir/$version.mod
> > mv $version.zip $v_dir
> >
> > +# Create the list file by amending the curent file on the server.
> >
+list_url=https://download.libguestfs.org/libnbd/golang/libguestfs.org/libnbd/@v/list
> > +curl --silent --show-error "$list_url" | sort > $v_dir/list
> > +grep -q "$version" $v_dir/list || echo "$version" >>
$v_dir/list
> > +
> > # Create tarball to upload and extract on the webserver. It should be
> > # extracted in the directory pointed by the "go-import" meta tag.
> > output=$PWD/libnbd-golang-$version.tar.gz
> > tar czf $output
libguestfs.org
> >
> > rm -rf
libguestfs.org
> >
> > echo output written to $output
>
> Yes this seems a reasonable approach.
>
> ACK
Pushed as 3895a43f3e9f00f1d612d619caf62adb7ace2772
This should be tested with the actual server, so make sure it
will work for the next release.
Can you do a build from current git and upload it to the server?
When I do the next 1.11 release I'll test it, won't be long.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages.