vitastor/debian/vitastor.Dockerfile

57 lines
2.5 KiB
Plaintext
Raw Normal View History

# Build Vitastor packages for Debian Buster or Bullseye/Sid inside a container
# cd ..; podman build --build-arg REL=bullseye -v `pwd`/packages:/root/packages -f debian/vitastor.Dockerfile .
2021-11-13 21:10:19 +03:00
ARG REL=
FROM debian:$REL
2021-11-13 21:10:19 +03:00
ARG REL=
WORKDIR /root
RUN if [ "$REL" = "buster" -o "$REL" = "bullseye" ]; then \
echo "deb http://deb.debian.org/debian $REL-backports main" >> /etc/apt/sources.list; \
echo >> /etc/apt/preferences; \
echo 'Package: *' >> /etc/apt/preferences; \
echo "Pin: release a=$REL-backports" >> /etc/apt/preferences; \
echo 'Pin-Priority: 500' >> /etc/apt/preferences; \
fi; \
grep '^deb ' /etc/apt/sources.list | perl -pe 's/^deb/deb-src/' >> /etc/apt/sources.list; \
echo 'APT::Install-Recommends false;' >> /etc/apt/apt.conf; \
echo 'APT::Install-Suggests false;' >> /etc/apt/apt.conf
RUN apt-get update
RUN apt-get -y install fio liburing1 liburing-dev libgoogle-perftools-dev devscripts
RUN apt-get -y build-dep fio
RUN apt-get --download-only source fio
RUN apt-get update && apt-get -y install libjerasure-dev cmake libibverbs-dev libisal-dev
ADD . /root/vitastor
2020-11-10 23:40:56 +03:00
RUN set -e -x; \
2022-06-04 01:40:59 +03:00
[ -e /usr/lib/x86_64-linux-gnu/pkgconfig/libisal.pc ] || cp /root/vitastor/debian/libisal.pc /usr/lib/x86_64-linux-gnu/pkgconfig; \
mkdir -p /root/fio-build/; \
cd /root/fio-build/; \
rm -rf /root/fio-build/*; \
dpkg-source -x /root/fio*.dsc; \
mkdir -p /root/packages/vitastor-$REL; \
rm -rf /root/packages/vitastor-$REL/*; \
cd /root/packages/vitastor-$REL; \
Release 0.8.7 This release includes a bunch of important bugfixes for erasure-coded setups with disabled immediate_commit. After these fixes, "test_heal" OSD killing test now passes fine with EC: - Fix cluster write stalls with "Error while doing flush on OSD xx: -16 (Device or resource busy)" in OSD logs possible in EC setups with disabled immediate_commit by selectively syncing nonsynced objects on STABILIZE/ROLLBACK (https://github.com/vitalif/vitastor/issues/51) - Fix other EC + disabled immediate_commit problems: - Fix "opcode=5 retval=-2" errors happening on SYNC retries - Fix non-working "pagination" during PG dirty object flushing - Fix write operations not continued correctly after dirty object flushing - Fix incorrect parity read-modify-write calculation when writing into a lost chunk - Fix OSDs losing left_on_dead PG state of non-clean PGs and thus not removing junk data in the cluster - Fix a small memory leak caused by bad indexing of EC recovery matrices - Fix a rare use-after-free in cluster_client caused by a reenterability issue - Fix vitastor-cli create command syntax in the CSI driver - Allow to start OSDs without local store for tests - Fix memory allocation error in disk_tool_meta for non-standard metadata block sizes - Fix delete operations received before loading pool metadata crashing OSDs with "null pointer exception" - Improve "theoretical performance" Russian documentation New features: - Implement online configuration update for some parameters. Documentation is coming soon :)
2023-04-11 02:11:57 +03:00
cp -r /root/vitastor vitastor-0.8.7; \
cd vitastor-0.8.7; \
ln -s /root/fio-build/fio-*/ ./fio; \
2020-11-10 23:40:56 +03:00
FIO=$(head -n1 fio/debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \
ls /usr/include/linux/raw.h || cp ./debian/raw.h /usr/include/linux/raw.h; \
sh copy-fio-includes.sh; \
rm fio; \
2020-11-10 23:40:56 +03:00
mkdir -p a b debian/patches; \
mv fio-copy b/fio; \
diff -NaurpbB a b > debian/patches/fio-headers.patch || true; \
echo fio-headers.patch >> debian/patches/series; \
2020-11-10 23:40:56 +03:00
rm -rf a b; \
2021-11-14 22:48:30 +03:00
echo "dep:fio=$FIO" > debian/fio_version; \
cd /root/packages/vitastor-$REL; \
Release 0.8.7 This release includes a bunch of important bugfixes for erasure-coded setups with disabled immediate_commit. After these fixes, "test_heal" OSD killing test now passes fine with EC: - Fix cluster write stalls with "Error while doing flush on OSD xx: -16 (Device or resource busy)" in OSD logs possible in EC setups with disabled immediate_commit by selectively syncing nonsynced objects on STABILIZE/ROLLBACK (https://github.com/vitalif/vitastor/issues/51) - Fix other EC + disabled immediate_commit problems: - Fix "opcode=5 retval=-2" errors happening on SYNC retries - Fix non-working "pagination" during PG dirty object flushing - Fix write operations not continued correctly after dirty object flushing - Fix incorrect parity read-modify-write calculation when writing into a lost chunk - Fix OSDs losing left_on_dead PG state of non-clean PGs and thus not removing junk data in the cluster - Fix a small memory leak caused by bad indexing of EC recovery matrices - Fix a rare use-after-free in cluster_client caused by a reenterability issue - Fix vitastor-cli create command syntax in the CSI driver - Allow to start OSDs without local store for tests - Fix memory allocation error in disk_tool_meta for non-standard metadata block sizes - Fix delete operations received before loading pool metadata crashing OSDs with "null pointer exception" - Improve "theoretical performance" Russian documentation New features: - Implement online configuration update for some parameters. Documentation is coming soon :)
2023-04-11 02:11:57 +03:00
tar --sort=name --mtime='2020-01-01' --owner=0 --group=0 --exclude=debian -cJf vitastor_0.8.7.orig.tar.xz vitastor-0.8.7; \
cd vitastor-0.8.7; \
2020-11-10 23:40:56 +03:00
V=$(head -n1 debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \
DEBFULLNAME="Vitaliy Filippov <vitalif@yourcmc.ru>" dch -D $REL -v "$V""$REL" "Rebuild for $REL"; \
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --jobs=auto -sa; \
rm -rf /root/packages/vitastor-$REL/vitastor-*/