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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#!/usr/bin/make -f
export DH_VERBOSE = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
#DPKG_EXPORT_BUILDFLAGS = 1
#include /usr/share/dpkg/buildflags.mk
export VERBOSE = yes
export BAZDIR = ${CURDIR}/debian/bazel-bootstrap
export BAZDATADIR = ${CURDIR}/debian/bazel-bootstrap-data
export BAZSRCDIR = ${CURDIR}/debian/bazel-bootstrap-source
# Bypass ccache
export CCACHE_DISABLE = 1
export CCACHE_TEMPDIR = ${CURDIR}/debian/ccachetmp
# Set locale for reproducible builds
export LC_ALL = C
# Ensure packages build with no Internet access
export http_proxy=127.0.0.1:9
export https_proxy=127.0.0.1:9
# BAZEL_CXXOPTS and BAZEL_LINKOPTS take a list of flags seperated by colon
export space = $() $()
export BAZEL_CXXOPTS = $(subst $(space),:,-std=c++0x ${CPPFLAGS} ${CXXFLAGS})
export BAZEL_LINKOPTS = $(subst $(space),:,-lstdc++ -lm ${LDFLAGS})
# Use the local JDK
export EXTRA_BAZEL_ARGS = \
--host_javabase=@local_jdk//:jdk \
--define=distribution=debian \
--noremote_accept_cached \
--verbose_failures \
--subcommands \
--compilation_mode dbg \
--action_env=CCACHE_DISABLE \
--action_env=CCACHE_TEMPDIR \
--action_env=LC_ALL \
--host_action_env=CCACHE_DISABLE \
--host_action_env=CCACHE_TEMPDIR \
--host_action_env=LC_ALL \
--sandbox_debug \
--sandbox_writable_path=${CCACHE_TEMPDIR} \
--override_repository=com_google_protobuf=${CURDIR}/tools/distributions/debian/protobuf \
--override_repository=remote_java_tools_linux=${CURDIR}/mock_repos/remote_java_tools_linux \
--override_repository=bazel_skylib=${CURDIR}/mock_repos/bazel_skylib \
--override_repository=io_bazel_skydoc=${CURDIR}/mock_repos/bazel_skydoc \
--override_repository=rules_pkg=${CURDIR}/mock_repos/rules_pkg \
--override_repository=rules_cc=${CURDIR}/mock_repos/rules_cc \
--override_repository=rules_java=${CURDIR}/mock_repos/rules_java \
--override_repository=rules_proto=${CURDIR}/mock_repos/rules_proto \
--override_repository=platforms=${CURDIR}/mock_repos/platforms \
--distinct_host_configuration=false
export PROTOC = /usr/bin/protoc
export GRPC_JAVA_PLUGIN = /usr/bin/grpc_java_plugin
export JAVA_VERSION = 17
# Prevent Out-of-Memory failures on some architectures
export BAZEL_JAVAC_OPTS = -J-Xmx4096m --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED
%:
dh $@ --with python3
override_dh_auto_build:
mkdir -p ${CCACHE_TEMPDIR}
./compile.sh
override_dh_auto_clean:
dh_auto_clean
rm -rf derived
rm -rf output
rm -rf bazel-*
override_dh_install:
mkdir -p debian/tmp/usr/src/bazel-bootstrap
ls | sed -r '/(debian|derived|examples|output|site|bazel-)/d' | \
xargs cp -r -t debian/tmp/usr/src/bazel-bootstrap
rm -f debian/tmp/usr/src/bazel-bootstrap/scripts/packages/chocolatey/.gitignore
rm -rf mock_repos
rm -f output/usr/share/bazel/xcode-locator
rm -rf output/usr/share/bazel/embedded_tools/tools/jdk/nosystemjdk
mv output/etc debian/tmp
mv output/usr/bin debian/tmp/usr
mv output/usr/share debian/tmp/usr
# Fail build (and show culprits) if Bazel components are not properly installed
mv output debian/tmp/leftovers
ls -laR debian/tmp/leftovers
dh_install
rm -rf ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/zip/zipper
override_dh_installdocs-arch:
dh_installdocs --package=bazel-bootstrap -XREADME.Debian
override_dh_installdocs-indep:
dh_installdocs --package=bazel-bootstrap-data \
--doc-main-package=bazel-bootstrap
dh_installdocs --package=bazel-bootstrap-source \
--doc-main-package=bazel-bootstrap -XREADME.Debian
override_dh_link-indep:
jdupes -rl ${BAZDATADIR}/usr
find ${BAZDATADIR}/usr/share/bazel/embedded_tools -type f -name \
'*.h' -printf '%h\n' | sort -u | sed 's@/build.*embedded_tools/@@' | \
xargs -I% mkdir -p ${BAZDATADIR}/usr/include/bazel/%
find ${BAZDATADIR}/usr/share/bazel/embedded_tools -name '*.h' | \
sed 's@/build.*/embedded_tools/@@g' | xargs -I% ln -rs \
${BAZDATADIR}/usr/share/bazel/embedded_tools/% \
${BAZDATADIR}/usr/include/bazel/%
dh_link
override_dh_fixperms-indep:
find ${BAZDATADIR}/usr/share -type f -print0 2>/dev/null | xargs -0r chmod a-x
find ${BAZSRCDIR}/usr/src -type f -not -name '*.sh' -print0 2>/dev/null | \
xargs -0r chmod a-x
find ${BAZDATADIR}/usr/share/doc/bazel/examples -type f \
-not -name '*.sh' -print0 2>/dev/null | xargs -0r chmod a-x
find ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools \
-type f -name '*.sh*' -print0 2>/dev/null | xargs -0r chmod a+x
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/buildstamp/get_workspace_status
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/cpp/build_interface_so
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/cpp/linux_cc_wrapper.sh.tpl
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/cpp/osx_cc_wrapper.sh.tpl
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/objc/gcov_stub
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/objc/mcov_stub
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/objc/protobuf_support
chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/python/pywrapper_template.txt
dh_fixperms
|