#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk # Hardening export DEB_BUILD_MAINT_OPTIONS = hardening=+all DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk DEBIAN_DIR = $(CURDIR)/debian TMP = $(DEBIAN_DIR)/$(PACKAGE) SOURCE = $(TMP)/../ PKG = github.com/syncthing/syncthing #export DH_GOLANG_GO_GENERATE := 1 # the version string is checked against # ^v\d+.\d+.\d+(-[a-z0-9]+)*(\+\d+-g[0-9a-f]+)?(-dirty)?$ # which $(DEB_VERSION doesn't necessarily match (eg, ~beta, +dfsg)) # but it is probably appropriate to include something here so it is clear # that this isn't upstream's build # x.y.z+dfsg -> vx.y.z-dfsg export ST_DEB_VERSION := v$(shell echo $(DEB_VERSION_UPSTREAM) | tr A-Z a-z | tr +~ -) export DH_GOLANG_EXCLUDES := cmd/strelaypoolsrv \ cmd/stcli \ cmd/stcrashreceiver \ cmd/stupgrades \ meta \ cmd/ursrv export GOCACHE := $(SOURCE)/go-build export GO111MODULE := off %: dh $@ --buildsystem=golang --with=golang --builddirectory=_build override_dh_auto_configure: dh_auto_configure ############### ## Web files ## ############### # initial folders cp -r -v $(SOURCE)/gui _build/src/$(PKG) #cp -r -v $(SOURCE)/cmd/strelaypoolsrv/gui _build/src/$(PKG)/cmd/strelaypoolsrv/gui mkdir -p _build/src/$(PKG)/gui/default/vendor # Bootstrap mkdir _build/src/$(PKG)/gui/default/vendor/bootstrap cp -v -r /usr/share/javascript/bootstrap/css _build/src/$(PKG)/gui/default/vendor/bootstrap/css cp -v -r /usr/share/javascript/bootstrap/js _build/src/$(PKG)/gui/default/vendor/bootstrap/js # font-awesome mkdir _build/src/$(PKG)/gui/default/vendor/fork-awesome cp --dereference -v -r /usr/share/fonts-fork-awesome/css _build/src/$(PKG)/gui/default/vendor/fork-awesome/css cp --dereference -v -r /usr/share/fonts-fork-awesome/fonts _build/src/$(PKG)/gui/default/vendor/fork-awesome/fonts # build assets cd _build/src/$(PKG) && go run script/genassets.go gui > lib/api/auto/gui.files.go #cd _build/src/$(PKG) && \ # mkdir cmd/strelaypoolsrv/auto && \ # go run script/genassets.go cmd/strelaypoolsrv/gui > cmd/strelaypoolsrv/auto/gui.go # Now remove the vendor stuff, we don't really want to ship it in the -dev package. rm -rf _build/src/$(PKG)/gui/default/vendor ############### ## test data ## ############### # tip: `find . -type d -name testdata` # then put them here in alphabetical order cp -rv $(SOURCE)/lib/api/testdata _build/src/$(PKG)/lib/api/ cp -rv $(SOURCE)/lib/model/testdata _build/src/$(PKG)/lib/model/ cp -rv $(SOURCE)/lib/ignore/testdata _build/src/$(PKG)/lib/ignore/ cp -rv $(SOURCE)/lib/db/testdata _build/src/$(PKG)/lib/db/ cp -rv $(SOURCE)/lib/config/testdata _build/src/$(PKG)/lib/config/ cp -rv $(SOURCE)/lib/scanner/testdata _build/src/$(PKG)/lib/scanner/ # syncthing/test cp -rv $(SOURCE)/test/h1 _build/src/$(PKG)/test/ cp -rv $(SOURCE)/test/h2 _build/src/$(PKG)/test/ cp -rv $(SOURCE)/test/h3 _build/src/$(PKG)/test/ cp -rv $(SOURCE)/test/h4 _build/src/$(PKG)/test/ cp -rv $(SOURCE)/test/logs _build/src/$(PKG)/test/ mkdir _build/src/$(PKG)/lib/versioner/_external_test cp $(SOURCE)/lib/versioner/_external_test/external.sh _build/src/$(PKG)/lib/versioner/_external_test/external.sh # lintian: package-contains-vcs-control-file rm _build/src/$(PKG)/lib/db/testdata/.gitignore rm _build/src/$(PKG)/test/logs/.gitignore override_dh_auto_build: dh_auto_build -- -ldflags "-X github.com/syncthing/syncthing/lib/build.Version=$(ST_DEB_VERSION) \ -X github.com/syncthing/syncthing/lib/build.User=debian \ -X github.com/syncthing/syncthing/lib/build.Host=debian \ -X github.com/syncthing/syncthing/lib/build.Stamp=$(SOURCE_DATE_EPOCH)" \ -tags 'noupgrade purego' # Don't run tests on architectures that are not supported # by upstream. SKIP_TESTS := True ifeq ($(DEB_HOST_ARCH_CPU),amd64) SKIP_TESTS := False endif ifeq ($(DEB_HOST_ARCH_CPU),i386) SKIP_TESTS := False endif override_dh_auto_test: if [ "$(SKIP_TESTS)" = "True" ]; then \ echo "Skipping tests"; \ else \ dh_auto_test; \ fi