You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rules 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/usr/bin/make -f
  2. export DEB_BUILD_MAINT_OPTIONS = hardening=+all reproducible=+fixfilepath
  3. export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
  4. export ASAN_OPTIONS=detect_leaks=0
  5. DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
  6. builddir = debian/build/flavor-
  7. FLAVORS = release asan
  8. CONFIG_asan = -DCMAKE_BUILD_TYPE=Debug -DSANITIZE=address -DENABLE_LTO=OFF
  9. CONFIG_release = -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LTO=ON
  10. ifneq ($(filter $(DEB_HOST_ARCH),amd64 armel armhf i386 mips mips64el mipsel ppc64 ppc64el),)
  11. ENABLE_LUAJIT := -DENABLE_LUAJIT=ON -DLUA_ROOT=/luajit-build
  12. else
  13. ENABLE_LUAJIT := -DENABLE_LUAJIT=OFF
  14. endif
  15. # Can be filled by a build system
  16. EXTRA_ARGS :=
  17. ENABLE_JEMALLOC := -DENABLE_JEMALLOC=OFF
  18. ifneq ($(filter $(DEB_HOST_ARCH),amd64 i386 arm64),)
  19. ifeq ($(filter $(DEB_HOST_ARCH),arm64),)
  20. ENABLE_JEMALLOC := -DENABLE_JEMALLOC=ON
  21. ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=ON -DHYPERSCAN_ROOT_DIR=/vectorscan
  22. else
  23. ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=ON
  24. endif
  25. else
  26. ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=OFF
  27. endif
  28. %:
  29. dh $@ --with systemd --parallel
  30. override_dh_auto_configure: $(patsubst %,configure_%,$(FLAVORS))
  31. configure_%:
  32. mkdir -p $(builddir)$*
  33. cd $(builddir)$* && cmake ../../../ -DCONFDIR=/etc/rspamd -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 \
  34. -DMANDIR=/usr/share/man \
  35. -DRUNDIR=/run/rspamd \
  36. -DDBDIR=/var/lib/rspamd \
  37. -DLOGDIR=/var/log/rspamd \
  38. -DSHAREDIR=/usr/share/rspamd \
  39. -DLIBDIR=/usr/lib/rspamd \
  40. -DINCLUDEDIR=/usr/include \
  41. -DSYSTEMDDIR=/lib/systemd/system \
  42. -DCMAKE_INSTALL_PREFIX:PATH=/usr \
  43. -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
  44. -DDEBIAN_BUILD=1 \
  45. -DENABLE_PCRE2=ON \
  46. -DENABLE_LUAJIT=$(ENABLE_LUAJIT) \
  47. -DENABLE_LIBUNWIND=ON \
  48. -DWANT_SYSTEMD_UNITS=ON \
  49. -DENABLE_STATIC_LIBCXX=OFF \
  50. -DENABLE_LIBCXX=AUTO \
  51. $(ENABLE_HYPERSCAN) \
  52. $(ENABLE_LUAJIT) \
  53. $(ENABLE_JEMALLOC) \
  54. $(CONFIG_$*) \
  55. $(EXTRA_ARGS)
  56. override_dh_auto_build: $(patsubst %,build_%,$(FLAVORS))
  57. build_%:
  58. dh_auto_build --sourcedirectory=$(builddir)$*
  59. override_dh_strip: $(patsubst %,strip_%,$(FLAVORS))
  60. strip_%:
  61. if [ "$*" = "asan" ]; then \
  62. dh_strip -prspamd-asan --dbg-package=rspamd-dbg-asan ; \
  63. else \
  64. dh_strip -prspamd --dbg-package=rspamd-dbg ; \
  65. fi
  66. override_dh_makeshlibs:
  67. dh_makeshlibs -Xrspamd-actrie
  68. override_dh_auto_install: $(patsubst %,install_%,$(FLAVORS))
  69. install_%:
  70. if [ "$*" = "asan" ]; then \
  71. cd $(builddir)$* && make install DESTDIR=../../../debian/rspamd-asan ; \
  72. cd ../../../debian/rspamd-asan && mkdir -p var/lib/rspamd \
  73. var/log/rspamd \
  74. etc/rspamd/local.d \
  75. etc/rspamd/override.d ; \
  76. else \
  77. cd $(builddir)$* && make install DESTDIR=../../../debian/rspamd ; \
  78. cd ../../../debian/rspamd && mkdir -p var/lib/rspamd \
  79. var/log/rspamd \
  80. etc/rspamd/local.d \
  81. etc/rspamd/override.d ; \
  82. fi
  83. override_dh_fixperms:
  84. dh_fixperms
  85. chmod 750 $(CURDIR)/debian/rspamd/var/lib/rspamd
  86. chmod 750 $(CURDIR)/debian/rspamd/var/log/rspamd
  87. chmod 750 $(CURDIR)/debian/rspamd-asan/var/lib/rspamd
  88. chmod 750 $(CURDIR)/debian/rspamd-asan/var/log/rspamd