]> git.proxmox.com Git - ceph.git/blob - ceph/debian/rules
import ceph quincy 17.2.1
[ceph.git] / ceph / debian / rules
1 #!/usr/bin/make -f
2 # -*- makefile -*-
3 export DH_VERBOSE=1
4 export DESTDIR=$(CURDIR)/debian/tmp
5
6 export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
7 ifneq (,$(findstring WITH_STATIC_LIBSTDCXX,$(CEPH_EXTRA_CMAKE_ARGS)))
8 # dh_auto_build sets LDFLAGS with `dpkg-buildflags --get LDFLAGS` on ubuntu,
9 # which makes the application aborts when the shared library throws
10 # exception, so strip this linker option,
11 # see http://tracker.ceph.com/issues/25209
12 export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions
13 endif
14 ifeq (,$(findstring WITH_SEASTAR,$(CEPH_EXTRA_CMAKE_ARGS)))
15 export CEPH_OSD_BASENAME = ceph-osd
16 else
17 export CEPH_OSD_BASENAME = crimson-osd
18 endif
19 ifeq ($(filter pkg.ceph.jaeger,$(DEB_BUILD_PROFILES)),)
20 extraopts += -DWITH_JAEGER=OFF
21 else
22 extraopts += -DWITH_JAEGER=ON
23 endif
24 ifneq ($(filter pkg.ceph.arrow,$(DEB_BUILD_PROFILES)),)
25 extraopts += -DWITH_SYSTEM_ARROW=ON
26 endif
27
28 extraopts += -DWITH_SYSTEM_UTF8PROC=ON
29 extraopts += -DWITH_OCF=ON -DWITH_LTTNG=ON
30 extraopts += -DWITH_MGR_DASHBOARD_FRONTEND=OFF
31 extraopts += -DWITH_PYTHON3=3
32 extraopts += -DWITH_CEPHFS_JAVA=ON
33 extraopts += -DWITH_CEPHFS_SHELL=ON
34 extraopts += -DWITH_SYSTEMD=ON -DCEPH_SYSTEMD_ENV_DIR=/etc/default
35 extraopts += -DWITH_GRAFANA=ON
36 ifeq ($(DEB_HOST_ARCH), amd64)
37 extraopts += -DWITH_RBD_RWL=ON
38 else
39 extraopts += -DWITH_RBD_RWL=OFF
40 endif
41 extraopts += -DWITH_RBD_SSD_CACHE=ON
42 # assumes that ceph is exmpt from multiarch support, so we override the libdir.
43 extraopts += -DCMAKE_INSTALL_LIBDIR=/usr/lib
44 extraopts += -DCMAKE_INSTALL_LIBEXECDIR=/usr/libexec
45 extraopts += -DCMAKE_INSTALL_SYSCONFDIR=/etc
46 ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
47 NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
48 extraopts += -DBOOST_J=$(NUMJOBS)
49 endif
50 ifneq (,$(filter with_system_libs,$(DEB_BUILD_OPTIONS)))
51 extraopts += -DWITH_SYSTEM_BOOST=ON
52 extraopts += -DWITH_SYSTEM_PMDK=ON
53 endif
54
55 %:
56 dh $@ --buildsystem=cmake --with javahelper,python3,systemd --parallel
57
58 override_dh_auto_configure:
59 env | sort
60 dh_auto_configure --buildsystem=cmake -- $(extraopts) $(CEPH_EXTRA_CMAKE_ARGS)
61
62 override_dh_auto_build:
63 dh_auto_build --buildsystem=cmake
64 cp src/init-radosgw debian/radosgw.init
65
66 override_dh_auto_clean:
67 dh_auto_clean --buildsystem=cmake
68 rm -f debian/radosgw.init debian/ceph.logrotate
69
70 override_dh_auto_install:
71 dh_auto_install --buildsystem=cmake --destdir=$(DESTDIR)
72 install -D -m 644 udev/50-rbd.rules $(DESTDIR)/lib/udev/rules.d/50-rbd.rules
73 install -D -m 644 src/etc-rbdmap $(DESTDIR)/etc/ceph/rbdmap
74 install -D -m 644 etc/sysctl/90-ceph-osd.conf $(DESTDIR)/etc/sysctl.d/30-ceph-osd.conf
75 install -D -m 440 sudoers.d/ceph-smartctl $(DESTDIR)/etc/sudoers.d/ceph-smartctl
76 install -D -m 755 src/tools/rbd_nbd/rbd-nbd_quiesce $(DESTDIR)/usr/libexec/rbd-nbd/rbd-nbd_quiesce
77
78 install -m 755 src/cephadm/cephadm $(DESTDIR)/usr/sbin/cephadm
79
80 install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml $(DESTDIR)/etc/prometheus/ceph/ceph_default_alerts.yml
81
82 # doc/changelog is a directory, which confuses dh_installchangelogs
83 override_dh_installchangelogs:
84 dh_installchangelogs --exclude doc/changelog
85
86 override_dh_installdocs:
87
88 override_dh_installlogrotate:
89 cp src/logrotate.conf debian/ceph-common.logrotate
90 dh_installlogrotate -pceph-common
91
92 override_dh_installinit:
93 # install the systemd stuff manually since we have funny service names
94 install -d -m0755 debian/ceph-common/etc/default
95 install -m0644 etc/default/ceph debian/ceph-common/etc/default/
96 install -d -m0755 debian/ceph-common/usr/lib/tmpfiles.d
97 install -m 0644 -D systemd/ceph.tmpfiles.d debian/ceph-common/usr/lib/tmpfiles.d/ceph.conf
98
99 dh_installinit -p ceph-base --name ceph --no-start
100 dh_installinit -p radosgw --no-start
101
102 # NOTE: execute systemd helpers so they pickup dh_install'ed units and targets
103 dh_systemd_enable
104 dh_systemd_start --no-restart-on-upgrade
105
106 override_dh_systemd_enable:
107 # systemd enable done as part of dh_installinit
108
109 override_dh_systemd_start:
110 # systemd start done as part of dh_installinit
111
112 override_dh_strip:
113 dh_strip -pceph-mds --dbg-package=ceph-mds-dbg
114 dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg
115 dh_strip -pceph-mgr --dbg-package=ceph-mgr-dbg
116 dh_strip -pceph-mon --dbg-package=ceph-mon-dbg
117 dh_strip -pceph-osd --dbg-package=ceph-osd-dbg
118 dh_strip -pceph-base --dbg-package=ceph-base-dbg
119 dh_strip -pcephfs-mirror --dbg-package=cephfs-mirror-dbg
120 dh_strip -prbd-fuse --dbg-package=rbd-fuse-dbg
121 dh_strip -prbd-mirror --dbg-package=rbd-mirror-dbg
122 dh_strip -pceph-immutable-object-cache --dbg-package=ceph-immutable-object-cache-dbg
123 dh_strip -prbd-nbd --dbg-package=rbd-nbd-dbg
124 dh_strip -pceph-common --dbg-package=ceph-common-dbg
125 dh_strip -plibrados2 --dbg-package=librados2-dbg
126 dh_strip -plibsqlite3-mod-ceph --dbg-package=libsqlite3-mod-ceph-dbg
127 dh_strip -plibradosstriper1 --dbg-package=libradosstriper1-dbg
128 dh_strip -plibrbd1 --dbg-package=librbd1-dbg
129 dh_strip -plibcephfs2 --dbg-package=libcephfs2-dbg
130 dh_strip -plibrgw2 --dbg-package=librgw2-dbg
131 dh_strip -pradosgw --dbg-package=radosgw-dbg
132 dh_strip -pceph-test --dbg-package=ceph-test-dbg
133 dh_strip -ppython3-rados --dbg-package=python3-rados-dbg
134 dh_strip -ppython3-rbd --dbg-package=python3-rbd-dbg
135 dh_strip -ppython3-rgw --dbg-package=python3-rgw-dbg
136 dh_strip -ppython3-cephfs --dbg-package=python3-cephfs-dbg
137
138 override_dh_shlibdeps:
139 dh_shlibdeps -a --exclude=erasure-code --exclude=rados-classes --exclude=compressor --exclude=ceph_crypto
140
141 override_dh_python3:
142 for binding in rados cephfs rbd rgw; do \
143 dh_python3 -p python3-$$binding; \
144 done
145 dh_python3 -p python3-ceph-argparse
146 dh_python3 -p python3-ceph-common
147 dh_python3 -p cephfs-shell
148 dh_python3 -p cephfs-top
149 dh_python3 -p cephadm
150
151 # do not run tests
152 override_dh_auto_test:
153
154 .PHONY: override_dh_autoreconf override_dh_auto_configure override_dh_auto_build override_dh_auto_clean override_dh_auto_install override_dh_installdocs override_dh_installlogrotate override_dh_installinit override_dh_systemd_start override_dh_strip override_dh_auto_test