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