[Libguestfs] [PATCH libnbd] golang: make-dist.sh: Generate the list file

Nir Soffer nsoffer at redhat.com
Sun Feb 6 23:28:30 UTC 2022


On Sun, Feb 6, 2022 at 9:13 PM Richard W.M. Jones <rjones at 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 at 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?

Nir





More information about the Libguestfs mailing list