[Libguestfs] [PATCH libnbd 2/2] golang: Flatten source tree

Nir Soffer nsoffer at redhat.com
Tue Nov 2 20:15:05 UTC 2021


Move the libnbd module to the golang directory to make it easier to work
with the source, and to match other bindings.

I think that src/libguestfs.org/libnbd/ tree is left over from older Go
versions using GOPATH. Modern Go uses modules so it does not matter
where you put your source.

With this change, we can add a nice tag for every release:

    golang/v1.11.2

This exposes the package version to "go get".

This will also fix:

    https://pkg.go.dev/github.com/libguestfs/libnbd/golang

This is not enough to consume the module directly from the source, we
still have to solve the issue of the generated files, and returning the
right metadata from https://libguestfs.org/libnbd.

Signed-off-by: Nir Soffer <nsoffer at redhat.com>
---
 generator/generator.ml                        | 12 +--
 .../libguestfs.org/libnbd => }/.gitignore     |  0
 .../{src/libguestfs.org/libnbd => }/LICENSE   |  0
 golang/Makefile.am                            | 83 +++++++++----------
 .../{src/libguestfs.org/libnbd => }/README.md | 17 ++--
 .../libguestfs.org/libnbd => }/aio_buffer.go  |  0
 .../libguestfs.org/libnbd => }/callbacks.go   |  0
 golang/examples/get_size/go.mod               |  2 +-
 golang/examples/read_first_sector/go.mod      |  2 +-
 golang/{src/libguestfs.org/libnbd => }/go.mod |  0
 .../{src/libguestfs.org/libnbd => }/handle.go |  0
 .../libnbd => }/libnbd_010_load_test.go       |  0
 .../libnbd => }/libnbd_100_handle_test.go     |  0
 .../libnbd => }/libnbd_110_defaults_test.go   |  0
 .../libnbd_120_set_non_defaults_test.go       |  0
 .../libnbd_200_connect_command_test.go        |  0
 .../libnbd => }/libnbd_210_opt_abort_test.go  |  0
 .../libnbd => }/libnbd_220_opt_list_test.go   |  0
 .../libnbd => }/libnbd_230_opt_info_test.go   |  0
 .../libnbd_240_opt_list_meta_test.go          |  0
 .../libnbd => }/libnbd_300_get_size_test.go   |  0
 .../libnbd => }/libnbd_400_pread_test.go      |  0
 .../libnbd_405_pread_structured_test.go       |  0
 .../libnbd => }/libnbd_410_pwrite_test.go     |  0
 .../libnbd_460_block_status_test.go           |  0
 .../libnbd => }/libnbd_500_aio_pread_test.go  |  0
 .../libnbd => }/libnbd_510_aio_pwrite_test.go |  0
 .../libnbd => }/libnbd_590_aio_copy_test.go   |  0
 .../libnbd_600_debug_callback_test.go         |  0
 .../libnbd => }/libnbd_610_error_test.go      |  0
 golang/run-tests.sh                           |  2 -
 31 files changed, 55 insertions(+), 63 deletions(-)
 rename golang/{src/libguestfs.org/libnbd => }/.gitignore (100%)
 rename golang/{src/libguestfs.org/libnbd => }/LICENSE (100%)
 rename golang/{src/libguestfs.org/libnbd => }/README.md (71%)
 rename golang/{src/libguestfs.org/libnbd => }/aio_buffer.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/callbacks.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/go.mod (100%)
 rename golang/{src/libguestfs.org/libnbd => }/handle.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_010_load_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_100_handle_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_110_defaults_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_120_set_non_defaults_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_200_connect_command_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_210_opt_abort_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_220_opt_list_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_230_opt_info_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_240_opt_list_meta_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_300_get_size_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_400_pread_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_405_pread_structured_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_410_pwrite_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_460_block_status_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_500_aio_pread_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_510_aio_pwrite_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_590_aio_copy_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_600_debug_callback_test.go (100%)
 rename golang/{src/libguestfs.org/libnbd => }/libnbd_610_error_test.go (100%)

diff --git a/generator/generator.ml b/generator/generator.ml
index 804d9ea..4192815 100644
--- a/generator/generator.ml
+++ b/generator/generator.ml
@@ -57,11 +57,7 @@ let () =
   output_to "ocaml/NBD.ml" OCaml.generate_ocaml_nbd_ml;
   output_to "ocaml/nbd-c.c" OCaml.generate_ocaml_nbd_c;
 
-  output_to "golang/src/libguestfs.org/libnbd/bindings.go"
-    GoLang.generate_golang_bindings_go;
-  output_to "golang/src/libguestfs.org/libnbd/closures.go"
-    GoLang.generate_golang_closures_go;
-  output_to "golang/src/libguestfs.org/libnbd/wrappers.go"
-    GoLang.generate_golang_wrappers_go;
-  output_to "golang/src/libguestfs.org/libnbd/wrappers.h"
-    GoLang.generate_golang_wrappers_h;
+  output_to "golang/bindings.go" GoLang.generate_golang_bindings_go;
+  output_to "golang/closures.go" GoLang.generate_golang_closures_go;
+  output_to "golang/wrappers.go" GoLang.generate_golang_wrappers_go;
+  output_to "golang/wrappers.h" GoLang.generate_golang_wrappers_h;
diff --git a/golang/src/libguestfs.org/libnbd/.gitignore b/golang/.gitignore
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/.gitignore
rename to golang/.gitignore
diff --git a/golang/src/libguestfs.org/libnbd/LICENSE b/golang/LICENSE
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/LICENSE
rename to golang/LICENSE
diff --git a/golang/Makefile.am b/golang/Makefile.am
index 397cae7..1ceef1f 100644
--- a/golang/Makefile.am
+++ b/golang/Makefile.am
@@ -17,59 +17,56 @@
 
 include $(top_srcdir)/subdir-rules.mk
 
-# http://golang.org/doc/code.html#Organization
-pkg = libguestfs.org/libnbd
-
 source_files = \
-	src/$(pkg)/aio_buffer.go \
-	src/$(pkg)/bindings.go \
-	src/$(pkg)/callbacks.go \
-	src/$(pkg)/closures.go \
-	src/$(pkg)/handle.go \
-	src/$(pkg)/wrappers.go \
-	src/$(pkg)/wrappers.h \
-	src/$(pkg)/libnbd_010_load_test.go \
-	src/$(pkg)/libnbd_100_handle_test.go \
-	src/$(pkg)/libnbd_110_defaults_test.go \
-	src/$(pkg)/libnbd_120_set_non_defaults_test.go \
-	src/$(pkg)/libnbd_200_connect_command_test.go \
-	src/$(pkg)/libnbd_210_opt_abort_test.go \
-	src/$(pkg)/libnbd_220_opt_list_test.go \
-	src/$(pkg)/libnbd_230_opt_info_test.go \
-	src/$(pkg)/libnbd_240_opt_list_meta_test.go \
-	src/$(pkg)/libnbd_300_get_size_test.go \
-	src/$(pkg)/libnbd_400_pread_test.go \
-	src/$(pkg)/libnbd_405_pread_structured_test.go \
-	src/$(pkg)/libnbd_410_pwrite_test.go \
-	src/$(pkg)/libnbd_460_block_status_test.go \
-	src/$(pkg)/libnbd_500_aio_pread_test.go \
-	src/$(pkg)/libnbd_510_aio_pwrite_test.go \
-	src/$(pkg)/libnbd_590_aio_copy_test.go \
-	src/$(pkg)/libnbd_600_debug_callback_test.go \
-	src/$(pkg)/libnbd_610_error_test.go \
+	aio_buffer.go \
+	bindings.go \
+	callbacks.go \
+	closures.go \
+	handle.go \
+	wrappers.go \
+	wrappers.h \
+	libnbd_010_load_test.go \
+	libnbd_100_handle_test.go \
+	libnbd_110_defaults_test.go \
+	libnbd_120_set_non_defaults_test.go \
+	libnbd_200_connect_command_test.go \
+	libnbd_210_opt_abort_test.go \
+	libnbd_220_opt_list_test.go \
+	libnbd_230_opt_info_test.go \
+	libnbd_240_opt_list_meta_test.go \
+	libnbd_300_get_size_test.go \
+	libnbd_400_pread_test.go \
+	libnbd_405_pread_structured_test.go \
+	libnbd_410_pwrite_test.go \
+	libnbd_460_block_status_test.go \
+	libnbd_500_aio_pread_test.go \
+	libnbd_510_aio_pwrite_test.go \
+	libnbd_590_aio_copy_test.go \
+	libnbd_600_debug_callback_test.go \
+	libnbd_610_error_test.go \
 	$(NULL)
 
 generator_built = \
-	src/$(pkg)/bindings.go \
-	src/$(pkg)/closures.go \
-	src/$(pkg)/wrappers.go \
-	src/$(pkg)/wrappers.h \
+	bindings.go \
+	closures.go \
+	wrappers.go \
+	wrappers.h \
 	$(NULL)
 
 EXTRA_DIST = \
 	$(generator_built) \
+	.gitignore \
+	LICENSE \
+	README.md \
+	aio_buffer.go \
+	callbacks.go \
 	configure/go.mod \
 	configure/test.go \
+	go.mod \
+	handle.go \
 	libnbd-golang.pod \
+	libnbd_*_test.go \
 	run-tests.sh \
-	src/$(pkg)/.gitignore \
-	src/$(pkg)/LICENSE \
-	src/$(pkg)/README.md \
-	src/$(pkg)/aio_buffer.go \
-	src/$(pkg)/callbacks.go \
-	src/$(pkg)/go.mod \
-	src/$(pkg)/handle.go \
-	src/$(pkg)/libnbd_*_test.go \
 	$(NULL)
 
 if HAVE_POD
@@ -87,13 +84,11 @@ endif HAVE_POD
 if HAVE_GOLANG
 
 all-local: $(source_files)
-	cd src/$(pkg) && \
 	$(abs_top_builddir)/run $(GOLANG) build
 
 TESTS_ENVIRONMENT = \
 	LIBNBD_DEBUG=1 \
 	$(MALLOC_CHECKS) \
-	pkg=$(pkg) \
 	abs_top_srcdir=$(abs_top_srcdir) \
 	$(NULL)
 LOG_COMPILER = $(top_builddir)/run
@@ -101,4 +96,4 @@ TESTS = run-tests.sh
 
 endif
 
-CLEANFILES += src/$(pkg)/*~
+CLEANFILES += *~
diff --git a/golang/src/libguestfs.org/libnbd/README.md b/golang/README.md
similarity index 71%
rename from golang/src/libguestfs.org/libnbd/README.md
rename to golang/README.md
index be32e6a..aeadcf6 100644
--- a/golang/src/libguestfs.org/libnbd/README.md
+++ b/golang/README.md
@@ -18,18 +18,21 @@ extract it from the tarball.
 
         wget https://download.libguestfs.org/libnbd/1.10-stable/libnbd-1.10.1.tar.gz
 
-2. Extract the go binding directory
+2. Extract the sources from the golang directory
 
-        tar xvf libnbd-1.10.1.tar.gz \
-            --directory pkg \
-            --strip 3 \
+        mkdir pkg/libnbd
+
+        tar xvf libnbd-1.11.1.tar.gz \
+            --directory pkg/libnbd \
+            --strip 2 \
             --exclude "*_test.go" \
-            --exclude ".gitignore" \
-            libnbd-1.10.1/golang/src/libguestfs.org/libnbd
+            --exclude "examples" \
+            --exclude "configure" \
+            libnbd-1.11.1/golang/{go.mod,README.md,LICENSE,*.go,*.h}
 
 3. Edit your go mode file to use the local copy
 
-        go mod edit -replace libguestfs.org/libnbd=./pkg/libguestfs.org/libnbd
+        go mod edit -replace libguestfs.org/libnbd=./pkg/libnbd
 
 4. Install the libnbd development package
 
diff --git a/golang/src/libguestfs.org/libnbd/aio_buffer.go b/golang/aio_buffer.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/aio_buffer.go
rename to golang/aio_buffer.go
diff --git a/golang/src/libguestfs.org/libnbd/callbacks.go b/golang/callbacks.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/callbacks.go
rename to golang/callbacks.go
diff --git a/golang/examples/get_size/go.mod b/golang/examples/get_size/go.mod
index 077ff31..3559751 100644
--- a/golang/examples/get_size/go.mod
+++ b/golang/examples/get_size/go.mod
@@ -1,4 +1,4 @@
 module main
 
-replace libguestfs.org/libnbd => ../../src/libguestfs.org/libnbd
+replace libguestfs.org/libnbd => ../../
 require libguestfs.org/libnbd v1.0.0
diff --git a/golang/examples/read_first_sector/go.mod b/golang/examples/read_first_sector/go.mod
index 077ff31..3559751 100644
--- a/golang/examples/read_first_sector/go.mod
+++ b/golang/examples/read_first_sector/go.mod
@@ -1,4 +1,4 @@
 module main
 
-replace libguestfs.org/libnbd => ../../src/libguestfs.org/libnbd
+replace libguestfs.org/libnbd => ../../
 require libguestfs.org/libnbd v1.0.0
diff --git a/golang/src/libguestfs.org/libnbd/go.mod b/golang/go.mod
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/go.mod
rename to golang/go.mod
diff --git a/golang/src/libguestfs.org/libnbd/handle.go b/golang/handle.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/handle.go
rename to golang/handle.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_010_load_test.go b/golang/libnbd_010_load_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_010_load_test.go
rename to golang/libnbd_010_load_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_100_handle_test.go b/golang/libnbd_100_handle_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_100_handle_test.go
rename to golang/libnbd_100_handle_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_110_defaults_test.go b/golang/libnbd_110_defaults_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_110_defaults_test.go
rename to golang/libnbd_110_defaults_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_120_set_non_defaults_test.go b/golang/libnbd_120_set_non_defaults_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_120_set_non_defaults_test.go
rename to golang/libnbd_120_set_non_defaults_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_200_connect_command_test.go b/golang/libnbd_200_connect_command_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_200_connect_command_test.go
rename to golang/libnbd_200_connect_command_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_210_opt_abort_test.go b/golang/libnbd_210_opt_abort_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_210_opt_abort_test.go
rename to golang/libnbd_210_opt_abort_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_220_opt_list_test.go b/golang/libnbd_220_opt_list_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_220_opt_list_test.go
rename to golang/libnbd_220_opt_list_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_230_opt_info_test.go b/golang/libnbd_230_opt_info_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_230_opt_info_test.go
rename to golang/libnbd_230_opt_info_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_240_opt_list_meta_test.go b/golang/libnbd_240_opt_list_meta_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_240_opt_list_meta_test.go
rename to golang/libnbd_240_opt_list_meta_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_300_get_size_test.go b/golang/libnbd_300_get_size_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_300_get_size_test.go
rename to golang/libnbd_300_get_size_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_400_pread_test.go b/golang/libnbd_400_pread_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_400_pread_test.go
rename to golang/libnbd_400_pread_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_405_pread_structured_test.go b/golang/libnbd_405_pread_structured_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_405_pread_structured_test.go
rename to golang/libnbd_405_pread_structured_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_410_pwrite_test.go b/golang/libnbd_410_pwrite_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_410_pwrite_test.go
rename to golang/libnbd_410_pwrite_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_460_block_status_test.go b/golang/libnbd_460_block_status_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_460_block_status_test.go
rename to golang/libnbd_460_block_status_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_500_aio_pread_test.go b/golang/libnbd_500_aio_pread_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_500_aio_pread_test.go
rename to golang/libnbd_500_aio_pread_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_510_aio_pwrite_test.go b/golang/libnbd_510_aio_pwrite_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_510_aio_pwrite_test.go
rename to golang/libnbd_510_aio_pwrite_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_590_aio_copy_test.go b/golang/libnbd_590_aio_copy_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_590_aio_copy_test.go
rename to golang/libnbd_590_aio_copy_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_600_debug_callback_test.go b/golang/libnbd_600_debug_callback_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_600_debug_callback_test.go
rename to golang/libnbd_600_debug_callback_test.go
diff --git a/golang/src/libguestfs.org/libnbd/libnbd_610_error_test.go b/golang/libnbd_610_error_test.go
similarity index 100%
rename from golang/src/libguestfs.org/libnbd/libnbd_610_error_test.go
rename to golang/libnbd_610_error_test.go
diff --git a/golang/run-tests.sh b/golang/run-tests.sh
index 6857047..f83fa18 100755
--- a/golang/run-tests.sh
+++ b/golang/run-tests.sh
@@ -23,8 +23,6 @@ set -x
 
 requires nbdkit --version
 
-cd src/$pkg
-
 # The -count=1 parameter is the "idiomatic way to bypass test caching".
 # https://golang.org/doc/go1.10#test
 # The -v option enables verbose output.
-- 
2.31.1




More information about the Libguestfs mailing list