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 =