Hi,

I spent some time on this and the following things are still missing
(current patch attached):

• generate the golang-go-$os-$arch packages in debian/control
  automatically
• properly call dh_strip (see comment)
• figure out whether .a files for e.g. netbsd/386 which are built on
  linux/amd64 can also be used on e.g. freebsd/386, or if they are
  specific to the host/arch they were built on

-- 
Best regards,
Michael
diff --git i/debian/control w/debian/control
index 12785bc..38e0a40 100644
--- i/debian/control
+++ w/debian/control
@@ -12,7 +12,8 @@ Homepage: http://golang.org/
 Package: golang-go
 Architecture: i386 amd64 armel armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
-	 golang-src (>= ${source:Version})
+	 golang-src (>= ${source:Version}),
+	 golang-go-linux-${go:Hostarch}
 Replaces: golang-weekly-go, golang-weekly-tools, golang-tools
 Conflicts: golang-weekly-go, golang-weekly-tools, golang-tools
 Provides: go-compiler, golang-weekly-go, golang-weekly-tools, golang-tools
@@ -31,6 +32,80 @@ Description: Go programming language compiler
  Go programming language. This is Google's implementation of the Go
  tool chain.
 
+Package: golang-go-linux-386
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for 386
+ This package contains the Go standard library, compiled for 386.
+
+Package: golang-go-linux-amd64
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for amd64
+ This package contains the Go standard library, compiled for amd64.
+
+Package: golang-go-linux-arm
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for arm
+ This package contains the Go standard library, compiled for arm.
+
+Package: golang-go-freebsd-386
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for 386
+ This package contains the Go standard library, compiled for 386.
+
+Package: golang-go-freebsd-amd64
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for amd64
+ This package contains the Go standard library, compiled for amd64.
+
+Package: golang-go-freebsd-arm
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for arm
+ This package contains the Go standard library, compiled for arm.
+
+
+Package: golang-go-darwin-386
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for 386
+ This package contains the Go standard library, compiled for 386.
+
+Package: golang-go-darwin-amd64
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for amd64
+ This package contains the Go standard library, compiled for amd64.
+
+Package: golang-go-windows-386
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for 386
+ This package contains the Go standard library, compiled for 386.
+
+Package: golang-go-windows-amd64
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for amd64
+ This package contains the Go standard library, compiled for amd64.
+
+Package: golang-go-netbsd-386
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for 386
+ This package contains the Go standard library, compiled for 386.
+
+Package: golang-go-netbsd-amd64
+Architecture: i386 amd64 armel armhf
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
+Description: Go standard library for amd64
+ This package contains the Go standard library, compiled for amd64.
+
+
 Package: golang-src
 Replaces: golang-weekly-src, golang-go (<< 2:1-3~)
 Conflicts: golang-weekly-src
diff --git i/debian/golang-go.install w/debian/golang-go.install
index a94edb5..00f89ec 100644
--- i/debian/golang-go.install
+++ w/debian/golang-go.install
@@ -1,4 +1,4 @@
 bin/go /usr/bin
 bin/godoc /usr/bin
 bin/gofmt /usr/bin
-pkg /usr/lib/go/
+pkg/obj /usr/lib/go/pkg/
diff --git i/debian/rules w/debian/rules
index 5f48972..a28d546 100755
--- i/debian/rules
+++ w/debian/rules
@@ -32,6 +32,14 @@ override_dh_compress:
 	dh_compress -Xusr/share/doc/$(PACKAGE)-doc/html -Xusr/share/doc/$(PACKAGE)-doc/godoc
 
 override_dh_install:
+	for os in $$(echo linux freebsd windows darwin netbsd); do \
+		archs="amd64 386"; \
+		[ "$$os" = "linux" ] || [ "$$os" = "freebsd" ] && archs="amd64 arm 386"; \
+		for arch in $$(echo $$archs); do \
+			echo "pkg/$${os}_$${arch} /usr/lib/go/pkg/" > debian/golang-go-$$os-$$arch.install; \
+			echo "pkg/tool/$${os}_$${arch} /usr/lib/go/pkg/tool/" >> debian/golang-go-$$os-$$arch.install; \
+		done; \
+	done
 	dh_install --fail-missing
 	# Replace jquery in the html documentation with a symlink to libjs-jquery.
 	-rm $(CURDIR)/debian/golang-doc/usr/share/doc/golang-doc/html/jquery.js && \
@@ -54,12 +62,29 @@ override_dh_install:
 	find $(CURDIR)/debian/golang-go/usr/lib/go/pkg -exec touch -r $(CURDIR)/debian/golang-go/usr/lib/go/pkg {} \;
 
 override_dh_strip:
-	dh_strip -X".a" -Xgoinstall -Xgodoc -Xgoyacc -Xbin/cgo -Xebnflint -Xgofix -Xgofmt -Xgovet -Xgotest --dbg-package=$(PACKAGE)-dbg
+	# TODO: add -Xlinux_$arch for all non-native $arch
+	dh_strip -X".a" -Xgoinstall -Xgodoc -Xgoyacc -Xbin/cgo -Xebnflint -Xgofix -Xgofmt -Xgovet -Xgotest -Xlinux_arm -Xfreebsd_arm --dbg-package=$(PACKAGE)-dbg
+
+override_dh_prep:
+	dh_prep
+	echo 'go:Hostarch=$(GOHOSTARCH)' >> debian/golang-go.substvars
 
 debian/build.stamp:
 	rm -f debian/build.stamp
 	mkdir -p $(GOBIN)
-	+cd src && bash ./make.bash --no-banner
+	# Build native tools
+	cd src && bash ./make.bash --no-banner
+	for os in $$(echo linux freebsd windows darwin netbsd); do \
+		archs="amd64 386"; \
+		[ "$$os" = "linux" ] || [ "$$os" = "freebsd" ] && archs="amd64 arm 386"; \
+		for arch in $$(echo $$archs); do \
+			export GOARCH=$$arch; \
+			export GOOS=$$os; \
+			cd src && bash ./make.bash --no-clean; \
+			[ "$$arch" = "amd64" ] && [ "$$os" = "linux" ] && $(GOBIN)/go install -race std; \
+			cd ..; \
+		done; \
+	done
 	>debian/build.stamp
 
 opt_no_act =

Reply via email to