1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#!/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 \
meta \
cmd/ursrv
%:
dh $@ --buildsystem=golang --with=golang,systemd --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/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)/cmd/syncthing/testdata _build/src/$(PKG)/cmd/syncthing/
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 main.Version=$(ST_DEB_VERSION) \
-X main.BuildUser=debian \
-X main.BuildHost=debian \
-X main.BuildStamp=$(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
|