diff --git a/scripts/build-package-rpm.sh b/scripts/build-package-rpm.sh index ade22271dd42f3ca3066eb03511966026155d10f..5d079f05dd2cad89f918071bafb80960506aa96f 100755 --- a/scripts/build-package-rpm.sh +++ b/scripts/build-package-rpm.sh @@ -45,12 +45,22 @@ QT_MAJOR=5 QT_MINOR=15 QT_PATCH=2 +QT_MAJOR_MINOR=${QT_MAJOR}.${QT_MINOR} +QT_MAJOR_MINOR_PATCH=${QT_MAJOR}.${QT_MINOR}.${QT_PATCH} + +QT_TARBALL_URL=https://download.qt.io/archive/qt/$QT_MAJOR_MINOR/\ +$QT_MAJOR_MINOR_PATCH/single/qt-everywhere-src-$QT_MAJOR_MINOR_PATCH.tar.xz + +QT_TARBALL_SHA256="3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240" +QT_TARBALL_FILE_NAME=$(basename "$QT_TARBALL_URL") +CACHED_QT_TARBALL=/opt/ring-contrib/$QT_TARBALL_FILE_NAME + if [[ "${DISTRIBUTION:0:4}" == "rhel" \ || "${DISTRIBUTION:0:13}" == "opensuse-leap" ]]; then - RPM_PATH=/opt/cache-packaging/${DISTRIBUTION}/jami-libqt-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}-1.x86_64.rpm + RPM_PATH=/opt/cache-packaging/${DISTRIBUTION}/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.x86_64.rpm if [[ "${DISTRIBUTION:0:4}" == "rhel" ]]; then - RPM_PATH=/opt/cache-packaging/${DISTRIBUTION}/jami-libqt-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}-1.el8.x86_64.rpm + RPM_PATH=/opt/cache-packaging/${DISTRIBUTION}/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.el8.x86_64.rpm fi if [ ! -f "${RPM_PATH}" ]; then @@ -58,17 +68,19 @@ if [[ "${DISTRIBUTION:0:4}" == "rhel" \ cd /opt/qt-jami-build cp /opt/ring-project-ro/packaging/rules/rpm/jami-libqt.spec . - QT_TARBALL_CHECKSUM="3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240" - wget https://download.qt.io/archive/qt/${QT_MAJOR}.${QT_MINOR}/${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}/single/qt-everywhere-src-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}.tar.xz - - if ! echo -n ${QT_TARBALL_CHECKSUM} qt-everywhere-src-*.tar.xz | sha256sum -c - - then - echo "qt tarball checksum mismatch; quitting" - exit 1 + # Fetch and cache the tarball, if not already available. + if [ ! -f "$CACHED_QT_TARBALL" ]; then + wget "$QT_TARBALL_URL" + if ! echo -n ${QT_TARBALL_SHA256} "$QT_TARBALL_FILE_NAME" | sha256sum -c - + then + echo "qt tarball checksum mismatch; quitting" + exit 1 + fi + flock "$CACHED_QT_TARBALL" mv "$QT_TARBALL_FILE_NAME" "$CACHED_QT_TARBALL" fi - mv qt-everywhere-src-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}.tar.xz /root/rpmbuild/SOURCES/jami-qtlib_${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}.tar.xz - sed -i "s/RELEASE_VERSION/${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}/g" jami-libqt.spec + cp "$CACHED_QT_TARBALL" "/root/rpmbuild/SOURCES/jami-qtlib_$QT_MAJOR_MINOR_PATCH.tar.xz" + sed -i "s/RELEASE_VERSION/$QT_MAJOR_MINOR_PATCH/g" jami-libqt.spec rpmdev-bumpspec --comment="Automatic nightly release" \ --userstring="Jenkins <jami@lists.savoirfairelinux.net>" jami-libqt.spec @@ -76,13 +88,13 @@ if [[ "${DISTRIBUTION:0:4}" == "rhel" \ mkdir -p /opt/cache-packaging/${DISTRIBUTION}/ if [[ "${DISTRIBUTION:0:4}" == "rhel" ]]; then - cp /root/rpmbuild/RPMS/x86_64/jami-libqt-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}-1.el8.x86_64.rpm ${RPM_PATH} + cp "/root/rpmbuild/RPMS/x86_64/jami-libqt-$QT_MAJOR_MINOR_PATCH-1.el8.x86_64.rpm" "${RPM_PATH}" else - cp /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm ${RPM_PATH} + cp /root/rpmbuild/RPMS/x86_64/jami-libqt-*.rpm "${RPM_PATH}" fi fi - rpm --install ${RPM_PATH} - cp ${RPM_PATH} /opt/output + rpm --install "${RPM_PATH}" + cp "${RPM_PATH}" /opt/output cd /opt/ring-project fi diff --git a/scripts/make-packaging-target.py b/scripts/make-packaging-target.py index 4eba66a176067b21a67925aa04c129bef95c2c05..c8038dbfd51e8386605f1853a4fe884784d0e524 100755 --- a/scripts/make-packaging-target.py +++ b/scripts/make-packaging-target.py @@ -60,6 +60,7 @@ PACKAGE_%(distribution)s_DOCKER_RUN_COMMAND = docker run \\ -v $(CURDIR)/packages/%(distribution)s:/opt/output \\ -v /opt/cache-packaging:/opt/cache-packaging \\ -t $(DOCKER_EXTRA_ARGS) %(options)s \\ + -v /opt/ring-contrib:/opt/ring-contrib \\ $(PACKAGE_%(distribution)s_DOCKER_IMAGE_NAME) $(PACKAGE_%(distribution)s_DOCKER_IMAGE_FILE): docker/Dockerfile_%(docker_image)s