4 export DESTDIR
=$(CURDIR
)/debian
/tmp
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
14 ifeq (,$(findstring WITH_SEASTAR
,$(CEPH_EXTRA_CMAKE_ARGS
)))
15 export CEPH_OSD_BASENAME
= ceph-osd
17 export CEPH_OSD_BASENAME
= crimson-osd
19 ifeq ($(filter pkg.ceph.jaeger
,$(DEB_BUILD_PROFILES
)),)
20 extraopts
+= -DWITH_JAEGER
=OFF
22 extraopts
+= -DWITH_JAEGER
=ON
24 ifneq ($(filter pkg.ceph.arrow
,$(DEB_BUILD_PROFILES
)),)
25 extraopts
+= -DWITH_SYSTEM_ARROW
=ON
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
39 extraopts
+= -DWITH_RBD_RWL
=OFF
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
)
50 ifneq (,$(filter with_system_libs
,$(DEB_BUILD_OPTIONS
)))
51 extraopts
+= -DWITH_SYSTEM_BOOST
=ON
52 extraopts
+= -DWITH_SYSTEM_PMDK
=ON
56 dh
$@
--buildsystem
=cmake
--with javahelper
,python3
,systemd
--parallel
58 override_dh_auto_configure
:
60 dh_auto_configure
--buildsystem
=cmake
-- $(extraopts
) $(CEPH_EXTRA_CMAKE_ARGS
)
62 override_dh_auto_build
:
63 dh_auto_build
--buildsystem
=cmake
64 cp src
/init-radosgw debian
/radosgw.init
66 override_dh_auto_clean
:
67 dh_auto_clean
--buildsystem
=cmake
68 rm -f debian
/radosgw.init debian
/ceph.logrotate
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
78 install -m
755 src
/cephadm
/cephadm
$(DESTDIR
)/usr
/sbin
/cephadm
80 install -m
644 -D monitoring
/ceph-mixin
/prometheus_alerts.yml
$(DESTDIR
)/etc
/prometheus
/ceph
/ceph_default_alerts.yml
82 # doc/changelog is a directory, which confuses dh_installchangelogs
83 override_dh_installchangelogs
:
84 dh_installchangelogs
--exclude doc
/changelog
86 override_dh_installdocs
:
88 override_dh_installlogrotate
:
89 cp src
/logrotate.conf debian
/ceph-common.logrotate
90 dh_installlogrotate
-pceph-common
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
99 dh_installinit
-p ceph-base
--name ceph
--no-start
100 dh_installinit
-p radosgw
--no-start
102 # NOTE: execute systemd helpers so they pickup dh_install'ed units and targets
104 dh_systemd_start
--no-restart-on-upgrade
106 override_dh_systemd_enable
:
107 # systemd enable done as part of dh_installinit
109 override_dh_systemd_start
:
110 # systemd start done as part of dh_installinit
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
138 override_dh_shlibdeps
:
139 dh_shlibdeps
-a
--exclude
=erasure-code
--exclude
=rados-classes
--exclude
=compressor
--exclude
=ceph_crypto
142 for binding in rados cephfs rbd rgw
; do \
143 dh_python3
-p python3-
$$binding; \
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
152 override_dh_auto_test
:
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