4 export DESTDIR
=$(CURDIR
)/debian
/tmp
6 include /usr
/share
/dpkg
/default.mk
8 ifneq (,$(findstring WITH_STATIC_LIBSTDCXX
,$(CEPH_EXTRA_CMAKE_ARGS
)))
9 # dh_auto_build sets LDFLAGS with `dpkg-buildflags --get LDFLAGS` on ubuntu,
10 # which makes the application aborts when the shared library throws
11 # exception, so strip this linker option,
12 # see http://tracker.ceph.com/issues/25209
13 export DEB_LDFLAGS_MAINT_STRIP
= -Wl
,-Bsymbolic-functions
15 ifeq (,$(findstring WITH_SEASTAR
,$(CEPH_EXTRA_CMAKE_ARGS
)))
16 export CEPH_OSD_BASENAME
= ceph-osd
18 export CEPH_OSD_BASENAME
= crimson-osd
20 ifneq ($(filter pkg.ceph.arrow
,$(DEB_BUILD_PROFILES
)),)
21 extraopts
+= -DWITH_SYSTEM_ARROW
=ON
24 extraopts
+= -DWITH_JAEGER
=ON
25 extraopts
+= -DWITH_SYSTEM_UTF8PROC
=ON
26 extraopts
+= -DWITH_OCF
=ON
-DWITH_LTTNG
=ON
27 extraopts
+= -DWITH_MGR_DASHBOARD_FRONTEND
=OFF
28 extraopts
+= -DWITH_PYTHON3
=3
29 extraopts
+= -DWITH_CEPHFS_JAVA
=ON
30 extraopts
+= -DWITH_CEPHFS_SHELL
=ON
31 extraopts
+= -DWITH_SYSTEMD
=ON
-DCEPH_SYSTEMD_ENV_DIR
=/etc
/default
32 extraopts
+= -DWITH_GRAFANA
=ON
33 ifeq ($(DEB_HOST_ARCH
), amd64
)
34 extraopts
+= -DWITH_RBD_RWL
=ON
36 extraopts
+= -DWITH_RBD_RWL
=OFF
38 extraopts
+= -DWITH_RBD_SSD_CACHE
=ON
39 # assumes that ceph is exmpt from multiarch support, so we override the libdir.
40 extraopts
+= -DCMAKE_INSTALL_LIBDIR
=/usr
/lib
41 extraopts
+= -DCMAKE_INSTALL_LIBEXECDIR
=/usr
/libexec
42 extraopts
+= -DCMAKE_INSTALL_SYSCONFDIR
=/etc
43 ifneq (,$(filter parallel
=%,$(DEB_BUILD_OPTIONS
)))
44 NUMJOBS
= $(patsubst parallel
=%,%,$(filter parallel
=%,$(DEB_BUILD_OPTIONS
)))
45 extraopts
+= -DBOOST_J
=$(NUMJOBS
)
47 ifneq (,$(filter with_system_libs
,$(DEB_BUILD_OPTIONS
)))
48 extraopts
+= -DWITH_SYSTEM_BOOST
=ON
49 extraopts
+= -DWITH_SYSTEM_PMDK
=ON
52 # for python3-${pkg} packages
53 py3_bindings
:= rados cephfs rbd rgw ceph-argparse ceph-common
54 # for packages with its own py3dist-overrides files, those file should be named
55 # like ${pkg}.requires
56 py3_overrides_packages
:= $(basename $(notdir $(wildcard debian
/*.requires
)))
57 # for python3 applications, the package name is used as it is
58 py3_packages
:= cephfs-shell cephfs-top cephadm
61 dh
$@
--buildsystem
=cmake
--with javahelper
,python3
--parallel
63 override_dh_auto_configure
:
65 dh_auto_configure
--buildsystem
=cmake
-- $(extraopts
) $(CEPH_EXTRA_CMAKE_ARGS
)
67 override_dh_auto_clean
:
68 dh_auto_clean
--buildsystem
=cmake
69 rm -f debian
/radosgw.init debian
/ceph.logrotate debian
/ceph-base.docs
71 override_dh_auto_install
:
72 dh_auto_install
--buildsystem
=cmake
--destdir
=$(DESTDIR
)
73 install -D
-m
644 udev
/50-rbd.rules
$(DESTDIR
)/lib
/udev
/rules.d
/50-rbd.rules
74 install -D
-m
644 src
/etc-rbdmap
$(DESTDIR
)/etc
/ceph
/rbdmap
75 install -D
-m
644 etc
/sysctl
/90-ceph-osd.conf
$(DESTDIR
)/etc
/sysctl.d
/30-ceph-osd.conf
76 install -D
-m
440 sudoers.d
/ceph-smartctl
$(DESTDIR
)/etc
/sudoers.d
/ceph-smartctl
77 install -D
-m
755 src
/tools
/rbd_nbd
/rbd-nbd_quiesce
$(DESTDIR
)/usr
/libexec
/rbd-nbd
/rbd-nbd_quiesce
79 install -m
644 -D monitoring
/ceph-mixin
/prometheus_alerts.yml
$(DESTDIR
)/etc
/prometheus
/ceph
/ceph_default_alerts.yml
81 # doc/changelog is a directory, which confuses dh_installchangelogs
82 override_dh_installchangelogs
:
83 dh_installchangelogs
--exclude doc
/changelog
85 override_dh_installlogrotate
:
86 cp src
/logrotate.conf debian
/ceph-common.logrotate
87 dh_installlogrotate
-pceph-common
89 override_dh_installinit
:
90 cp src
/init-radosgw debian
/radosgw.init
91 # install the systemd stuff manually since we have funny service names
92 install -d
-m0755 debian
/ceph-common
/etc
/default
93 install -m0644 etc
/default
/ceph debian
/ceph-common
/etc
/default
/
94 install -d
-m0755 debian
/ceph-common
/usr
/lib
/tmpfiles.d
95 install -m
0644 -D systemd
/ceph.tmpfiles.d debian
/ceph-common
/usr
/lib
/tmpfiles.d
/ceph.conf
97 dh_installinit
-p ceph-base
--name ceph
--no-start
98 dh_installinit
-p radosgw
--no-start
100 override_dh_installsystemd
:
101 # Only enable and start systemd targets
102 dh_installsystemd
--no-stop-on-upgrade
--no-restart-after-upgrade
-Xceph-mon.service
-Xceph-osd.service
-X ceph-mds.service
105 dh_strip
-pceph-mds
--dbg-package
=ceph-mds-dbg
106 dh_strip
-pceph-fuse
--dbg-package
=ceph-fuse-dbg
107 dh_strip
-pceph-mgr
--dbg-package
=ceph-mgr-dbg
108 dh_strip
-pceph-mon
--dbg-package
=ceph-mon-dbg
109 dh_strip
-pceph-osd
--dbg-package
=ceph-osd-dbg
110 dh_strip
-pceph-base
--dbg-package
=ceph-base-dbg
111 dh_strip
-pcephfs-mirror
--dbg-package
=cephfs-mirror-dbg
112 dh_strip
-prbd-fuse
--dbg-package
=rbd-fuse-dbg
113 dh_strip
-prbd-mirror
--dbg-package
=rbd-mirror-dbg
114 dh_strip
-pceph-immutable-object-cache
--dbg-package
=ceph-immutable-object-cache-dbg
115 dh_strip
-prbd-nbd
--dbg-package
=rbd-nbd-dbg
116 dh_strip
-pceph-common
--dbg-package
=ceph-common-dbg
117 dh_strip
-plibrados2
--dbg-package
=librados2-dbg
118 dh_strip
-plibsqlite3-mod-ceph
--dbg-package
=libsqlite3-mod-ceph-dbg
119 dh_strip
-plibradosstriper1
--dbg-package
=libradosstriper1-dbg
120 dh_strip
-plibrbd1
--dbg-package
=librbd1-dbg
121 dh_strip
-plibcephfs2
--dbg-package
=libcephfs2-dbg
122 dh_strip
-plibrgw2
--dbg-package
=librgw2-dbg
123 dh_strip
-pradosgw
--dbg-package
=radosgw-dbg
124 dh_strip
-pceph-test
--dbg-package
=ceph-test-dbg
125 dh_strip
-ppython3-rados
--dbg-package
=python3-rados-dbg
126 dh_strip
-ppython3-rbd
--dbg-package
=python3-rbd-dbg
127 dh_strip
-ppython3-rgw
--dbg-package
=python3-rgw-dbg
128 dh_strip
-ppython3-cephfs
--dbg-package
=python3-cephfs-dbg
130 override_dh_shlibdeps
:
131 dh_shlibdeps
-a
--exclude
=erasure-code
--exclude
=rados-classes
--exclude
=compressor
--exclude
=ceph_crypto
134 @for binding in
$(py3_bindings
); do \
135 dh_python3
-p python3-
$$binding; \
137 @for pkg in
$(py3_overrides_packages
); do \
138 dh_python3
-p
$$pkg --requires
=debian
/$$pkg.requires
; \
140 @for pkg in
$(py3_packages
); do \
141 dh_python3
-p
$$pkg; \
143 dh_python3
-p ceph-base
--shebang
=/usr
/bin
/python3
144 dh_python3
-p ceph-common
--shebang
=/usr
/bin
/python3
145 dh_python3
-p ceph-fuse
--shebang
=/usr
/bin
/python3
146 dh_python3
-p ceph-volume
--shebang
=/usr
/bin
/python3
149 override_dh_auto_test
:
151 .PHONY
: override_dh_autoreconf override_dh_auto_configure override_dh_auto_clean override_dh_auto_install override_dh_installlogrotate override_dh_installinit override_dh_strip override_dh_auto_test