4 export DESTDIR
=$(CURDIR
)/debian
/tmp
6 include /usr
/share
/dpkg
/default.mk
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
16 ifeq (,$(findstring WITH_SEASTAR
,$(CEPH_EXTRA_CMAKE_ARGS
)))
17 export CEPH_OSD_BASENAME
= ceph-osd
19 export CEPH_OSD_BASENAME
= crimson-osd
21 ifneq ($(filter pkg.ceph.arrow
,$(DEB_BUILD_PROFILES
)),)
22 extraopts
+= -DWITH_SYSTEM_ARROW
=ON
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
37 extraopts
+= -DWITH_RBD_RWL
=OFF
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
)
48 ifneq (,$(filter with_system_libs
,$(DEB_BUILD_OPTIONS
)))
49 extraopts
+= -DWITH_SYSTEM_BOOST
=ON
50 extraopts
+= -DWITH_SYSTEM_PMDK
=ON
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
62 dh
$@
--buildsystem
=cmake
--with javahelper
,python3
,systemd
--parallel
64 override_dh_auto_configure
:
66 dh_auto_configure
--buildsystem
=cmake
-- $(extraopts
) $(CEPH_EXTRA_CMAKE_ARGS
)
68 override_dh_auto_build
:
69 dh_auto_build
--buildsystem
=cmake
70 cp src
/init-radosgw debian
/radosgw.init
72 override_dh_auto_clean
:
73 dh_auto_clean
--buildsystem
=cmake
74 rm -f debian
/radosgw.init debian
/ceph.logrotate
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
84 install -m
644 -D monitoring
/ceph-mixin
/prometheus_alerts.yml
$(DESTDIR
)/etc
/prometheus
/ceph
/ceph_default_alerts.yml
86 # doc/changelog is a directory, which confuses dh_installchangelogs
87 override_dh_installchangelogs
:
88 dh_installchangelogs
--exclude doc
/changelog
90 override_dh_installdocs
:
92 override_dh_installlogrotate
:
93 cp src
/logrotate.conf debian
/ceph-common.logrotate
94 dh_installlogrotate
-pceph-common
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
103 dh_installinit
-p ceph-base
--name ceph
--no-start
104 dh_installinit
-p radosgw
--no-start
106 # NOTE: execute systemd helpers so they pickup dh_install'ed units and targets
108 dh_systemd_start
--no-restart-on-upgrade
110 override_dh_systemd_enable
:
111 # systemd enable done as part of dh_installinit
113 override_dh_systemd_start
:
114 # systemd start done as part of dh_installinit
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
142 override_dh_shlibdeps
:
143 dh_shlibdeps
-a
--exclude
=erasure-code
--exclude
=rados-classes
--exclude
=compressor
--exclude
=ceph_crypto
146 @for binding in
$(py3_bindings
); do \
147 dh_python3
-p python3-
$$binding; \
149 @for pkg in
$(py3_overrides_packages
); do \
150 dh_python3
-p
$$pkg --requires
=debian
/$$pkg.requires
; \
152 @for pkg in
$(py3_packages
); do \
153 dh_python3
-p
$$pkg; \
157 override_dh_auto_test
:
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