mirror of
https://github.com/ceph/ceph
synced 2024-12-29 15:03:33 +00:00
e5f00d2fdc
* debian/: remove ceph-crimson-osd package. * debian/control: set `CEPH_OSD_BASENAME` env variable, which will be consumed by `ceph-osd.install`. alternatively, we could rename crimson-osd to ceph-osd in `override_dh_auto_install`, but let's go with this way at this moment, unless `mv` in `override_dh_auto_install` is proved to be better. * ceph-osd.install: replace ceph-osd with crimson-osd if `CEPH_EXTRA_CMAKE_ARGS` has `WITH_SEASTAR` in it. this only happens when we are packaging the "crimson" flavor packages from jenkins. * ceph-osd.install: `chmod +x` this file, as we need to use `/usr/bin/dh-exec` as the interpreter of it to perform variable substitution and install. Signed-off-by: Kefu Chai <kchai@redhat.com>
148 lines
5.7 KiB
Makefile
Executable File
148 lines
5.7 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# -*- makefile -*-
|
|
export DH_VERBOSE=1
|
|
export DESTDIR=$(CURDIR)/debian/tmp
|
|
|
|
export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
|
ifneq (,$(findstring WITH_STATIC_LIBSTDCXX,$(CEPH_EXTRA_CMAKE_ARGS)))
|
|
# dh_auto_build sets LDFLAGS with `dpkg-buildflags --get LDFLAGS` on ubuntu,
|
|
# which makes the application aborts when the shared library throws
|
|
# exception, so strip this linker option,
|
|
# see http://tracker.ceph.com/issues/25209
|
|
export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions
|
|
endif
|
|
ifeq (,$(findstring WITH_SEASTAR,$(CEPH_EXTRA_CMAKE_ARGS)))
|
|
export CEPH_OSD_BASENAME = ceph-osd
|
|
else
|
|
export CEPH_OSD_BASENAME = crimson-osd
|
|
endif
|
|
|
|
extraopts += -DWITH_OCF=ON -DWITH_LTTNG=ON
|
|
extraopts += -DWITH_PYTHON3=ON -DWITH_MGR_DASHBOARD_FRONTEND=OFF
|
|
extraopts += -DWITH_CEPHFS_JAVA=ON
|
|
extraopts += -DWITH_CEPHFS_SHELL=ON
|
|
extraopts += -DWITH_SYSTEMD=ON -DCEPH_SYSTEMD_ENV_DIR=/etc/default
|
|
# assumes that ceph is exmpt from multiarch support, so we override the libdir.
|
|
extraopts += -DCMAKE_INSTALL_LIBDIR=/usr/lib
|
|
extraopts += -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib
|
|
extraopts += -DCMAKE_INSTALL_SYSCONFDIR=/etc
|
|
extraopts += -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=/lib/systemd/system
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
extraopts += -DBOOST_J=$(NUMJOBS)
|
|
endif
|
|
|
|
ifneq (,$(filter $(DEB_HOST_ARCH), arm armel armhf arm64 i386 amd64 mips mipsel powerpc ppc64))
|
|
# libboost_context only support the archs above
|
|
extraopts += -DWITH_BOOST_CONTEXT=ON
|
|
else
|
|
extraopts += -DWITH_BOOST_CONTEXT=OFF
|
|
endif
|
|
|
|
%:
|
|
dh $@ --buildsystem=cmake --with javahelper,python2,python3,systemd --parallel
|
|
|
|
override_dh_auto_configure:
|
|
env | sort
|
|
dh_auto_configure --buildsystem=cmake -- $(extraopts) $(CEPH_EXTRA_CMAKE_ARGS)
|
|
|
|
override_dh_auto_build:
|
|
dh_auto_build --buildsystem=cmake
|
|
cp src/init-radosgw debian/radosgw.init
|
|
|
|
override_dh_auto_clean:
|
|
dh_auto_clean --buildsystem=cmake
|
|
rm -f debian/radosgw.init debian/ceph.logrotate
|
|
|
|
override_dh_auto_install:
|
|
dh_auto_install --buildsystem=cmake --destdir=$(DESTDIR)
|
|
install -D -m 644 udev/50-rbd.rules $(DESTDIR)/lib/udev/rules.d/50-rbd.rules
|
|
install -D -m 644 src/etc-rbdmap $(DESTDIR)/etc/ceph/rbdmap
|
|
install -D -m 644 etc/sysctl/90-ceph-osd.conf $(DESTDIR)/etc/sysctl.d/30-ceph-osd.conf
|
|
install -D -m 600 sudoers.d/ceph-osd-smartctl $(DESTDIR)/etc/sudoers.d/ceph-osd-smartctl
|
|
|
|
# doc/changelog is a directory, which confuses dh_installchangelogs
|
|
override_dh_installchangelogs:
|
|
dh_installchangelogs --exclude doc/changelog
|
|
|
|
override_dh_installdocs:
|
|
|
|
override_dh_installlogrotate:
|
|
cp src/logrotate.conf debian/ceph-common.logrotate
|
|
dh_installlogrotate -pceph-common
|
|
|
|
override_dh_installinit:
|
|
# install the systemd stuff manually since we have funny service names
|
|
install -d -m0755 debian/ceph-common/etc/default
|
|
install -m0644 etc/default/ceph debian/ceph-common/etc/default/
|
|
install -d -m0755 debian/ceph-common/usr/lib/tmpfiles.d
|
|
install -m 0644 -D systemd/ceph.tmpfiles.d debian/ceph-common/usr/lib/tmpfiles.d/ceph.conf
|
|
|
|
dh_installinit -p ceph-base --name ceph --no-start
|
|
dh_installinit -p radosgw --no-start
|
|
|
|
# NOTE: execute systemd helpers so they pickup dh_install'ed units and targets
|
|
dh_systemd_enable
|
|
dh_systemd_start --no-restart-on-upgrade
|
|
|
|
override_dh_systemd_enable:
|
|
# systemd enable done as part of dh_installinit
|
|
|
|
override_dh_systemd_start:
|
|
# systemd start done as part of dh_installinit
|
|
|
|
override_dh_strip:
|
|
dh_strip -pceph-mds --dbg-package=ceph-mds-dbg
|
|
dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg
|
|
dh_strip -pceph-mgr --dbg-package=ceph-mgr-dbg
|
|
dh_strip -pceph-mon --dbg-package=ceph-mon-dbg
|
|
dh_strip -pceph-osd --dbg-package=ceph-osd-dbg
|
|
dh_strip -pceph-base --dbg-package=ceph-base-dbg
|
|
dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg
|
|
dh_strip -prbd-fuse --dbg-package=rbd-fuse-dbg
|
|
dh_strip -prbd-mirror --dbg-package=rbd-mirror-dbg
|
|
dh_strip -pceph-immutable-object-cache --dbg-package=ceph-immutable-object-cache-dbg
|
|
dh_strip -prbd-nbd --dbg-package=rbd-nbd-dbg
|
|
dh_strip -pceph-common --dbg-package=ceph-common-dbg
|
|
dh_strip -plibrados2 --dbg-package=librados2-dbg
|
|
dh_strip -plibradosstriper1 --dbg-package=libradosstriper1-dbg
|
|
dh_strip -plibrbd1 --dbg-package=librbd1-dbg
|
|
dh_strip -plibcephfs2 --dbg-package=libcephfs2-dbg
|
|
dh_strip -plibrgw2 --dbg-package=librgw2-dbg
|
|
dh_strip -pradosgw --dbg-package=radosgw-dbg
|
|
dh_strip -pceph-test --dbg-package=ceph-test-dbg
|
|
dh_strip -ppython-rados --dbg-package=python-rados-dbg
|
|
dh_strip -ppython3-rados --dbg-package=python3-rados-dbg
|
|
dh_strip -ppython-rbd --dbg-package=python-rbd-dbg
|
|
dh_strip -ppython3-rbd --dbg-package=python3-rbd-dbg
|
|
dh_strip -ppython-rgw --dbg-package=python-rgw-dbg
|
|
dh_strip -ppython3-rgw --dbg-package=python3-rgw-dbg
|
|
dh_strip -ppython-cephfs --dbg-package=python-cephfs-dbg
|
|
dh_strip -ppython3-cephfs --dbg-package=python3-cephfs-dbg
|
|
|
|
override_dh_shlibdeps:
|
|
dh_shlibdeps -a --exclude=erasure-code --exclude=rados-classes --exclude=compressor
|
|
|
|
override_dh_python2:
|
|
for binding in rados cephfs rbd rgw; do \
|
|
dh_python2 -p python-$$binding; \
|
|
done
|
|
dh_python2 -p ceph-common
|
|
dh_python2 -p ceph-base
|
|
dh_python2 -p ceph-osd
|
|
dh_python2 -p ceph-mgr
|
|
# batch-compile, and set up for delete, all the module files
|
|
dh_python2 -p ceph-mgr usr/lib/ceph/mgr
|
|
|
|
override_dh_python3:
|
|
for binding in rados cephfs rbd rgw; do \
|
|
dh_python3 -p python3-$$binding; \
|
|
done
|
|
dh_python3 -p python3-ceph-argparse
|
|
dh_python3 -p cephfs-shell
|
|
|
|
# do not run tests
|
|
override_dh_auto_test:
|
|
|
|
.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
|