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
|
#!/usr/bin/make -f
export DH_VERBOSE = 1
# Generic hardening of binaries
# Note that passing -buildmode=pie separately is also needed.
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
# Provides $(DEB_VERSION_UPSTREAM)
include /usr/share/dpkg/pkg-info.mk
# Limit the scope of of dh_golang to just iterating just these packages. Path
# ithub.com/xo/usql is omitted intentionally to avoid failures on references to
# too many dependencies.
export DH_GOLANG_BUILDPKG_DH_GOLANG = \
github.com/xo/usql/drivers/metadata \
github.com/xo/usql/drivers/metadata/informationschema \
github.com/xo/usql/drivers/metadata/mysql \
github.com/xo/usql/drivers/metadata/postgres \
github.com/xo/usql/drivers/mymysql \
github.com/xo/usql/drivers/mysql \
github.com/xo/usql/drivers/sqlite3 \
github.com/xo/usql/drivers/sqlite3/sqshared \
github.com/xo/usql/env \
github.com/xo/usql/handler \
github.com/xo/usql/metacmd \
github.com/xo/usql/metacmd/charts \
github.com/xo/usql/rline \
github.com/xo/usql/stmt \
github.com/xo/usql/styles \
github.com/xo/usql/text
# Control the scope of the entire build. The root of usql needs to be included
# so that the actual usql binary is included in dh_install.
export DH_GOLANG_BUILDPKG = github.com/xo/usql $(DH_GOLANG_BUILDPKG_DH_GOLANG)
# Decrease the scope of what is being built
export TAGS = \
mymysql \
mysql \
sqlite \
sqlite_app_armor \
sqlite_fts5 \
sqlite_introspect \
sqlite_json1 \
sqlite_math_functions \
sqlite_stat4 \
sqlite_vtable \
no_clickhouse \
no_csvq \
no_oracle \
no_sqlserver \
no_moderncsqlite
# Logo is embedded and thus must be included
export DH_GOLANG_INSTALL_EXTRA := text/logo.png
%:
dh $@ --builddirectory=debian/.build/upstream --buildsystem=golang
# Copy vendored sources into build directory
execute_before_dh_auto_configure:
cp -av debian/vendor ./
# Remove extraneous files that don't belong to a Debian package
find drivers/testdata -type f -name ".gitignore" -delete
execute_after_dh_clean:
rm -rfv vendor/
# Customize build so that --tags can be passed
override_dh_auto_build:
dh_auto_build -O--builddirectory=debian/.build/upstream -O--buildsystem=golang -- \
-tags "$(TAGS)" \
-ldflags="-linkmode=external -X github.com/xo/usql/text.CommandName=usql -X github.com/xo/usql/text.CommandVersion=$(DEB_VERSION_UPSTREAM)" \
-buildmode=pie
# Note that the 'nocheck' condition inside this section may potentially be
# completely obsolete, as at least the Launchpad riscv64 builder completely
# skips this section with message:
# dh: command-omitted: The call to "debian/rules override_dh_auto_test" was
# omitted due to "DEB_BUILD_OPTIONS=nocheck"
override_dh_auto_test:
dh_auto_test -- -tags "$(TAGS)"
# Workaround dh-golang not honoring -tags nor DH_GOLANG_EXCLUDES when listing go
# mods (via go list).
override_dh_golang:
DH_GOLANG_BUILDPKG="$(DH_GOLANG_BUILDPKG_DH_GOLANG)" dh_golang -O--buildsystem=golang -O--builddirectory=debian/.build/upstream
|