File: rules

package info (click to toggle)
ceph 12.2.11+dfsg1-2.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 509,164 kB
  • sloc: cpp: 3,795,927; ansic: 1,077,639; python: 110,688; asm: 78,169; sh: 69,675; xml: 29,848; java: 20,525; makefile: 10,516; perl: 8,054; cs: 3,000; ada: 1,681; pascal: 1,573; php: 910; yacc: 472; ruby: 94; f90: 55; lisp: 14; sql: 13
file content (192 lines) | stat: -rwxr-xr-x 8,797 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#!/usr/bin/make -f
# -*- makefile -*-
#export DH_VERBOSE=1
export DESTDIR=$(CURDIR)/debian/tmp

# Set multiarch triplet
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

# Initialize empty flag variables and export them
export DEB_CFLAGS_MAINT_APPEND =
export DEB_CXXFLAGS_MAINT_APPEND =
export DEB_CPPFLAGS_MAINT_APPEND =

# Reduce size of debug symbols to fix FTBFS due to the
# 2GB/3GB address space limits on 32bit
DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
ifeq (32,$(DEB_HOST_ARCH_BITS))
  DEB_CFLAGS_MAINT_APPEND += -g1
  DEB_CXXFLAGS_MAINT_APPEND += -g1
endif

# minimise needless linking
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

# Enable hardening
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

export DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

export JAVA_HOME=/usr/lib/jvm/default-java
## Set JAVAC to prevent FTBFS due to incorrect use of 'gcj' if found (see "m4/ac_prog_javac.m4").
export JAVAC=javac

extraopts += -DWITH_OCF=ON
extraopts += -DWITH_DEBUG=ON
extraopts += -DWITH_CEPHFS_JAVA=ON
extraopts += -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib

# rocksdb is not packaged by anyone.  build it if we can.
extraopts += -DWITH_SYSTEM_ROCKSDB=OFF

# Build Python 3 bindings
extraopts += -DWITH_PYTHON3=ON

# Use system boost
extraopts += -DWITH_SYSTEM_BOOST=ON

# Not all architectures support libboost-context and libboost-coroutine
# Disabling boost-context also disables the RADOS GW Beast frontend
ifneq (,$(filter $(DEB_HOST_ARCH), i386 amd64 armel armhf arm64 mips mipsel powerpc ppc64el))
  extraopts += -DWITH_BOOST_CONTEXT=ON
else
  extraopts += -DWITH_BOOST_CONTEXT=OFF
endif

# Setup max parallel builds based on architecture
ifeq ($(DEB_HOST_ARCH), arm64)
  NUMJOBS=1
else ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  NUMJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
  NUMJOBS=2
endif

# Set _FILE_OFFSET_BITS=64 globally. While this is set by the build system
# through an automake variable, configure does not know about this and thus
# fails when testing xfs.h on 32bit systems.
DEB_CPPFLAGS_MAINT_APPEND += -D_FILE_OFFSET_BITS=64

# Build fix for mips/mipsel
# The first two variables work around a compiler bug which leads to virtual
# memory exhaustion while compiling the testsuite. See Debian bug #849657 and
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79030
ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel))
  DEB_CFLAGS_MAINT_APPEND += --param ggc-min-expand=5
  DEB_CXXFLAGS_MAINT_APPEND += --param ggc-min-expand=5
endif

%:
	dh $@ --buildsystem=cmake --with javahelper,python2,python3 --max-parallel=$(NUMJOBS)

override_dh_auto_configure:
	dh_auto_configure --buildsystem=cmake -- $(extraopts)

override_dh_install:
	# NOTE: ensure that any versioned erasure coding test code is dropped
	#       from the package install - package ships unversioned modules.
	rm -f $(DESTDIR)/usr/lib/*/ceph/erasure-code/libec_*.so.*
	find $(DESTDIR)/usr/lib/*/ceph/erasure-code -type l -delete || :
	# Remove RUNPATH from JNI libraries. I did not find a way to disable this
	# using the upstream build system. Pointers welcome.
	# The /usr/lib/*/ceph directory needs to be preserved to find libceph-common.
	chrpath --replace /usr/lib/$(DEB_HOST_MULTIARCH)/ceph $(DESTDIR)/usr/lib/*/libcephfs_jni.so.1.0.0
	dh_install

override_dh_installinit:
	dh_installinit -pceph-common --no-start --name=rbdmap
	# The /etc/init.d/ceph SysV init script is already installed by the upstream
	# build system.
	dh_installinit -pceph-base --no-start --name=ceph --only-scripts
	dh_installinit --no-start --remaining
	# install the systemd stuff manually since we have funny service names
	# and need to update the paths in all of the files post install
	# systemd:ceph-common
	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-common/lib/systemd/system
	install -m 0644 systemd/rbdmap.service debian/ceph-common/lib/systemd/system
	# systemd:ceph-base
	install -d -m0755 debian/ceph-base/lib/systemd/system
	install -m0644 systemd/ceph.target debian/ceph-common/lib/systemd/system
	# systemd:ceph-mon
	install -d -m0755 debian/ceph-mon/lib/systemd/system
	install -m0644 systemd/ceph-mon@.service debian/ceph-mon/lib/systemd/system
	sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mon/lib/systemd/system/ceph-mon@.service
	install -m0644 systemd/ceph-mon.target debian/ceph-mon/lib/systemd/system
	# systemd:ceph-mgr
	install -d m0755 debian/ceph-mgr/lib/systemd/system
	install -m0644 systemd/ceph-mgr@.service debian/ceph-mgr/lib/systemd/system
	sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mgr/lib/systemd/system/ceph-mgr@.service
	install -m0644 systemd/ceph-mgr.target debian/ceph-mgr/lib/systemd/system
	# systemd:ceph-osd
	install -d -m0755 debian/ceph-osd/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
	install -m0644 systemd/ceph-volume@.service debian/ceph-osd/lib/systemd/system
	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
	sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-volume@.service
	install -m0644 systemd/ceph-osd.target debian/ceph-osd/lib/systemd/system
	# systemd:ceph-mds
	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
	# systemd:radosgw
	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
	# disable SysV init file for systemd
	ln -s /dev/null debian/radosgw/lib/systemd/system/radosgw.service
	# systemd:rbd-mirror
	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
	# systemd:ceph-fuse
	install -d -m0755 debian/ceph-fuse/lib/systemd/system
	install -m0644 systemd/ceph-fuse@.service debian/ceph-fuse/lib/systemd/system
	sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-fuse/lib/systemd/system/ceph-fuse@.service
	install -m0644 systemd/ceph-fuse.target debian/ceph-fuse/lib/systemd/system

	# Ensure Debian/Ubuntu specific systemd units are NOT automatically enabled and started
	# Enable systemd targets only
	dh_systemd_enable -Xceph-mon.service -Xceph-osd.service -X ceph-mds.service
	# Start systemd targets only
	dh_systemd_start --no-restart-on-upgrade -Xceph-mon.service -Xceph-osd.service -X ceph-mds.service

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_makeshlibs:
	# exclude jni libraries in libcephfs-jni to avoid pointless ldconfig
	# calls in maintainer scripts; exclude private erasure-code plugins.
	dh_makeshlibs -V -X/usr/lib/jni -X/usr/lib/$(DEB_HOST_MULTIARCH)/ceph/erasure-code \
		-X/usr/lib/$(DEB_HOST_MULTIARCH)/ceph/compressor \
		-X/usr/lib/$(DEB_HOST_MULTIARCH)/rados-classes \

override_dh_auto_test:
	-dh_auto_test -v || cat src/test-suite.log

# can be removed once migrated to debhelper compat level 12 where --list-missing is
# the default
override_dh_missing:
	dh_missing --list-missing

override_dh_clean:
	# While these files look silly they are really part of the upstream source
	# tarball and should thus be kept until upstream fixes this.
	dh_clean --exclude=src/civetweb/examples/websocket_client/ssl/server.key.orig \
	         --exclude=src/civetweb/resources/cert/client.key.orig \
	         --exclude=src/civetweb/resources/cert/server.key.orig \
	         --exclude=src/erasure-code/jerasure/jerasure/Examples/makefile.orig \
	         --exclude=src/erasure-code/jerasure/jerasure/include/config.h.in~ \
	         --exclude=src/erasure-code/jerasure/jerasure/makefile.orig \
	         etc/sysctl/90-ceph-osd.conf

.PHONY: override_dh_auto_configure override_dh_installinit override_dh_makeshlibs override_dh_auto_test override_dh_missing