#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 export DH_GOLANG_EXCLUDES := \ scripts/fork_go_templates \ tpl/tplimpl/embedded/generate export DH_GOLANG_INSTALL_EXTRA := \ livereload/livereload.js \ tpl/tplimpl/embedded/templates # Prevent TestImageResize8BitPNG from failing due to pkgbinarymangler # recompressing our test PNG image on Ubuntu export NO_PNG_PKG_MANGLE := 1 # Prepare -ldflags arguments for Hugo version information include /etc/os-release PACKAGE := $(shell sed -n "s/^XS-Go-Import-Path: \(.*\)/\1/p" debian/control) DATE_FMT = %Y-%m-%dT%H:%M:%SZ ifdef SOURCE_DATE_EPOCH BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)") else BUILD_DATE ?= $(shell date -u "+$(DATE_FMT)") endif VENDOR_INFO := $(ID):$(shell dpkg-parsechangelog --show-field Version) LDFLAGS := -ldflags \ '-X "$(PACKAGE)/common/hugo.buildDate=$(BUILD_DATE)" \ -X "$(PACKAGE)/common/hugo.vendorInfo=$(VENDOR_INFO)"' HUGO := _build/bin/hugo # The "dev" tag tells golibsass and gowebp not to build libsass and libwebp # from source but to link with pre-installed libraries instead. # See https://github.com/bep/golibsass/blob/master/README.md # and https://github.com/bep/gowebp/blob/master/README.md TAGS := -tags 'dev extended' ifeq ($(DEB_BUILD_ARCH),ppc64) # Use golang-go on ppc64 as gccgo has failed to build hugo since March 2018. # Better to exceed Debian's minimum ISA than to have no hugo at all. go_ver := $(shell sed -E -n 's/\s+golang-([0-9.]+)-go \[ppc64\].*/\1/p' debian/control) export PATH := /usr/lib/go-$(go_ver)/bin:$(PATH) # Caveat: external linking not supported for linux/ppc64, removing tags. # See https://github.com/golang/go/issues/8912 undefine TAGS endif %: dh $@ --builddirectory=_build execute_before_dh_auto_configure: # github.com/gohugoio/testmodBuilder is for testing only # and will not be packaged separately for Debian mkdir -p _build/src/github.com/gohugoio ln -s $(CURDIR)/debian/go/src/github.com/gohugoio/testmodBuilder \ _build/src/github.com/gohugoio/ # github.com/gohugoio/go-i18n/v2 (Fix multiple unknown language codes) # See https://github.com/gohugoio/hugo/issues/7838 ln -s $(CURDIR)/debian/go/src/github.com/gohugoio/go-i18n \ _build/src/github.com/gohugoio/ # github.com/gohugoio/locales cp -a /usr/share/gocode/src/github.com/go-playground/locales \ _build/src/github.com/gohugoio/ cd _build/src/github.com/gohugoio/locales && \ sed -i 's/go-playground/gohugoio/' *.go */*.go # github.com/gohugoio/localescompressed ln -s $(CURDIR)/debian/go/src/github.com/gohugoio/localescompressed \ _build/src/github.com/gohugoio/ # github.com/bep/lazycache # and its dependency github.com/hashicorp/golang-lru/v2 mkdir -p _build/src/github.com/bep ln -s $(CURDIR)/debian/go/src/github.com/bep/lazycache \ _build/src/github.com/bep/ mkdir -p _build/src/github.com/hashicorp ln -s $(CURDIR)/debian/go/src/github.com/hashicorp/golang-lru \ _build/src/github.com/hashicorp/ override_dh_auto_build: @command -V go @go version dh_auto_build -- $(LDFLAGS) $(TAGS) $(HUGO) version mkdir -p debian/completion cd debian/completion && mkdir -p bash fish zsh $(HUGO) completion bash > debian/completion/bash/hugo $(HUGO) completion fish > debian/completion/fish/hugo.fish $(HUGO) completion zsh > debian/completion/zsh/_hugo $(HUGO) gen man --dir=debian/man # TODO: Add "hugo-docs" package in the future? #$(HUGO) -s docs -d public/html --uglyURLs # Disable network access during testing by using -short flag override_dh_auto_test: @command -V go @go version CI=true dh_auto_test -- -short -timeout 120m override_dh_auto_install: dh_auto_install -- --no-source