rules 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. #!/usr/bin/make -f
  2. # Find the arch we are building for, as this determines
  3. # the location of plugins in /usr/lib
  4. TOP = $(CURDIR)/debian/netdata
  5. TEMPTOP = $(CURDIR)/debian/tmp
  6. BASE_CONFIG = system/netdata.conf
  7. SYSTEMD_VERSION = $(shell /bin/sh -c "systemd --version 2>&1 | head -n 1 | cut -f 2 -d ' '")
  8. ifeq ($(shell test $(SYSTEMD_VERSION) -ge 235 && echo "1"), 1)
  9. SYSTEMD_UNIT = system/systemd/netdata.service.v235
  10. else
  11. SYSTEMD_UNIT = system/systemd/netdata.service
  12. endif
  13. ifeq ($(shell test ${DEB_TARGET_ARCH} != "amd64" && echo "1"), 1)
  14. HAVE_EBPF = 0
  15. EBPF_CONFIG = --disable-ebpf
  16. else
  17. HAVE_EBPF = 1
  18. endif
  19. %:
  20. dh $@
  21. override_dh_installinit:
  22. echo "SystemD Version: $(SYSTEMD_VERSION)"
  23. echo "Using SystemD Unit: $(SYSTEMD_UNIT)"
  24. cp -v $(SYSTEMD_UNIT) debian/netdata.service
  25. dh_systemd_enable
  26. dh_installinit
  27. override_dh_auto_configure:
  28. if [ $(HAVE_EBPF) -eq 1 ]; then \
  29. packaging/bundle-libbpf.sh . ${TOP}/usr/libexec/netdata/plugins.d; \
  30. packaging/bundle-ebpf-co-re.sh . ${TOP}/usr/libexec/netdata/plugins.d; \
  31. fi
  32. autoreconf -ivf
  33. dh_auto_configure -- --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib \
  34. --libexecdir=/usr/libexec --with-user=netdata --with-math --with-zlib --with-webdir=/var/lib/netdata/www \
  35. --disable-dependency-tracking $(EBPF_CONFIG)
  36. override_dh_install:
  37. cp -v $(BASE_CONFIG) debian/netdata.conf
  38. dh_install
  39. # Set the CUPS plugin install rule
  40. #
  41. mkdir -p $(TOP)-plugin-cups/usr/libexec/netdata/plugins.d
  42. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/cups.plugin \
  43. $(TOP)-plugin-cups/usr/libexec/netdata/plugins.d/cups.plugin
  44. # Add free IPMI plugin install rules
  45. #
  46. mkdir -p $(TOP)-plugin-freeipmi/usr/libexec/netdata/plugins.d
  47. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/freeipmi.plugin \
  48. $(TOP)-plugin-freeipmi/usr/libexec/netdata/plugins.d/freeipmi.plugin
  49. # Add free IPMI plugin install rules
  50. #
  51. mkdir -p $(TOP)-plugin-nfacct/usr/libexec/netdata/plugins.d
  52. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/nfacct.plugin \
  53. $(TOP)-plugin-nfacct/usr/libexec/netdata/plugins.d/nfacct.plugin
  54. # Add charts.d plugin install rules
  55. #
  56. mkdir -p $(TOP)-plugin-chartsd/usr/libexec/netdata/plugins.d/
  57. mkdir -p $(TOP)-plugin-chartsd/usr/lib/netdata/conf.d/
  58. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/charts.d.plugin \
  59. $(TOP)-plugin-chartsd/usr/libexec/netdata/plugins.d/charts.d.plugin
  60. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/charts.d.dryrun-helper.sh \
  61. $(TOP)-plugin-chartsd/usr/libexec/netdata/plugins.d/charts.d.dryrun-helper.sh
  62. mv -f $(TEMPTOP)/usr/libexec/netdata/charts.d \
  63. $(TOP)-plugin-chartsd/usr/libexec/netdata/charts.d
  64. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/charts.d.conf \
  65. $(TOP)-plugin-chartsd/usr/lib/netdata/conf.d/charts.d.conf
  66. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/charts.d \
  67. $(TOP)-plugin-chartsd/usr/lib/netdata/conf.d/charts.d
  68. # Add ebpf plugin install rules
  69. if [ $(HAVE_EBPF) -eq 1 ]; then \
  70. mkdir -p $(TOP)-plugin-ebpf/usr/libexec/netdata/plugins.d/; \
  71. mkdir -p $(TOP)-plugin-ebpf/usr/lib/netdata/conf.d/; \
  72. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/ebpf.plugin $(TOP)-plugin-ebpf/usr/libexec/netdata/plugins.d/ebpf.plugin; \
  73. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/ebpf.d.conf $(TOP)-plugin-ebpf/usr/lib/netdata/conf.d/ebpf.d.conf; \
  74. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/ebpf.d $(TOP)-plugin-ebpf/usr/lib/netdata/conf.d/ebpf.d; \
  75. fi
  76. # Add python plugin install rules
  77. mkdir -p $(TOP)-plugin-pythond/usr/libexec/netdata/plugins.d/
  78. mkdir -p $(TOP)-plugin-pythond/usr/lib/netdata/conf.d/
  79. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/python.d.plugin \
  80. $(TOP)-plugin-pythond/usr/libexec/netdata/plugins.d/python.d.plugin
  81. mv -f $(TEMPTOP)/usr/libexec/netdata/python.d \
  82. $(TOP)-plugin-pythond/usr/libexec/netdata/python.d
  83. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/python.d.conf \
  84. $(TOP)-plugin-pythond/usr/lib/netdata/conf.d/python.d.conf
  85. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/python.d \
  86. $(TOP)-plugin-pythond/usr/lib/netdata/conf.d/python.d
  87. # Add apps plugin install rules
  88. mkdir -p $(TOP)-plugin-apps/usr/libexec/netdata/plugins.d/
  89. mkdir -p $(TOP)-plugin-apps/usr/lib/netdata/conf.d/
  90. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/apps.plugin \
  91. $(TOP)-plugin-apps/usr/libexec/netdata/plugins.d/apps.plugin
  92. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/apps_groups.conf \
  93. $(TOP)-plugin-apps/usr/lib/netdata/conf.d/apps_groups.conf
  94. # Add slabinfo plugin install rules
  95. mkdir -p $(TOP)-plugin-slabinfo/usr/libexec/netdata/plugins.d/
  96. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/slabinfo.plugin \
  97. $(TOP)-plugin-slabinfo/usr/libexec/netdata/plugins.d/slabinfo.plugin
  98. # Add perf plugin install rules
  99. mkdir -p $(TOP)-plugin-perf/usr/libexec/netdata/plugins.d/
  100. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/perf.plugin \
  101. $(TOP)-plugin-perf/usr/libexec/netdata/plugins.d/perf.plugin
  102. # Add debugfs plugin install rules
  103. mkdir -p $(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/
  104. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/debugfs.plugin \
  105. $(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/debugfs.plugin
  106. # Add systemd-journal plugin install rules
  107. mkdir -p $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/
  108. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/systemd-journal.plugin \
  109. $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/systemd-journal.plugin
  110. # Add logs-management plugin install rules
  111. mkdir -p $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/
  112. mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/logs-management.plugin \
  113. $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/logs-management.plugin
  114. mkdir -p $(TOP)-plugin-logs-management/usr/lib/netdata/conf.d/
  115. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/logsmanagement.d.conf \
  116. $(TOP)-plugin-logs-management/usr/lib/netdata/conf.d/logsmanagement.d.conf
  117. mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/logsmanagement.d/ \
  118. $(TOP)-plugin-logs-management/usr/lib/netdata/conf.d/logsmanagement.d/
  119. # Set the rest of the software in the main package
  120. #
  121. cp -rp $(TEMPTOP)/usr $(TOP)
  122. cp -rp $(TEMPTOP)/var $(TOP)
  123. cp -rp $(TEMPTOP)/etc $(TOP)
  124. mkdir -p "$(TOP)/var/log/netdata"
  125. mkdir -p "$(TOP)/var/cache/netdata"
  126. mkdir -p "$(TOP)/var/run/netdata"
  127. # Copy the updater script
  128. #
  129. cp -v packaging/installer/netdata-updater.sh $(TOP)/usr/libexec/netdata/netdata-updater.sh
  130. # Move files that local user shouldn't be editing to /usr/share/netdata
  131. #
  132. mkdir -p "$(TOP)/usr/share/netdata/www"
  133. for D in $$(find "$(TOP)/var/lib/netdata/www/" -maxdepth 1 -type d -printf '%f '); do \
  134. echo Relocating $$D; \
  135. mv "$(TOP)/var/lib/netdata/www/$$D" "$(TOP)/usr/share/netdata/www/$$D"; \
  136. ln -s "/usr/share/netdata/www/$$D" "$(TOP)/var/lib/netdata/www/$$D"; \
  137. done
  138. # Handle eBPF code
  139. #
  140. if [ $(HAVE_EBPF) -eq 1 ]; then \
  141. mkdir -p $(TOP)-ebpf-code-legacy/usr/libexec/netdata/plugins.d/; \
  142. packaging/bundle-ebpf.sh . ${TOP}-ebpf-code-legacy/usr/libexec/netdata/plugins.d/ force; \
  143. fi
  144. # Install go to it's own package directory
  145. #
  146. mkdir -p $(TOP)-plugin-go/usr/lib/netdata/conf.d
  147. mkdir -p $(TOP)-plugin-go/usr/libexec/netdata/plugins.d
  148. debian/install_go.sh $$(cat ${CURDIR}/packaging/go.d.version) \
  149. $(TOP)-plugin-go/usr/lib/netdata \
  150. $(TOP)-plugin-go/usr/libexec/netdata
  151. override_dh_installdocs:
  152. dh_installdocs
  153. find . \
  154. -name README.md \
  155. -not -path './debian/*' \
  156. -not -path './contrib/*' \
  157. -exec cp \
  158. --parents \
  159. --target $(TOP)/usr/share/doc/netdata/ \
  160. {} \;
  161. override_dh_fixperms:
  162. dh_fixperms
  163. # Updater script should be executable
  164. #
  165. chmod 0755 $(TOP)/usr/libexec/netdata/netdata-updater.sh
  166. # debugfs plugin
  167. chmod 0750 $(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/debugfs.plugin
  168. # apps.plugin should only be runnable by the netdata user. It will be
  169. # given extra capabilities in the postinst script.
  170. #
  171. chmod 0750 $(TOP)-plugin-apps/usr/libexec/netdata/plugins.d/apps.plugin
  172. # slabinfo package
  173. chmod 0750 $(TOP)-plugin-slabinfo/usr/libexec/netdata/plugins.d/slabinfo.plugin
  174. # perf package
  175. chmod 0750 $(TOP)-plugin-perf/usr/libexec/netdata/plugins.d/perf.plugin
  176. # Go plugin package
  177. chmod 0750 $(TOP)-plugin-go/usr/libexec/netdata/plugins.d/go.d.plugin
  178. # CUPS plugin package
  179. chmod 0750 $(TOP)-plugin-cups/usr/libexec/netdata/plugins.d/cups.plugin
  180. # freeIPMI plugin package
  181. chmod 4750 $(TOP)-plugin-freeipmi/usr/libexec/netdata/plugins.d/freeipmi.plugin
  182. # NFACCT plugin package
  183. chmod 4750 $(TOP)-plugin-nfacct/usr/libexec/netdata/plugins.d/nfacct.plugin
  184. # cgroup-network
  185. chmod 4750 $(TOP)/usr/libexec/netdata/plugins.d/cgroup-network
  186. # local-listeners
  187. chmod 4750 $(TOP)/usr/libexec/netdata/plugins.d/local-listeners
  188. # systemd-journal
  189. chmod 4750 $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/systemd-journal.plugin
  190. # systemd-journal
  191. chmod 4750 $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/logs-management.plugin
  192. override_dh_installlogrotate:
  193. cp system/logrotate/netdata debian/netdata.logrotate
  194. dh_installlogrotate
  195. override_dh_installdeb:
  196. dh_installdeb
  197. @echo "Recreating conffiles without auto-adding /etc files"
  198. @cp $(CURDIR)/debian/conffiles $(CURDIR)/debian/netdata/DEBIAN/conffiles
  199. override_dh_clean:
  200. dh_clean
  201. # Tidy up copied/generated files
  202. #
  203. [ -r $(CURDIR)/debian/netdata.logrotate ] && rm $(CURDIR)/debian/netdata.logrotate ; true
  204. [ -r $(CURDIR)/debian/netdata.conffiles ] && rm $(CURDIR)/debian/netdata.conffiles ; true