diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..3b05b6c --- /dev/null +++ b/debian/rules @@ -0,0 +1,133 @@ +#!/usr/bin/make -f +# This file is in the public domain. +# You may freely use, modify, distribute, and relicense it. + +# We need DEB_HOST_ARCH, so include the needed makefile snippet +include /usr/share/dpkg/architecture.mk +# for DEB_VERSION_UPSTREAM +include /usr/share/dpkg/pkg-info.mk + +# Ubuntu mangles png files by default, which can break the testdata. +export NO_PNG_PKG_MANGLE := 1 + +export GOVER := $(shell echo $(DEB_VERSION_UPSTREAM) | grep -oP '^([0-9]+\.[0-9]+)') + +export GOROOT := $(CURDIR) +export GOROOT_FINAL := /usr/lib/go-$(GOVER) + +export GOPATH := $(CURDIR)/gopath/ +# Go 1.12 needs a build cache, otherwise the build fails. +export GOCACHE := $(GOPATH)/gocache + +# source files generated during building. +# especially zbootstrap.go has different defaultGOARM values on armhf and armel, +# since the value is set from debian/helpers/goenv.sh +# +# see also: src/cmd/distpack/pack.go +GENERATED_FILES := \ + src/cmd/go/internal/cfg/zdefaultcc.go \ + src/go/build/zcgo.go \ + src/runtime/internal/sys/zversion.go \ + src/time/tzdata/zzipdata.go \ + src/cmd/cgo/zdefaultcc.go \ + src/cmd/internal/objabi/zbootstrap.go \ + src/internal/buildcfg/zbootstrap.go + +%: + +dh $@ $(opt_no_act) + +gencontrol: + for file in control gbp.conf watch; do \ + { \ + echo '#'; \ + echo '# WARNING: "debian/'$$file'" is generated via "debian/rules gencontrol" (sourced from "debian/'$$file'.in")'; \ + echo '#'; \ + echo; \ + sed -e 's/X.Y/$(GOVER)/g' debian/$$file.in; \ + } > debian/$$file; \ + done + +# The signing key for the source tarballs is rotated yearly. +update_upstream_signing_key: + wget -O debian/upstream/signing-key.asc https://dl.google.com/dl/linux/linux_signing_key.pub + +override_dh_auto_clean: + # remove autogenerated files + rm -f -v $(GENERATED_FILES) + # remove built objects + rm -rf bin pkg + # remove gopath + rm -rf $(GOPATH) + # remove generated files + @set -e; cd debian; for x in golang-X.Y-*; do \ + rm -f -v golang-$(GOVER)-$${x##golang-X.Y-}; \ + done + +execute_after_dh_prep: + dh_prep + @set -e; cd debian; for x in golang-X.Y-*; do \ + sed -e 's/X.Y/$(GOVER)/g' $$x > golang-$(GOVER)-$${x##golang-X.Y-}; \ + done + +override_dh_compress-indep: + dh_compress -Xusr/share/doc/golang-$(GOVER)-doc/html + +execute_after_dh_install-arch: + cp --parent -v $(GENERATED_FILES) debian/golang-$(GOVER)-go/usr/share/go-$(GOVER)/ + +execute_after_dh_install-indep: + # Remove generated source files, they are installed in golang-$(GOVER)-go. + cd debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/ && rm -v -f $(GENERATED_FILES) + # Remove Plan9 rc(1) scripts + find debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src -type f -name '*.rc' -delete + # Make scripts executable which have been missed by upstream + find debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/ \ + \( -name '*.sh' -o -name '*.bash' \) \( -not -executable \) -exec chmod a+x {} \; + +override_dh_strip: + dh_strip -Xtestdata + +# Do not run dh_dwz, as there is no debug information currently. +override_dh_dwz: + +override_dh_strip_nondeterminism: + dh_strip_nondeterminism -Xtestdata + +override_dh_shlibdeps: + dh_shlibdeps -Xtestdata -Xtest + +override_dh_makeshlibs: + dh_makeshlibs -Xtestdata -Xtest + +override_dh_auto_build-arch: + [ -f VERSION ] || echo "debian snapshot $(DEB_VERSION)" > VERSION + + export GOROOT_BOOTSTRAP=$$(env -i GOPATH=$(GOPATH) go env GOROOT) \ + && cd $(CURDIR)/src \ + && $(CURDIR)/debian/helpers/goenv.sh bash ./make.bash --no-banner + + # rm bootstrap dir + rm -rf $(CURDIR)/bootstrap + +override_dh_auto_test-arch: + set -ex; \ + cd src; \ + export PATH="$(GOROOT)/bin:$$PATH"; \ + export GO_TEST_TIMEOUT_SCALE=10; \ + eval "$$(go tool dist env)"; \ + bash run.bash -k -no-rebuild; + # -k keep going even when error occurred + # -no-rebuild don't rebuild std and cmd packages + + # On linux/amd64 run.bash installs some race enabled standard library + # packages. Delete them again to avoid accidentally including them in + # the package. + set -ex; \ + export PATH="$(GOROOT)/bin:$$PATH"; \ + eval "$$(go tool dist env)"; \ + rm -rf "$(GOROOT)/pkg/$${GOOS}_$${GOARCH}_race/" + +opt_no_act := +ifneq (,$(findstring n,$(MAKEFLAGS))) + opt_no_act := --no-act +endif |