185 lines
9.3 KiB
Makefile
Executable File
185 lines
9.3 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
|
|
# this is so awful
|
|
PAREN = )
|
|
|
|
# Read the first line of debian/changelog just once
|
|
CHANGELOG_LINE := $(shell head -n1 debian/changelog)
|
|
|
|
# Extract versions
|
|
BEEGFS_VERSION := $(shell echo "$(CHANGELOG_LINE)" | awk -F'[()]' '{print $$2}')
|
|
BEEGFS_MAJOR := $(shell echo "$(CHANGELOG_LINE)" | awk -F'[()]' '{split($$2,a,"."); print a[1]}')
|
|
|
|
# Print them when make runs
|
|
$(info BEEGFS_VERSION = $(BEEGFS_VERSION))
|
|
$(info BEEGFS_MAJOR = $(BEEGFS_MAJOR))
|
|
|
|
BEEGFS_NVFS=1
|
|
DPKG_EXPORT_BUILDFLAGS = 1
|
|
include /usr/share/dpkg/default.mk
|
|
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
endif
|
|
|
|
%:
|
|
dh $@ --parallel --with dkms
|
|
|
|
override_dh_auto_build:
|
|
make -j$(NUMJOBS) common-all daemons utils
|
|
|
|
# no build-runnable tests exist (yet)
|
|
override_dh_auto_test:
|
|
|
|
# package is split
|
|
override_dh_auto_install:
|
|
|
|
override_dh_install:
|
|
@# libbeeggfs-ib
|
|
install -D common/build/libbeegfs_ib.so \
|
|
debian/libbeegfs-ib/opt/beegfs/lib/libbeegfs_ib.so
|
|
@# daemons
|
|
make -j$(NUMJOBS) DESTDIR=debian/beegfs-meta meta-install
|
|
make -j$(NUMJOBS) DESTDIR=debian/beegfs-storage storage-install
|
|
make -j$(NUMJOBS) DESTDIR=debian/beegfs-mon mon-install
|
|
@# setup scripts
|
|
install -D storage/build/dist/sbin/beegfs-setup-storage \
|
|
debian/beegfs-storage/opt/beegfs/sbin/beegfs-setup-storage
|
|
install -D meta/build/dist/sbin/beegfs-setup-meta \
|
|
debian/beegfs-meta/opt/beegfs/sbin/beegfs-setup-meta
|
|
@# daemon configs and defaults
|
|
install -D -m644 storage/build/dist/etc/default/beegfs-storage \
|
|
debian/beegfs-storage.default
|
|
install -D -m644 storage/build/dist/etc/beegfs-storage.conf \
|
|
debian/beegfs-storage/etc/beegfs/beegfs-storage.conf
|
|
install -D -m644 meta/build/dist/etc/default/beegfs-meta \
|
|
debian/beegfs-meta.default
|
|
install -D -m644 meta/build/dist/etc/beegfs-meta.conf \
|
|
debian/beegfs-meta/etc/beegfs/beegfs-meta.conf
|
|
install -D -m644 mon/build/dist/etc/default/beegfs-mon \
|
|
debian/beegfs-mon.default
|
|
install -D -m644 mon/build/dist/etc/beegfs-mon.conf \
|
|
debian/beegfs-mon/etc/beegfs/beegfs-mon.conf
|
|
install -D -m600 mon/build/dist/etc/beegfs-mon.auth \
|
|
debian/beegfs-mon/etc/beegfs/beegfs-mon.auth
|
|
@# mon-grafana
|
|
mkdir -p debian/beegfs-mon-grafana/opt/beegfs/scripts/grafana
|
|
cp -a mon/scripts/grafana/* debian/beegfs-mon-grafana/opt/beegfs/scripts/grafana
|
|
@# utils
|
|
make -j$(NUMJOBS) DESTDIR=debian/beegfs-utils fsck-install event_listener-install
|
|
mkdir -p debian/beegfs-utils/sbin
|
|
cp -a utils/scripts/fsck.beegfs debian/beegfs-utils/sbin
|
|
mkdir -p debian/beegfs-utils/usr/bin
|
|
mkdir -p debian/beegfs-utils/opt/beegfs/lib
|
|
mkdir -p debian/beegfs-utils/usr/sbin
|
|
ln -s /opt/beegfs/sbin/beegfs-fsck debian/beegfs-utils/usr/sbin/beegfs-fsck
|
|
@# utils-dev
|
|
mkdir -p debian/beegfs-utils-dev/usr/include
|
|
cp -a event_listener/include/* debian/beegfs-utils-dev/usr/include/
|
|
mkdir -p debian/beegfs-utils-dev/usr/share/doc/beegfs-utils-dev/examples/beegfs-event-listener/source
|
|
cp -a event_listener/source/beegfs-event-listener.cpp \
|
|
debian/beegfs-utils-dev/usr/share/doc/beegfs-utils-dev/examples/beegfs-event-listener/source
|
|
mkdir -p debian/beegfs-utils-dev/usr/share/doc/beegfs-utils-dev/examples/beegfs-event-listener/build
|
|
cp -a event_listener/build/Makefile \
|
|
debian/beegfs-utils-dev/usr/share/doc/beegfs-utils-dev/examples/beegfs-event-listener/build/Makefile
|
|
@# beeond
|
|
mkdir -p debian/beeond/opt/beegfs/lib
|
|
mkdir -p debian/beeond/opt/beegfs/sbin
|
|
mkdir -p debian/beeond/usr/bin
|
|
install -D beeond/source/beeond debian/beeond/opt/beegfs/sbin/beeond
|
|
install -D beeond/source/beeond-cp debian/beeond/opt/beegfs/sbin/beeond-cp
|
|
cp beeond/scripts/lib/* debian/beeond/opt/beegfs/lib/
|
|
ln -s /opt/beegfs/sbin/beeond debian/beeond/usr/bin/beeond
|
|
ln -s /opt/beegfs/sbin/beeond-cp debian/beeond/usr/bin/beeond-cp
|
|
@# client
|
|
make -j$(NUMJOBS) -C client_module/build \
|
|
RELEASE_PATH=../../debian/beegfs-client/opt/beegfs/src/client \
|
|
BEEGFS_VERSION=$(BEEGFS_VERSION) prepare_release
|
|
# for compat package
|
|
mkdir -p debian/beegfs-client-compat/opt/beegfs/src/client
|
|
cp -a debian/beegfs-client/opt/beegfs/src/client/client_module_$(BEEGFS_MAJOR) \
|
|
debian/beegfs-client-compat/opt/beegfs/src/client/client_compat_module_$(BEEGFS_MAJOR)
|
|
# set the compat fstype
|
|
echo beegfs-$(BEEGFS_MAJOR) > \
|
|
debian/beegfs-client-compat/opt/beegfs/src/client/client_compat_module_$(BEEGFS_MAJOR)/build/beegfs.fstype
|
|
install -D client_module/build/dist/sbin/beegfs-client.init \
|
|
debian/beegfs-client/opt/beegfs/sbin/beegfs-client
|
|
mkdir -p debian/beegfs-client/etc/init.d
|
|
ln -s /opt/beegfs/sbin/beegfs-client debian/beegfs-client/etc/init.d/beegfs-client
|
|
install -D -m644 client_module/build/dist/etc/default/beegfs-client \
|
|
debian/beegfs-client.default
|
|
install -D -m644 client_module/build/dist/etc/beegfs-client.conf \
|
|
debian/beegfs-client/etc/beegfs/beegfs-client.conf
|
|
install -D -m644 client_module/build/dist/etc/beegfs-client-autobuild.conf \
|
|
debian/beegfs-client/etc/beegfs/beegfs-client-autobuild.conf
|
|
install -D -m644 client_module/build/dist/etc/beegfs-mounts.conf \
|
|
debian/beegfs-client/etc/beegfs/beegfs-mounts.conf
|
|
install -D -m644 client_module/scripts/etc/beegfs/lib/init-multi-mode.beegfs-client \
|
|
debian/beegfs-client/etc/beegfs/lib/init-multi-mode.beegfs-client
|
|
install -D client_module/build/dist/sbin/mount.beegfs \
|
|
debian/beegfs-client/sbin/mount.beegfs
|
|
install -D client_module/build/dist/sbin/beegfs-setup-client \
|
|
debian/beegfs-client/opt/beegfs/sbin/beegfs-setup-client
|
|
install -D client_module/build/dist/etc/beegfs-client-mount-hook.example \
|
|
debian/beegfs-client/etc/beegfs/beegfs-client-mount-hook.example
|
|
@# client-dkms
|
|
mkdir -p debian/beegfs-client-dkms/usr/src/beegfs-$(BEEGFS_VERSION)
|
|
cp -r client_module/build debian/beegfs-client-dkms/usr/src/beegfs-$(BEEGFS_VERSION)
|
|
cp -r client_module/source debian/beegfs-client-dkms/usr/src/beegfs-$(BEEGFS_VERSION)
|
|
cp -r client_module/include debian/beegfs-client-dkms/usr/src/beegfs-$(BEEGFS_VERSION)
|
|
rm -Rf debian/beegfs-client-dkms/usr/src/beegfs-$(BEEGFS_VERSION)/build/dist
|
|
sed -e 's/__VERSION__/$(BEEGFS_VERSION)/g' -e 's/__NAME__/beegfs/g' -e 's/__MODNAME__/beegfs/g' \
|
|
< client_module/dkms.conf.in \
|
|
> debian/beegfs-client-dkms.dkms
|
|
install -D -m644 client_module/build/dist/etc/beegfs-client.conf \
|
|
debian/beegfs-client-dkms/etc/beegfs/beegfs-client.conf
|
|
install -D -m644 client_module/build/dist/etc/beegfs-client-build.mk \
|
|
debian/beegfs-client-dkms/etc/beegfs/beegfs-client-build.mk
|
|
install -D client_module/build/dist/sbin/mount.beegfs \
|
|
debian/beegfs-client-dkms/sbin/mount.beegfs
|
|
@# client-dev
|
|
mkdir -p debian/beegfs-client-dev/usr/include
|
|
cp -a client_devel/include/beegfs debian/beegfs-client-dev/usr/include/
|
|
cp -a client_module/include/uapi/* debian/beegfs-client-dev/usr/include/beegfs/
|
|
sed -i '~s~uapi/beegfs_client~beegfs/beegfs_client~g' debian/beegfs-client-dev/usr/include/beegfs/*.h
|
|
mkdir -p debian/beegfs-client-dev/usr/share/doc/beegfs-client-dev/examples/
|
|
cp -a client_devel/build/dist/usr/share/doc/beegfs-client-devel/examples/* \
|
|
debian/beegfs-client-dev/usr/share/doc/beegfs-client-dev/examples/
|
|
|
|
# Before dbgsym packages, package maintainers had to manually create their -dbg packages listed
|
|
# in the debian/control file. --dbgsym-migration=package-relation This option is used to migrate
|
|
# from a manual "-dbg" package (created with --dbg-package) to an automatic generated debug symbol package.
|
|
override_dh_strip:
|
|
dh_strip -pbeegfs-meta --dbgsym-migration='beegfs-meta-dbg (<< $(BEEGFS_VERSION)~)'
|
|
dh_strip -pbeegfs-mon --dbgsym-migration='beegfs-mon-dbg (<< $(BEEGFS_VERSION)~)'
|
|
dh_strip -pbeegfs-storage --dbgsym-migration='beegfs-storage-dbg (<< $(BEEGFS_VERSION)~)'
|
|
dh_strip -plibbeegfs-ib --dbgsym-migration='libbeegfs-ib-dbg (<< $(BEEGFS_VERSION)~)'
|
|
|
|
# avoid auto-start because default config is not useful
|
|
override_dh_installinit:
|
|
for component in storage meta mon; do \
|
|
cp $$component/build/dist/usr/lib/systemd/system/beegfs-$$component.service debian/; \
|
|
install -D -m644 $$component/build/dist/usr/lib/systemd/system/beegfs-$$component@.service \
|
|
debian/beegfs-$$component/lib/systemd/system/beegfs-$$component@.service; \
|
|
dh_installsystemd -p beegfs-$$component --no-enable --name=beegfs-$$component@ beegfs-$$component@.service; \
|
|
done
|
|
cp client_module/build/dist/usr/lib/systemd/system/beegfs-client.service debian/
|
|
cp client_module/build/dist/usr/lib/systemd/system/beegfs-client@.service debian/
|
|
dh_installsystemd
|
|
#
|
|
dh_installinit -pbeegfs-mon --no-stop-on-upgrade --no-start -- start 90 2 3 4 5 . stop 90 0 1 6 .
|
|
dh_installinit -pbeegfs-storage --no-stop-on-upgrade --no-start -- start 99 2 3 4 5 . stop 99 0 1 6 .
|
|
dh_installinit -pbeegfs-meta --no-stop-on-upgrade --no-start -- start 90 2 3 4 5 . stop 90 0 1 6 .
|
|
dh_installinit -pbeegfs-client --no-stop-on-upgrade --no-start -- start 99 2 3 4 5 . stop 99 0 1 6 .
|
|
dh_installinit -pbeegfs-client-compat --no-stop-on-upgrade --no-start -- start 99 2 3 4 5 . stop 99 0 1 6 .
|
|
|
|
# Debhelper 12.3 and dwz on Debian 10 error out with "dwz: Too few files for multifile optimization."
|
|
# We need to skip dh_dwz only for the beegfs-utils package.
|
|
# This can be removed once we stop supporting Debian 10 (Buster). The issue is fixed in Debian 11 (Bullseye).
|
|
override_dh_dwz:
|
|
for pkg in $(dh_listpackages); do \
|
|
if [ "$$pkg" != "beegfs-utils" ]; then \
|
|
dh_dwz -p $$pkg; \
|
|
fi \
|
|
done
|