ceph/debian/rules
Loic Dachary 35004a628b udev: always populate /dev/disk/by-parttypeuuid
ceph-disk activate-all walks /dev/disk/by-parttypeuuid at boot time. It
is not necessary when udev fires ADD event for each partition and
95-ceph-osd.rules gets a chance to activate a ceph disk or journal.

There are various reasons why udev ADD events may not be fired at
boot (for instance Debian Jessi 8.5 never does it and CentOS 7.2 seems
to be racy in that regard when a LVM root is being used).

Populating /dev/disk/by-parttypeuuid fixes ceph-disk activate-all that
would not work without it. And it guarantees disks are activated at boot
time regardless of wether udev fires ADD events at the right time (or at
all).

The new udev file is a partial resurection of the
60-ceph-partuuid-workaround-rules that was removed by
9f77244b8e. It is given a name that
reflects its new purpose.

Fixes http://tracker.ceph.com/issues/16351

Signed-off-by: Loic Dachary <loic@dachary.org>
2016-06-23 09:37:05 +02:00

214 lines
8.0 KiB
Makefile
Executable File

#!/usr/bin/make -f
# -*- makefile -*-
export DH_VERBOSE=1
export DESTDIR=$(CURDIR)/debian/tmp
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
MAKEFLAGS += -j$(NUMJOBS)
endif
export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
# Recommended snippet for Autoconf 2.52 or later
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
confflags += --build $(DEB_HOST_GNU_TYPE)
else
confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif
export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
extraopts += --with-ocf --with-nss
extraopts += --with-debug
extraopts += --enable-cephfs-java
# rocksdb is not packaged by anyone. build it if we can.
extraopts += --with-librocksdb-static=check
ifeq ($(DEB_HOST_ARCH), armel)
# armel supports ARMv4t or above instructions sets.
# libatomic-ops is only usable with Ceph for ARMv6 or above.
extraopts += --without-libatomic-ops
endif
configure: configure-stamp
configure-stamp:
dh_testdir
./autogen.sh
./configure --prefix=/usr --localstatedir=/var \
--sysconfdir=/etc --libexecdir=/usr/lib $(extraopts) $(confflags) \
$(CEPH_EXTRA_CONFIGURE_ARGS)
touch $@
build-arch: build
build-indep: build
build: build-stamp
build-stamp: configure-stamp
dh_testdir
$(MAKE)
cp src/init-ceph debian/ceph-base.ceph.init
cp src/init-radosgw debian/radosgw.init
cp src/logrotate.conf debian/ceph.logrotate
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
[ ! -f Makefile ] || $(MAKE) distclean
rm -f aclocal.m4 compile config.sub config.guess depcomp install-sh \
ltmain.sh missing
rm -f configure Makefile.in man/Makefile.in src/Makefile.in
rm -f src/acconfig.h.in
rm -f debian/ceph-base.ceph.init debian/radosgw.init debian/ceph.logrotate debian/radosgw.logrotate
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) DESTDIR=$(DESTDIR) install
install -D -m 644 udev/50-rbd.rules $(DESTDIR)/lib/udev/rules.d/50-rbd.rules
install -D -m 644 udev/95-ceph-osd.rules $(DESTDIR)/lib/udev/rules.d/95-ceph-osd.rules
install -D -m 644 udev/60-ceph-by-parttypeuuid.rules $(DESTDIR)/lib/udev/rules.d/60-ceph-by-parttypeuuid.rules
install -D -m 644 src/etc-rbdmap $(DESTDIR)/etc/ceph/rbdmap
install -D -m 755 src/init-rbdmap $(DESTDIR)/etc/init.d/rbdmap
# Add here commands to install the package into debian/testpack.
# Build architecture-independent files here.
binary-indep: build install
dh_testdir
dh_testroot
jh_installlibs -v -i
jh_depends -i
dh_installchangelogs -i
dh_installdocs -i --all ChangeLog
dh_installexamples -i
dh_install -i --sourcedir=$(DESTDIR) --list-missing
dh_installman -i
dh_lintian -i
dh_link -i
dh_compress -i
dh_fixperms -i
dh_python2 -i
dh_installdeb -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs -a
dh_installdocs -a --all ChangeLog
dh_installexamples -a
dh_install -a --sourcedir=$(DESTDIR) --list-missing
install -d -m0755 debian/ceph-base/etc/logrotate.d
install -m0644 debian/ceph.logrotate debian/ceph-base/etc/logrotate.d
# dh_installinit is only set up to handle one upstart script
# per package, so do this ourselves
install -d -m0755 debian/ceph-base/etc/init
install -m0644 src/upstart/ceph-all.conf debian/ceph-base/etc/init
install -m0644 src/upstart/ceph-create-keys.conf debian/ceph-base/etc/init
install -d -m0755 debian/ceph-osd/etc/init
install -m0644 src/upstart/ceph-osd*.conf debian/ceph-osd/etc/init
install -m0644 src/upstart/ceph-disk.conf debian/ceph-osd/etc/init
install -d -m0755 debian/ceph-mon/etc/init
install -m0644 src/upstart/ceph-mon*.conf debian/ceph-mon/etc/init
install -d -m0755 debian/ceph-common/etc/init
install -m0644 src/upstart/rbdmap.conf debian/ceph-common/etc/init
install -d -m0755 debian/ceph-mds/etc/init
install -m0644 src/upstart/ceph-mds*.conf debian/ceph-mds/etc/init
install -d -m0755 debian/radosgw/etc/init
install -m0644 src/upstart/radosgw*.conf debian/radosgw/etc/init
install -d -m0755 debian/rbd-mirror/etc/init
install -m0644 src/upstart/ceph-rbd-mirror*.conf debian/rbd-mirror/etc/init
# install the systemd stuff manually since we have funny service names
install -d -m0755 debian/ceph-common/lib/systemd/system
install -m0644 systemd/ceph.target debian/ceph-common/lib/systemd/system
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
install -d -m0755 debian/ceph-base/lib/systemd/system
install -d -m0755 debian/ceph-mon/lib/systemd/system
install -d -m0755 debian/ceph-osd/lib/systemd/system
install -m0644 systemd/ceph-mon@.service debian/ceph-mon/lib/systemd/system
install -m0644 systemd/ceph-create-keys@.service debian/ceph-base/lib/systemd/system
install -m0644 systemd/ceph-osd@.service debian/ceph-osd/lib/systemd/system
install -m0644 systemd/ceph-disk@.service debian/ceph-osd/lib/systemd/system
sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mon/lib/systemd/system/ceph-mon@.service
sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-base/lib/systemd/system/ceph-create-keys@.service
sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-osd@.service
sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-disk@.service
install -m0644 systemd/ceph-mon.target debian/ceph-mon/lib/systemd/system
install -m0644 systemd/ceph-osd.target debian/ceph-osd/lib/systemd/system
install -d -m0755 debian/ceph-mds/lib/systemd/system
install -m0644 systemd/ceph-mds@.service debian/ceph-mds/lib/systemd/system
sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mds/lib/systemd/system/ceph-mds@.service
install -m0644 systemd/ceph-mds.target debian/ceph-mds/lib/systemd/system
install -d -m0755 debian/radosgw/lib/systemd/system
install -m0644 systemd/ceph-radosgw@.service debian/radosgw/lib/systemd/system
sed -i s./etc/sysconfig/./etc/default/.g debian/radosgw/lib/systemd/system/ceph-radosgw@.service
install -m0644 systemd/ceph-radosgw.target debian/radosgw/lib/systemd/system
install -d -m0755 debian/rbd-mirror/lib/systemd/system
install -m0644 systemd/ceph-rbd-mirror@.service debian/rbd-mirror/lib/systemd/system
sed -i s./etc/sysconfig/./etc/default/.g debian/rbd-mirror/lib/systemd/system/ceph-rbd-mirror@.service
install -m0644 systemd/ceph-rbd-mirror.target debian/rbd-mirror/lib/systemd/system
dh_systemd_enable
dh_installinit -p ceph-base --name ceph --no-start
dh_installinit -p radosgw --no-start
dh_systemd_start --no-restart-on-upgrade
dh_installman -a
dh_lintian -a
dh_link -a
dh_strip -pceph-mds --dbg-package=ceph-mds-dbg
dh_strip -pceph-mon --dbg-package=ceph-mon-dbg
dh_strip -pceph-osd --dbg-package=ceph-osd-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 -prbd-nbd --dbg-package=rbd-nbd-dbg
dh_strip -pceph-common --dbg-package=ceph-common-dbg
dh_strip -pceph-fs-common --dbg-package=ceph-fs-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 -plibcephfs1 --dbg-package=libcephfs1-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_compress -a
dh_fixperms -a
dh_makeshlibs -a
dh_python2 -a
dh_installdeb -a
dh_shlibdeps -a --exclude=erasure-code --exclude=rados-classes --exclude=compressor
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure