#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 export DH_GOLANG_EXCLUDES := \ internal/warpc/gen \ livereload/gen \ scripts/fork_go_templates \ tpl/tplimpl/embedded/generate export DH_GOLANG_INSTALL_EXTRA := \ create/skeletons/site \ create/skeletons/theme \ internal/js/esbuild \ internal/warpc/wasm \ livereload/gen/livereload-hugo-plugin.js \ livereload/livereload.js \ livereload/livereload.min.js \ testscripts/ \ 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 # github.com/bep/imagemeta v0.7.5 # Need to find copyright information for testdata images before packaging EXTRA_NON_GOHUGOIO_GO_MODULES += github.com/bep/imagemeta # github.com/getkin/kin-openapi v0.123.0 # Upstream has received reports from users of Hugo's `openapi3.Unmarshal` # about breaking behavior `kin-openapi` v0.124.0, so revert to v0.123.0 # for now, pending further investigation. (see commit 29cc37f) EXTRA_NON_GOHUGOIO_GO_MODULES += github.com/getkin/kin-openapi EXTRA_NON_GOHUGOIO_GO_MODULES += github.com/microcosm-cc/bluemonday EXTRA_NON_GOHUGOIO_GO_MODULES += github.com/tetratelabs/wazero execute_before_dh_auto_configure: for i in $(EXTRA_NON_GOHUGOIO_GO_MODULES); do \ mkdir -p _build/src/$$(dirname $$i) ; \ ln -s $(CURDIR)/debian/go/src/$$i _build/src/$$(dirname $$i)/ ; \ done # github.com/gohugoio/go-i18n/v2 (Fix multiple unknown language codes) # See https://github.com/gohugoio/hugo/issues/7838 EXTRA_GOHUGOIO_GO_MODULES += gohugoio/go-i18n # github.com/gohugoio/hugo-goldmark-extensions/{extras,passthrough} EXTRA_GOHUGOIO_GO_MODULES += gohugoio/hugo-goldmark-extensions EXTRA_GOHUGOIO_GO_MODULES += gohugoio/localescompressed EXTRA_GOHUGOIO_GO_MODULES += gohugoio/testmodBuilder execute_after_dh_auto_configure: for i in $(EXTRA_GOHUGOIO_GO_MODULES); do \ ln -s $(CURDIR)/debian/go/src/github.com/$$i \ _build/src/github.com/gohugoio/ ; \ done # 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 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