diff --git a/rpm/build-tarball.sh b/rpm/build-tarball.sh index 1cf44b34..a5a1c470 100755 --- a/rpm/build-tarball.sh +++ b/rpm/build-tarball.sh @@ -7,22 +7,24 @@ set -e VITASTOR=$(dirname $0) VITASTOR=$(realpath "$VITASTOR/..") -EL=$(rpm --eval '%dist') -if [ "$EL" = ".el8" ]; then +REL=$(rpm --eval '%dist') +REL=${REL##.} +if [ "$REL" = "el8" ]; then # CentOS 8 . /opt/rh/gcc-toolset-9/enable -elif [ "$EL" = ".el7" ]; then +elif [ "$REL" = "el7" ]; then # CentOS 7 . /opt/rh/devtoolset-9/enable fi cd ~/rpmbuild/SPECS rpmbuild -bp fio.spec cd $VITASTOR -VER=$(grep ^Version: rpm/vitastor-el7.spec | awk '{print $2}') +VER=$(grep ^Version: rpm/vitastor-$REL.spec | awk '{print $2}') +rm -rf fio ln -s ~/rpmbuild/BUILD/fio*/ fio sh copy-fio-includes.sh rm fio mv fio-copy fio FIO=`rpm -qi fio | 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 -tar --transform "s#^#vitastor-$VER/#" --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-$VER$(rpm --eval '%dist').tar.gz * +perl -i -pe 's/(Requires:\s*fio)([^\n]+)?/$1 = '$FIO'/' $VITASTOR/rpm/vitastor-$REL.spec +tar --transform "s#^#vitastor-$VER/#" --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-$VER.$REL.tar.gz $(ls | grep -v packages) diff --git a/rpm/vitastor-build.sh b/rpm/vitastor-build.sh new file mode 100755 index 00000000..867e400d --- /dev/null +++ b/rpm/vitastor-build.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -e -x +REL=$(rpm --eval '%dist') +REL=${REL##.} +cd /root/vitastor/rpm +./build-tarball.sh +VER=$(grep ^Version: vitastor-$REL.spec | awk '{print $2}') +cp /root/vitastor-$VER.$REL.tar.gz ~/rpmbuild/SOURCES +cp vitastor-$REL.spec ~/rpmbuild/SPECS/vitastor.spec +cd ~/rpmbuild/SPECS/ +rpmbuild -ba vitastor.spec +mkdir -p /root/vitastor/packages/vitastor-$REL +rm -rf /root/vitastor/packages/vitastor-$REL/* +cp ~/rpmbuild/RPMS/*/*vitastor* /root/vitastor/packages/vitastor-$REL/ +cp ~/rpmbuild/SRPMS/vitastor* /root/vitastor/packages/vitastor-$REL/ diff --git a/rpm/vitastor-el7.Dockerfile b/rpm/vitastor-el7.Dockerfile index f7358b7b..22582ae2 100644 --- a/rpm/vitastor-el7.Dockerfile +++ b/rpm/vitastor-el7.Dockerfile @@ -1,5 +1,8 @@ # Build packages for CentOS 7 inside a container -# cd ..; podman build -t vitastor-el7 -v `pwd`/packages:/root/packages -f rpm/vitastor-el7.Dockerfile . +# cd .. +# docker build -t vitastor-buildenv:el7 -f rpm/vitastor-el7.Dockerfile . +# docker run --rm -v ./:/root/vitastor vitastor-buildenv:el7 /root/vitastor/rpm/vitastor-build.sh + # localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 FROM centos:7 @@ -7,7 +10,9 @@ FROM centos:7 WORKDIR /root RUN rm -f /etc/yum.repos.d/CentOS-Media.repo +RUN sed -i 's/^mirrorlist=/#mirrorlist=/; s!#baseurl=http://mirror.centos.org/centos/\$releasever!baseurl=http://vault.centos.org/7.9.2009!' /etc/yum.repos.d/*.repo RUN yum -y --enablerepo=extras install centos-release-scl epel-release yum-utils rpm-build +RUN perl -i -pe 's!mirrorlist=!#mirrorlist=!s; s!#\s*baseurl=http://mirror.centos.org!baseurl=http://vault.centos.org!' /etc/yum.repos.d/CentOS-SCLo-scl*.repo 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 gcc make cmake gperftools-devel \ fio rh-nodejs12 jerasure-devel libisa-l-devel gf-complete-devel rdma-core-devel libnl3-devel @@ -30,18 +35,3 @@ RUN set -e; \ cp ~/rpmbuild/SRPMS/liburing* /root/packages/liburing-el7/ RUN rpm -i `ls /root/packages/liburing-el7/liburing-*.x86_64.rpm | grep -v debug` - -ADD . /root/vitastor - -RUN set -e; \ - cd /root/vitastor/rpm; \ - sh build-tarball.sh; \ - VER=$(grep ^Version: vitastor-el7.spec | awk '{print $2}'); \ - cp /root/vitastor-$VER.el7.tar.gz ~/rpmbuild/SOURCES; \ - cp vitastor-el7.spec ~/rpmbuild/SPECS/vitastor.spec; \ - cd ~/rpmbuild/SPECS/; \ - rpmbuild -ba vitastor.spec; \ - mkdir -p /root/packages/vitastor-el7; \ - rm -rf /root/packages/vitastor-el7/*; \ - cp ~/rpmbuild/RPMS/*/*vitastor* /root/packages/vitastor-el7/; \ - cp ~/rpmbuild/SRPMS/vitastor* /root/packages/vitastor-el7/ diff --git a/rpm/vitastor-el7.spec b/rpm/vitastor-el7.spec index ea94b916..e0ff3177 100644 --- a/rpm/vitastor-el7.spec +++ b/rpm/vitastor-el7.spec @@ -82,7 +82,7 @@ Vitastor library headers for development. Summary: Vitastor - fio drivers Group: Development/Libraries Requires: vitastor-client = %{version}-%{release} -Requires: fio = 3.7-1.el7 +Requires: fio = 3.7-2.el7 %description -n vitastor-fio diff --git a/rpm/vitastor-el8.Dockerfile b/rpm/vitastor-el8.Dockerfile index 017c9313..b08e60f1 100644 --- a/rpm/vitastor-el8.Dockerfile +++ b/rpm/vitastor-el8.Dockerfile @@ -1,5 +1,7 @@ # Build packages for CentOS 8 inside a container -# cd ..; podman build -t vitastor-el8 -v `pwd`/packages:/root/packages -f rpm/vitastor-el8.Dockerfile . +# cd .. +# docker build -t vitastor-buildenv:el8 -f rpm/vitastor-el8.Dockerfile . +# docker run --rm -v ./:/root/vitastor vitastor-buildenv:el8 /root/vitastor/rpm/vitastor-build.sh FROM centos:8 @@ -29,18 +31,3 @@ RUN set -e; \ cp ~/rpmbuild/SRPMS/liburing* /root/packages/liburing-el8/ RUN rpm -i `ls /root/packages/liburing-el8/liburing-*.x86_64.rpm | grep -v debug` - -ADD . /root/vitastor - -RUN set -e; \ - cd /root/vitastor/rpm; \ - sh build-tarball.sh; \ - VER=$(grep ^Version: vitastor-el8.spec | awk '{print $2}'); \ - cp /root/vitastor-$VER.el8.tar.gz ~/rpmbuild/SOURCES; \ - cp vitastor-el8.spec ~/rpmbuild/SPECS/vitastor.spec; \ - cd ~/rpmbuild/SPECS/; \ - rpmbuild -ba vitastor.spec; \ - mkdir -p /root/packages/vitastor-el8; \ - rm -rf /root/packages/vitastor-el8/*; \ - cp ~/rpmbuild/RPMS/*/*vitastor* /root/packages/vitastor-el8/; \ - cp ~/rpmbuild/SRPMS/vitastor* /root/packages/vitastor-el8/ diff --git a/rpm/vitastor-el8.spec b/rpm/vitastor-el8.spec index 3933afa7..a88c1568 100644 --- a/rpm/vitastor-el8.spec +++ b/rpm/vitastor-el8.spec @@ -80,7 +80,7 @@ Vitastor library headers for development. Summary: Vitastor - fio drivers Group: Development/Libraries Requires: vitastor-client = %{version}-%{release} -Requires: fio = 3.7-3.el8 +Requires: fio = 3.19-3.el8 %description -n vitastor-fio diff --git a/rpm/vitastor-el9.Dockerfile b/rpm/vitastor-el9.Dockerfile index 7106ded5..59ed6bf8 100644 --- a/rpm/vitastor-el9.Dockerfile +++ b/rpm/vitastor-el9.Dockerfile @@ -1,5 +1,7 @@ # Build packages for AlmaLinux 9 inside a container -# cd ..; podman build -t vitastor-el9 -v `pwd`/packages:/root/packages -f rpm/vitastor-el9.Dockerfile . +# cd .. +# docker build -t vitastor-buildenv:el9 -f rpm/vitastor-el9.Dockerfile . +# docker run --rm -v ./:/root/vitastor vitastor-buildenv:el9 /root/vitastor/rpm/vitastor-build.sh FROM almalinux:9 @@ -12,18 +14,3 @@ RUN dnf -y install gcc-c++ gperftools-devel fio nodejs rpm-build jerasure-devel RUN dnf download --source fio RUN rpm --nomd5 -i fio*.src.rpm RUN cd ~/rpmbuild/SPECS && dnf builddep -y --spec fio.spec - -ADD . /root/vitastor - -RUN set -e; \ - cd /root/vitastor/rpm; \ - sh build-tarball.sh; \ - VER=$(grep ^Version: vitastor-el9.spec | awk '{print $2}'); \ - cp /root/vitastor-$VER.el9.tar.gz ~/rpmbuild/SOURCES; \ - cp vitastor-el9.spec ~/rpmbuild/SPECS/vitastor.spec; \ - cd ~/rpmbuild/SPECS/; \ - rpmbuild -ba vitastor.spec; \ - mkdir -p /root/packages/vitastor-el9; \ - rm -rf /root/packages/vitastor-el9/*; \ - cp ~/rpmbuild/RPMS/*/*vitastor* /root/packages/vitastor-el9/; \ - cp ~/rpmbuild/SRPMS/vitastor* /root/packages/vitastor-el9/