From 9d80bd2d989bb802b9c8e049679ad8b58b4b114f Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 5 Dec 2020 18:42:45 +0300 Subject: [PATCH] Build with jerasure, split some build scripts --- debian/changelog | 6 ++ debian/control | 4 +- debian/patched-qemu.Dockerfile | 49 ++++++++++++ debian/vitastor-buster.Dockerfile | 80 ------------------- ...ullseye.Dockerfile => vitastor.Dockerfile} | 52 +++++------- osd_rmw.cpp | 1 + rpm/build-tarball.sh | 2 +- rpm/qemu-el8.Dockerfile | 31 +++++++ rpm/qemu-kvm.spec.patch | 17 +++- rpm/vitastor-el7.Dockerfile | 5 +- rpm/vitastor-el7.spec | 7 +- rpm/vitastor-el8.Dockerfile | 32 ++------ rpm/vitastor-el8.spec | 7 +- 13 files changed, 141 insertions(+), 152 deletions(-) create mode 100644 debian/patched-qemu.Dockerfile delete mode 100644 debian/vitastor-buster.Dockerfile rename debian/{vitastor-bullseye.Dockerfile => vitastor.Dockerfile} (51%) create mode 100644 rpm/qemu-el8.Dockerfile diff --git a/debian/changelog b/debian/changelog index 7e5216a9..7fa40717 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +vitastor (0.5.1-1) unstable; urgency=medium + + * Add jerasure support + + -- Vitaliy Filippov Sat, 05 Dec 2020 17:02:26 +0300 + vitastor (0.5-1) unstable; urgency=medium * First packaging for Debian diff --git a/debian/control b/debian/control index 31f3728f..295391e2 100644 --- a/debian/control +++ b/debian/control @@ -2,14 +2,14 @@ Source: vitastor Section: admin Priority: optional Maintainer: Vitaliy Filippov -Build-Depends: debhelper, liburing-dev (>= 0.6), g++ (>= 8), libstdc++6 (>= 8), linux-libc-dev, libgoogle-perftools-dev +Build-Depends: debhelper, liburing-dev (>= 0.6), g++ (>= 8), libstdc++6 (>= 8), linux-libc-dev, libgoogle-perftools-dev, libjerasure-dev, libgf-complete-dev Standards-Version: 4.5.0 Homepage: https://vitastor.io/ Rules-Requires-Root: no Package: vitastor Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, fio (= ${dep:fio}), qemu (= ${dep:qemu}), nodejs (>= 12), node-sprintf-js, node-ws (>= 7) +Depends: ${shlibs:Depends}, ${misc:Depends}, fio (= ${dep:fio}), qemu (= ${dep:qemu}), nodejs (>= 12), node-sprintf-js, node-ws (>= 7), libjerasure2 Description: Vitastor, a fast software-defined clustered block storage Vitastor is a small, simple and fast clustered block storage (storage for VM drives), architecturally similar to Ceph which means strong consistency, primary-replication, diff --git a/debian/patched-qemu.Dockerfile b/debian/patched-qemu.Dockerfile new file mode 100644 index 00000000..6cdf8b7a --- /dev/null +++ b/debian/patched-qemu.Dockerfile @@ -0,0 +1,49 @@ +# Build patched QEMU for Debian Buster or Bullseye/Sid inside a container +# cd ..; podman build --build-arg REL=bullseye -v `pwd`/build:/root/build -f debian/patched-qemu.Dockerfile . + +ARG REL=bullseye + +FROM debian:$REL + +# again, it doesn't work otherwise +ARG REL=bullseye + +WORKDIR /root + +RUN if [ "$REL" = "buster" ]; then \ + echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list; \ + echo >> /etc/apt/preferences; \ + echo 'Package: *' >> /etc/apt/preferences; \ + echo 'Pin: release a=buster-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 qemu fio liburing1 liburing-dev libgoogle-perftools-dev devscripts +RUN apt-get -y build-dep qemu +RUN apt-get -y build-dep fio +RUN apt-get --download-only source qemu +RUN apt-get --download-only source fio + +ADD qemu-5.0-vitastor.patch qemu-5.1-vitastor.patch /root/vitastor/ +RUN set -e; \ + mkdir -p /root/build/qemu-$REL; \ + rm -rf /root/build/qemu-$REL/*; \ + cd /root/build/qemu-$REL; \ + dpkg-source -x /root/qemu*.dsc; \ + if [ -d /root/build/qemu-$REL/qemu-5.0 ]; then \ + cp /root/vitastor/qemu-5.0-vitastor.patch /root/build/qemu-$REL/qemu-5.0/debian/patches; \ + echo qemu-5.0-vitastor.patch >> /root/build/qemu-$REL/qemu-5.0/debian/patches/series; \ + else \ + cp /root/vitastor/qemu-5.1-vitastor.patch /root/build/qemu-$REL/qemu-*/debian/patches; \ + P=`ls -d /root/build/qemu-$REL/qemu-*/debian/patches`; \ + echo qemu-5.1-vitastor.patch >> $P/series; \ + fi; \ + cd /root/build/qemu-$REL/qemu-*/; \ + V=$(head -n1 debian/changelog | perl -pe 's/^.*\((.*?)(~bpo[\d\+]*)?\).*$/$1/')+vitastor1; \ + DEBFULLNAME="Vitaliy Filippov " dch -D $REL -v $V 'Plug Vitastor block driver'; \ + DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --jobs=auto -sa; \ + rm -rf /root/build/qemu-$REL/qemu-*/ diff --git a/debian/vitastor-buster.Dockerfile b/debian/vitastor-buster.Dockerfile deleted file mode 100644 index ab2b2bc8..00000000 --- a/debian/vitastor-buster.Dockerfile +++ /dev/null @@ -1,80 +0,0 @@ -# Build packages for Debian 10 inside a container -# cd ..; podman build -t vitastor-buster -v `pwd`/build:/root/build -f debian/vitastor-buster.Dockerfile . - -FROM debian:buster - -WORKDIR /root - -RUN echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list; \ - 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 - -RUN apt-get update -RUN apt-get -t buster-backports -y install qemu fio liburing1 liburing-dev libgoogle-perftools-dev devscripts -RUN apt-get -t buster-backports -y build-dep qemu -RUN apt-get -y build-dep fio -RUN apt-get -t buster-backports --download-only source qemu-kvm -RUN apt-get --download-only source fio - -ADD qemu-5.0-vitastor.patch qemu-5.1-vitastor.patch /root/vitastor/ -RUN set -e; \ - mkdir -p /root/build/qemu-buster; \ - rm -rf /root/build/qemu-buster/*; \ - cd /root/build/qemu-buster; \ - dpkg-source -x /root/qemu*.dsc; \ - if [ -d /root/build/qemu-buster/qemu-5.0 ]; then \ - cp /root/vitastor/qemu-5.0-vitastor.patch /root/build/qemu-buster/qemu-5.0/debian/patches; \ - echo qemu-5.0-vitastor.patch >> /root/build/qemu-buster/qemu-5.0/debian/patches/series; \ - else \ - cp /root/vitastor/qemu-5.1-vitastor.patch /root/build/qemu-buster/qemu-*/debian/patches; \ - echo qemu-5.1-vitastor.patch >> /root/build/qemu-buster/qemu-*/debian/patches/series; \ - fi; \ - cd /root/build/qemu-buster/qemu-*/; \ - V=$(head -n1 debian/changelog | perl -pe 's/^.*\((.*?)(~bpo[\d\+]*)\).*$/$1/')+vitastor1; \ - DEBFULLNAME="Vitaliy Filippov " dch -D buster -v $V 'Plug Vitastor block driver'; \ - DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --jobs=auto -sa; \ - rm -rf /root/build/qemu-buster/qemu-*/ - -RUN cd /root/build/qemu-buster && apt-get -y -t buster-backports install ./qemu-system-data*.deb ./qemu-system-common_*.deb ./qemu-system-x86_*.deb ./qemu_*.deb - -ADD . /root/vitastor -RUN set -e -x; \ - mkdir -p /root/fio-build/; \ - cd /root/fio-build/; \ - rm -rf /root/fio-build/*; \ - dpkg-source -x /root/fio*.dsc; \ - cd /root/build/qemu-buster/; \ - rm -rf qemu*/; \ - dpkg-source -x qemu*.dsc; \ - cd /root/build/qemu-buster/qemu*/; \ - debian/rules b/configure-stamp; \ - cd b/qemu; \ - make -j8 qapi; \ - mkdir -p /root/build/vitastor-buster; \ - rm -rf /root/build/vitastor-buster/*; \ - cd /root/build/vitastor-buster; \ - cp -r /root/vitastor vitastor-0.5; \ - ln -s /root/build/qemu-buster/qemu-*/ vitastor-0.5/qemu; \ - ln -s /root/fio-build/fio-*/ vitastor-0.5/fio; \ - cd vitastor-0.5; \ - FIO=$(head -n1 fio/debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \ - QEMU=$(head -n1 qemu/debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \ - sh copy-qemu-includes.sh; \ - sh copy-fio-includes.sh; \ - rm qemu fio; \ - mkdir -p a b debian/patches; \ - mv qemu-copy b/qemu; \ - mv fio-copy b/fio; \ - diff -NaurpbB a b > debian/patches/qemu-fio-headers.patch || true; \ - echo qemu-fio-headers.patch >> debian/patches/series; \ - rm -rf a b; \ - rm -rf /root/build/qemu-buster/qemu*/; \ - echo "dep:fio=$FIO" > debian/substvars; \ - echo "dep:qemu=$QEMU" >> debian/substvars; \ - cd /root/build/vitastor-buster; \ - tar --sort=name --mtime='2020-01-01' --owner=0 --group=0 --exclude=debian -cJf vitastor_0.5.orig.tar.xz vitastor-0.5; \ - cd vitastor-0.5; \ - V=$(head -n1 debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \ - DEBFULLNAME="Vitaliy Filippov " dch -D buster -v "$V""buster" "Rebuild for buster"; \ - DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --jobs=auto -sa; \ - rm -rf /root/build/vitastor-buster/vitastor-*/ diff --git a/debian/vitastor-bullseye.Dockerfile b/debian/vitastor.Dockerfile similarity index 51% rename from debian/vitastor-bullseye.Dockerfile rename to debian/vitastor.Dockerfile index fab99891..f21681de 100644 --- a/debian/vitastor-bullseye.Dockerfile +++ b/debian/vitastor.Dockerfile @@ -1,5 +1,5 @@ -# Build packages for Debian Bullseye/Sid inside a container -# cd ..; podman build -t vitastor-bullseye -v `pwd`/build:/root/build -f debian/vitastor-bullseye.Dockerfile . +# Build Vitastor packages for Debian Buster or Bullseye/Sid inside a container +# cd ..; podman build --build-arg REL=bullseye -v `pwd`/build:/root/build -f debian/vitastor.Dockerfile . ARG REL=bullseye @@ -10,8 +10,16 @@ ARG REL=bullseye WORKDIR /root -RUN 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 +RUN if [ "$REL" = "buster" ]; then \ + echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list; \ + echo >> /etc/apt/preferences; \ + echo 'Package: *' >> /etc/apt/preferences; \ + echo 'Pin: release a=buster-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 qemu fio liburing1 liburing-dev libgoogle-perftools-dev devscripts @@ -19,29 +27,7 @@ RUN apt-get -y build-dep qemu RUN apt-get -y build-dep fio RUN apt-get --download-only source qemu RUN apt-get --download-only source fio - -ADD qemu-5.0-vitastor.patch qemu-5.1-vitastor.patch /root/vitastor/ -RUN set -e; \ - mkdir -p /root/build/qemu-$REL; \ - rm -rf /root/build/qemu-$REL/*; \ - cd /root/build/qemu-$REL; \ - dpkg-source -x /root/qemu*.dsc; \ - if [ -d /root/build/qemu-$REL/qemu-5.0 ]; then \ - cp /root/vitastor/qemu-5.0-vitastor.patch /root/build/qemu-$REL/qemu-5.0/debian/patches; \ - echo qemu-5.0-vitastor.patch >> /root/build/qemu-$REL/qemu-5.0/debian/patches/series; \ - else \ - cp /root/vitastor/qemu-5.1-vitastor.patch /root/build/qemu-$REL/qemu-*/debian/patches; \ - P=`ls -d /root/build/qemu-$REL/qemu-*/debian/patches`; \ - echo qemu-5.1-vitastor.patch >> $P/series; \ - fi; \ - cd /root/build/qemu-$REL/qemu-*/; \ - V=$(head -n1 debian/changelog | perl -pe 's/^.*\((.*?)(~bpo[\d\+]*)?\).*$/$1/')+vitastor1; \ - echo ">>> VERSION: $V"; \ - DEBFULLNAME="Vitaliy Filippov " dch -D $REL -v $V 'Plug Vitastor block driver'; \ - DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --jobs=auto -sa; \ - rm -rf /root/build/qemu-$REL/qemu-*/ - -RUN cd /root/build/qemu-$REL && apt-get -y install ./qemu-system-data*.deb ./qemu-system-common_*.deb ./qemu-system-x86_*.deb ./qemu_*.deb +RUN apt-get -y install libjerasure-dev ADD . /root/vitastor RUN set -e -x; \ @@ -59,10 +45,10 @@ RUN set -e -x; \ mkdir -p /root/build/vitastor-$REL; \ rm -rf /root/build/vitastor-$REL/*; \ cd /root/build/vitastor-$REL; \ - cp -r /root/vitastor vitastor-0.5; \ - ln -s /root/build/qemu-$REL/qemu-*/ vitastor-0.5/qemu; \ - ln -s /root/fio-build/fio-*/ vitastor-0.5/fio; \ - cd vitastor-0.5; \ + cp -r /root/vitastor vitastor-0.5.1; \ + ln -s /root/build/qemu-$REL/qemu-*/ vitastor-0.5.1/qemu; \ + ln -s /root/fio-build/fio-*/ vitastor-0.5.1/fio; \ + cd vitastor-0.5.1; \ FIO=$(head -n1 fio/debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \ QEMU=$(head -n1 qemu/debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \ sh copy-qemu-includes.sh; \ @@ -78,8 +64,8 @@ RUN set -e -x; \ echo "dep:fio=$FIO" > debian/substvars; \ echo "dep:qemu=$QEMU" >> debian/substvars; \ cd /root/build/vitastor-$REL; \ - tar --sort=name --mtime='2020-01-01' --owner=0 --group=0 --exclude=debian -cJf vitastor_0.5.orig.tar.xz vitastor-0.5; \ - cd vitastor-0.5; \ + tar --sort=name --mtime='2020-01-01' --owner=0 --group=0 --exclude=debian -cJf vitastor_0.5.1.orig.tar.xz vitastor-0.5.1; \ + cd vitastor-0.5.1; \ V=$(head -n1 debian/changelog | perl -pe 's/^.*\((.*?)\).*$/$1/'); \ DEBFULLNAME="Vitaliy Filippov " dch -D $REL -v "$V""$REL" "Rebuild for $REL"; \ DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --jobs=auto -sa; \ diff --git a/osd_rmw.cpp b/osd_rmw.cpp index cb0bac98..8e3ef4a8 100644 --- a/osd_rmw.cpp +++ b/osd_rmw.cpp @@ -1,6 +1,7 @@ // Copyright (c) Vitaliy Filippov, 2019+ // License: VNPL-1.0 (see README.md for details) +#include #include #include #include diff --git a/rpm/build-tarball.sh b/rpm/build-tarball.sh index 33c4974c..d133f68c 100755 --- a/rpm/build-tarball.sh +++ b/rpm/build-tarball.sh @@ -48,4 +48,4 @@ FIO=`rpm -qi fio | perl -e 'while(<>) { /^Epoch[\s:]+(\S+)/ && print "$1:"; /^Ve QEMU=`rpm -qi qemu qemu-kvm | perl -e 'while(<>) { /^Epoch[\s:]+(\S+)/ && print "$1:"; /^Version[\s:]+(\S+)/ && print $1; /^Release[\s:]+(\S+)/ && print "-$1"; }'` perl -i -pe 's/(Requires:\s*fio)([^\n]+)?/$1 = '$FIO'/' $VITASTOR/rpm/vitastor-el$EL.spec perl -i -pe 's/(Requires:\s*qemu(?:-kvm)?)([^\n]+)?/$1 = '$QEMU'/' $VITASTOR/rpm/vitastor-el$EL.spec -tar --transform 's#^#vitastor-0.5/#' --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-0.5$(rpm --eval '%dist').tar.gz * +tar --transform 's#^#vitastor-0.5.1/#' --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-0.5.1$(rpm --eval '%dist').tar.gz * diff --git a/rpm/qemu-el8.Dockerfile b/rpm/qemu-el8.Dockerfile new file mode 100644 index 00000000..3449e0e4 --- /dev/null +++ b/rpm/qemu-el8.Dockerfile @@ -0,0 +1,31 @@ +# Build packages for CentOS 8 inside a container +# cd ..; podman build -t qemu-el8 -v `pwd`/build:/root/build -f rpm/qemu-el8.Dockerfile . + +FROM centos:8 + +WORKDIR /root + +RUN rm -f /etc/yum.repos.d/CentOS-Media.repo +RUN dnf -y install centos-release-advanced-virtualization epel-release dnf-plugins-core rpm-build +RUN rm -rf /var/lib/dnf/*; dnf download --disablerepo='*' --enablerepo='centos-advanced-virtualization-source' --source qemu-kvm +RUN rpm --nomd5 -i qemu*.src.rpm +RUN cd ~/rpmbuild/SPECS && dnf builddep -y --enablerepo=PowerTools --spec qemu-kvm.spec + +ADD qemu-*-vitastor.patch /root/vitastor/ + +RUN set -e; \ + mkdir -p /root/build/qemu-el8; \ + rm -rf /root/build/qemu-el8/*; \ + rpm --nomd5 -i /root/qemu*.src.rpm; \ + cd ~/rpmbuild/SPECS; \ + PN=$(grep ^Patch qemu-kvm.spec | tail -n1 | perl -pe 's/Patch(\d+).*/$1/'); \ + csplit qemu-kvm.spec "/^Patch$PN/"; \ + cat xx00 > qemu-kvm.spec; \ + head -n 1 xx01 >> qemu-kvm.spec; \ + echo "Patch$((PN+1)): qemu-4.2-vitastor.patch" >> qemu-kvm.spec; \ + tail -n +2 xx01 >> qemu-kvm.spec; \ + perl -i -pe 's/(^Release:\s*\d+)/$1.vitastor/' qemu-kvm.spec; \ + cp /root/vitastor/qemu-4.2-vitastor.patch ~/rpmbuild/SOURCES; \ + rpmbuild --nocheck -ba qemu-kvm.spec; \ + cp ~/rpmbuild/RPMS/*/*qemu* /root/build/qemu-el8/; \ + cp ~/rpmbuild/SRPMS/*qemu* /root/build/qemu-el8/ diff --git a/rpm/qemu-kvm.spec.patch b/rpm/qemu-kvm.spec.patch index cf134e5d..667af78e 100644 --- a/rpm/qemu-kvm.spec.patch +++ b/rpm/qemu-kvm.spec.patch @@ -1,5 +1,5 @@ ---- qemu-kvm.spec 2020-11-07 22:48:46.312124920 +0000 -+++ qemu-kvm.spec 2020-11-07 23:04:06.246772766 +0000 +--- qemu-kvm.spec 2020-12-05 13:13:54.388623517 +0000 ++++ qemu-kvm.spec 2020-12-05 13:13:58.728696598 +0000 @@ -67,7 +67,7 @@ Obsoletes: %1-rhev Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm @@ -9,12 +9,21 @@ # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped Epoch: 15 License: GPLv2 and GPLv2+ and CC-BY -@@ -825,6 +825,8 @@ Patch331: kvm-Drop-bogus-IPv6-messages.p +@@ -825,6 +825,7 @@ Patch331: kvm-Drop-bogus-IPv6-messages.p Patch333: kvm-virtiofsd-Whitelist-fchmod.patch # For bz#1883869 - virtiofsd core dump in KATA Container [rhel-8.2.1.z] Patch334: kvm-virtiofsd-avoid-proc-self-fd-tempdir.patch -+# Vitastor +Patch335: qemu-4.2-vitastor.patch BuildRequires: wget BuildRequires: rpm-build +@@ -1192,9 +1193,7 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" + %endif + --python=%{__python3} \ + --target-list="%{buildarch}" \ +- --block-drv-rw-whitelist=%{block_drivers_list} \ + --audio-drv-list= \ +- --block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \ + --with-coroutine=ucontext \ + --tls-priority=NORMAL \ + --disable-bluez \ diff --git a/rpm/vitastor-el7.Dockerfile b/rpm/vitastor-el7.Dockerfile index d9a36466..b95f836d 100644 --- a/rpm/vitastor-el7.Dockerfile +++ b/rpm/vitastor-el7.Dockerfile @@ -6,9 +6,10 @@ FROM centos:7 WORKDIR /root +RUN rm -f /etc/yum.repos.d/CentOS-Media.repo RUN yum -y --enablerepo=extras install centos-release-scl epel-release yum-utils rpm-build RUN yum -y install https://vitastor.io/rpms/centos/7/vitastor-release-1.0-1.el7.noarch.rpm -RUN yum -y install devtoolset-9-gcc-c++ devtoolset-9-libatomic-devel gperftools-devel qemu-kvm fio rh-nodejs12 +RUN yum -y install devtoolset-9-gcc-c++ devtoolset-9-libatomic-devel gperftools-devel qemu-kvm fio rh-nodejs12 jerasure-devel gf-complete-devel RUN yumdownloader --disablerepo=centos-sclo-rh --source qemu-kvm RUN yumdownloader --disablerepo=centos-sclo-rh --source fio RUN rpm --nomd5 -i qemu*.src.rpm @@ -36,7 +37,7 @@ ADD . /root/vitastor RUN set -e; \ cd /root/vitastor/rpm; \ sh build-tarball.sh; \ - cp /root/vitastor-0.5.el7.tar.gz ~/rpmbuild/SOURCES; \ + cp /root/vitastor-0.5.1.el7.tar.gz ~/rpmbuild/SOURCES; \ cp vitastor-el7.spec ~/rpmbuild/SPECS/vitastor.spec; \ cd ~/rpmbuild/SPECS/; \ rpmbuild -ba vitastor.spec; \ diff --git a/rpm/vitastor-el7.spec b/rpm/vitastor-el7.spec index ce8ba3f8..5f6da804 100644 --- a/rpm/vitastor-el7.spec +++ b/rpm/vitastor-el7.spec @@ -1,22 +1,25 @@ Name: vitastor -Version: 0.5 +Version: 0.5.1 Release: 2%{?dist} Summary: Vitastor, a fast software-defined clustered block storage License: Vitastor Network Public License 1.0 URL: https://vitastor.io/ -Source0: vitastor-0.5.el7.tar.gz +Source0: vitastor-0.5.1.el7.tar.gz BuildRequires: liburing-devel >= 0.6 BuildRequires: gperftools-devel BuildRequires: devtoolset-9-gcc-c++ BuildRequires: rh-nodejs12 BuildRequires: rh-nodejs12-npm +BuildRequires: jerasure-devel +BuildRequires: gf-complete-devel Requires: fio = 3.7-1.el7 Requires: qemu-kvm = 2.0.0-1.el7.6 Requires: rh-nodejs12 Requires: rh-nodejs12-npm Requires: liburing >= 0.6 +Requires: libJerasure2 %description Vitastor is a small, simple and fast clustered block storage (storage for VM drives), diff --git a/rpm/vitastor-el8.Dockerfile b/rpm/vitastor-el8.Dockerfile index 95440dc6..9b415a3f 100644 --- a/rpm/vitastor-el8.Dockerfile +++ b/rpm/vitastor-el8.Dockerfile @@ -7,13 +7,14 @@ WORKDIR /root RUN rm -f /etc/yum.repos.d/CentOS-Media.repo RUN dnf -y install centos-release-advanced-virtualization epel-release dnf-plugins-core -RUN dnf --enablerepo='centos-advanced-virtualization' -y install gcc-toolset-9 gcc-toolset-9-gcc-c++ gperftools-devel qemu-kvm fio nodejs rpm-build -RUN rm -rf /var/lib/dnf/*; dnf download --disablerepo='*' --enablerepo='centos-advanced-virtualization-source' --source qemu-kvm +RUN yum -y install https://vitastor.io/rpms/centos/8/vitastor-release-1.0-1.el8.noarch.rpm +RUN dnf --enablerepo='centos-advanced-virtualization' -y install gcc-toolset-9 gcc-toolset-9-gcc-c++ gperftools-devel qemu-kvm fio nodejs rpm-build jerasure-devel gf-complete-devel +RUN rm -rf /var/lib/dnf/*; dnf download --disablerepo='*' --enablerepo='vitastor' --source qemu-kvm RUN dnf download --source fio RUN rpm --nomd5 -i qemu*.src.rpm RUN rpm --nomd5 -i fio*.src.rpm -RUN cd ~/rpmbuild/SPECS && dnf builddep -y --enablerepo='*' --spec qemu-kvm.spec -RUN cd ~/rpmbuild/SPECS && dnf builddep -y --enablerepo='*' --spec fio.spec +RUN cd ~/rpmbuild/SPECS && dnf builddep -y --enablerepo=PowerTools --spec qemu-kvm.spec +RUN cd ~/rpmbuild/SPECS && dnf builddep -y --enablerepo=PowerTools --spec fio.spec ADD https://vitastor.io/rpms/liburing-el7/liburing-0.7-2.el7.src.rpm /root @@ -29,33 +30,12 @@ RUN set -e; \ RUN rpm -i `ls /root/build/liburing-el7/liburing-*.x86_64.rpm | grep -v debug` -ADD qemu-*-vitastor.patch /root/vitastor/ - -RUN set -e; \ - mkdir -p /root/build/qemu-el8; \ - rm -rf /root/build/qemu-el8/*; \ - rpm --nomd5 -i /root/qemu*.src.rpm; \ - cd ~/rpmbuild/SPECS; \ - PN=$(grep ^Patch qemu-kvm.spec | tail -n1 | perl -pe 's/Patch(\d+).*/$1/'); \ - csplit qemu-kvm.spec "/^Patch$PN/"; \ - cat xx00 > qemu-kvm.spec; \ - head -n 1 xx01 >> qemu-kvm.spec; \ - echo "Patch$((PN+1)): qemu-4.2-vitastor.patch" >> qemu-kvm.spec; \ - tail -n +2 xx01 >> qemu-kvm.spec; \ - perl -i -pe 's/(^Release:\s*\d+)/$1.vitastor/' qemu-kvm.spec; \ - cp /root/vitastor/qemu-4.2-vitastor.patch ~/rpmbuild/SOURCES; \ - rpmbuild --nocheck -ba qemu-kvm.spec; \ - cp ~/rpmbuild/RPMS/*/*qemu* /root/build/qemu-el8/; \ - cp ~/rpmbuild/SRPMS/*qemu* /root/build/qemu-el8/ - -RUN cd /root/build/qemu-el8; dnf -y install `ls qemu*.rpm | grep -vP 'debug|guest|tests|src'` - ADD . /root/vitastor RUN set -e; \ cd /root/vitastor/rpm; \ sh build-tarball.sh; \ - cp /root/vitastor-0.5.el8.tar.gz ~/rpmbuild/SOURCES; \ + cp /root/vitastor-0.5.1.el8.tar.gz ~/rpmbuild/SOURCES; \ cp vitastor-el8.spec ~/rpmbuild/SPECS/vitastor.spec; \ cd ~/rpmbuild/SPECS/; \ rpmbuild -ba vitastor.spec; \ diff --git a/rpm/vitastor-el8.spec b/rpm/vitastor-el8.spec index dd63fb5d..4038a549 100644 --- a/rpm/vitastor-el8.spec +++ b/rpm/vitastor-el8.spec @@ -1,20 +1,23 @@ Name: vitastor -Version: 0.5 +Version: 0.5.1 Release: 2%{?dist} Summary: Vitastor, a fast software-defined clustered block storage License: Vitastor Network Public License 1.0 URL: https://vitastor.io/ -Source0: vitastor-0.5.el8.tar.gz +Source0: vitastor-0.5.1.el8.tar.gz BuildRequires: liburing-devel >= 0.6 BuildRequires: gperftools-devel BuildRequires: gcc-toolset-9-gcc-c++ BuildRequires: nodejs >= 10 +BuildRequires: jerasure-devel +BuildRequires: gf-complete-devel Requires: fio = 3.7-3.el8 Requires: qemu-kvm = 4.2.0-29.el8.6 Requires: nodejs >= 10 Requires: liburing >= 0.6 +Requires: libJerasure2 %description Vitastor is a small, simple and fast clustered block storage (storage for VM drives),