diff --git a/README.md b/README.md index ff99f61ff..7d530784e 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A set of scripts that generate a set of Dockerfiles that generate a set of Docke ## Prerequisites -Building on all these platforms brings some complexity, so be sure you’ve got the prerequisites set up. Packages build using `docker`, so you’ll need that. In addition, you’ll need to generate a GitHub personal access token to allow scripts to call GitHub APIs on your behalf. +Building on all these platforms brings some complexity, so be sure you’ve got the prerequisites set up. Packages build using `docker` , so you’ll need that. In addition, you’ll need to generate a GitHub personal access token to allow scripts to call GitHub APIs on your behalf. ### Docker @@ -18,7 +18,7 @@ If you’re on OS X, this dependency presently means you also need `docker-machi 2. Install VirtualBox from [here](https://www.virtualbox.org/wiki/Downloads) 3. `docker-machine create --driver virtualbox default` -After this, `docker` commands will work so long as you’ve run `eval "$(docker-machine env default)"` in the window you’re using. The [Docker Mac beta](https://blog.docker.com/2016/03/docker-for-mac-windows-beta/) will simplify this _greatly_ (no explicit need for `docker-machine`, no need for VirtualBox). +After this, `docker` commands will work so long as you’ve run `eval "$(docker-machine env default)"` in the window you’re using. The [Docker Mac beta](https://blog.docker.com/2016/03/docker-for-mac-windows-beta/) will simplify this _greatly_ (no explicit need for `docker-machine` , no need for VirtualBox). ### GitHub Authentication @@ -36,19 +36,19 @@ Unless you have a reason to change the Dockerfiles, just use the images hosted o To build all packages, run the `build_packages` script from the project root. Output will be put in OS/release-specific subdirectories of a `packages` directory in the project root. `build_packages` expects two arguments: a project name and build type. -The project name must be one of: `citus`, `enterprise`, or `rebalancer` +The project name must be one of: `citus` , `enterprise` , or `rebalancer` -The build type can be `release`, `nightly`, or any valid git reference. `release` builds the latest release tag (which must be signed by a key known to GitHub). `nightly` builds the latest commit from the “main” branch for the specified project. Any other value is interpreted by what it means to git… tags, branches, and commit identifiers are all accepted. +The build type can be `release` , `nightly` , or any valid git reference. `release` builds the latest release tag (which must be signed by a key known to GitHub). `nightly` builds the latest commit from the “main” branch for the specified project. Any other value is interpreted by what it means to git… tags, branches, and commit identifiers are all accepted. By default, `build_packages` builds on _all_ supported operating systems. Edit `os-list.csv` if you wish to build for fewer. ### Updating Dockerfiles -`update_dockerfiles` generates a new set of Dockerfiles. This repository has automated builds configured, so if you need to change the Docker images, run `update_dockerfiles`, commit the resulting Dockerfile changes, and push. +`update_dockerfiles` generates a new set of Dockerfiles. This repository has automated builds configured, so if you need to change the Docker images, run `update_dockerfiles` , commit the resulting Dockerfile changes, and push. ### Updating Docker Images -Before building the packages yourself you should run `./pull_images`, so that you +Before building the packages yourself you should run `./pull_images` , so that you get the current upstream layers. This can save some time when building the packages. `update_images` will build Docker images for all operating systems specified in `os-list.csv` using the files in the `dockerfiles` directory. This is handy for testing changes to our Docker images. diff --git a/build_packages b/build_packages index 471cb2085..1f0b9c8c8 100755 --- a/build_packages +++ b/build_packages @@ -4,7 +4,7 @@ set -euo pipefail IFS=$'\n\t' -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +topdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" packagesdir=${topdir}/packages buildfilesdir=${topdir}/buildfiles badusage=64 @@ -34,7 +34,7 @@ nprocs="${3:-1}" declare args while read -r line; do - IFS=',' read -r os release <<< "$line" + IFS=',' read -r os release <<<"$line" if [ -z "${release}" ]; then outputdir="${packagesdir}/${os}" @@ -69,8 +69,8 @@ while read -r line; do # redhat variants need to build each PostgreSQL version separately IFS=',' for pgversion in ${pgversions}; do - if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && \ - [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then + if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && + [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then # CentOS and OracleLinux 6 doesn't have pg13 packages yet # so we dont't have package builder docker images yet. # So skip building distro packages for them. diff --git a/ci/push_images b/ci/push_images index a439322a6..8dde78d47 100755 --- a/ci/push_images +++ b/ci/push_images @@ -5,16 +5,16 @@ set -euo pipefail IFS=$'\n\t' pgversions='10 11 12 13 14' -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.." +topdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/.." dockerfiles_dir="${topdir}/dockerfiles" badusage=64 nprocs="${1:-1}" -if [[ ${CURRENT_BRANCH} != "develop" ]] ; then +if [[ ${CURRENT_BRANCH} != "develop" ]]; then echo "PR is not merged to develop, not pushing to DockerHub" - exit 0; + exit 0 fi echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USER_NAME}" --password-stdin @@ -22,7 +22,7 @@ echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USER_NAME}" --passwo declare args while read -r line; do - IFS=',' read -r os release <<< "$line" + IFS=',' read -r os release <<<"$line" if [[ "${os}" = 'debian' ]] || [[ "${os}" = 'ubuntu' ]]; then tag="${os}-${release}-all" @@ -31,8 +31,8 @@ while read -r line; do # redhat variants need an image for each PostgreSQL version IFS=' ' for pgversion in ${pgversions}; do - if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && \ - [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then + if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && + [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then # CentOS and OracleLinux 6 doesn't have pg13 packages yet. # So skip building docker images for them. continue @@ -51,5 +51,3 @@ while read -r line; do done <"${topdir}/os-list.csv" echo -e "${args}" | xargs -t -L1 -P "${nprocs}" docker - - diff --git a/dockerfiles/centos-7-pg10/Dockerfile b/dockerfiles/centos-7-pg10/Dockerfile index 037cc9cd1..e207f2029 100644 --- a/dockerfiles/centos-7-pg10/Dockerfile +++ b/dockerfiles/centos-7-pg10/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-7-pg10/scripts/fetch_and_build_rpm b/dockerfiles/centos-7-pg10/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-7-pg10/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-7-pg10/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-7-pg11/Dockerfile b/dockerfiles/centos-7-pg11/Dockerfile index 46e50c328..6c9cafb35 100644 --- a/dockerfiles/centos-7-pg11/Dockerfile +++ b/dockerfiles/centos-7-pg11/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-7-pg11/scripts/fetch_and_build_rpm b/dockerfiles/centos-7-pg11/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-7-pg11/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-7-pg11/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-7-pg12/Dockerfile b/dockerfiles/centos-7-pg12/Dockerfile index b4d6bb1d5..7d9f03e2d 100644 --- a/dockerfiles/centos-7-pg12/Dockerfile +++ b/dockerfiles/centos-7-pg12/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-7-pg12/scripts/fetch_and_build_rpm b/dockerfiles/centos-7-pg12/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-7-pg12/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-7-pg12/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-7-pg13/Dockerfile b/dockerfiles/centos-7-pg13/Dockerfile index b032bf025..3f6312a98 100644 --- a/dockerfiles/centos-7-pg13/Dockerfile +++ b/dockerfiles/centos-7-pg13/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-7-pg13/scripts/fetch_and_build_rpm b/dockerfiles/centos-7-pg13/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-7-pg13/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-7-pg13/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-7-pg14/Dockerfile b/dockerfiles/centos-7-pg14/Dockerfile index 5a7793858..8ac251e26 100644 --- a/dockerfiles/centos-7-pg14/Dockerfile +++ b/dockerfiles/centos-7-pg14/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-7-pg14/scripts/fetch_and_build_rpm b/dockerfiles/centos-7-pg14/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100644 --- a/dockerfiles/centos-7-pg14/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-7-pg14/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-8-pg10/Dockerfile b/dockerfiles/centos-8-pg10/Dockerfile index 5418aad6c..1d85f3ff5 100644 --- a/dockerfiles/centos-8-pg10/Dockerfile +++ b/dockerfiles/centos-8-pg10/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-8-pg10/scripts/fetch_and_build_rpm b/dockerfiles/centos-8-pg10/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-8-pg10/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-8-pg10/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-8-pg11/Dockerfile b/dockerfiles/centos-8-pg11/Dockerfile index 51054102d..e11a2c9c8 100644 --- a/dockerfiles/centos-8-pg11/Dockerfile +++ b/dockerfiles/centos-8-pg11/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-8-pg11/scripts/fetch_and_build_rpm b/dockerfiles/centos-8-pg11/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-8-pg11/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-8-pg11/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-8-pg12/Dockerfile b/dockerfiles/centos-8-pg12/Dockerfile index 733742611..e90ec6bc8 100644 --- a/dockerfiles/centos-8-pg12/Dockerfile +++ b/dockerfiles/centos-8-pg12/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-8-pg12/scripts/fetch_and_build_rpm b/dockerfiles/centos-8-pg12/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-8-pg12/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-8-pg12/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-8-pg13/Dockerfile b/dockerfiles/centos-8-pg13/Dockerfile index b3e5bdb96..25392e60a 100644 --- a/dockerfiles/centos-8-pg13/Dockerfile +++ b/dockerfiles/centos-8-pg13/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-8-pg13/scripts/fetch_and_build_rpm b/dockerfiles/centos-8-pg13/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/centos-8-pg13/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-8-pg13/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/centos-8-pg14/Dockerfile b/dockerfiles/centos-8-pg14/Dockerfile index 2f79318ee..1fc10dc85 100644 --- a/dockerfiles/centos-8-pg14/Dockerfile +++ b/dockerfiles/centos-8-pg14/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ centos != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/centos-8-pg14/scripts/fetch_and_build_rpm b/dockerfiles/centos-8-pg14/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100644 --- a/dockerfiles/centos-8-pg14/scripts/fetch_and_build_rpm +++ b/dockerfiles/centos-8-pg14/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/debian-bullseye-all/make_pg_buildext_parallel.patch b/dockerfiles/debian-bullseye-all/make_pg_buildext_parallel.patch index 0e070948e..6382e8f83 100644 --- a/dockerfiles/debian-bullseye-all/make_pg_buildext_parallel.patch +++ b/dockerfiles/debian-bullseye-all/make_pg_buildext_parallel.patch @@ -6,12 +6,12 @@ package=`echo $opt | sed -e "s:%v:$1:g"` + procs="$(nproc)" + mjobs="$(expr $procs + 1)" - + mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" - make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? + make -j${mjobs} -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? } - + clean() { diff --git a/dockerfiles/debian-bullseye-all/scripts/fetch_and_build_deb b/dockerfiles/debian-bullseye-all/scripts/fetch_and_build_deb index c43dac43f..378cc7320 100644 --- a/dockerfiles/debian-bullseye-all/scripts/fetch_and_build_deb +++ b/dockerfiles/debian-bullseye-all/scripts/fetch_and_build_deb @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_deb build_type build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -65,7 +65,6 @@ versioning="${versioning:-simple}" pg_release_versions="${release_versions:-${releasepg}}" pg_nightly_versions="${nightly_versions:-${nightlypg}}" - echo "Postgres versions:" echo "Release Versions: ${pg_release_versions}" echo "Nightly Versions: ${pg_nightly_versions}" @@ -75,7 +74,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc export NAME NAME=$(determine_name) @@ -87,63 +86,63 @@ cp -R /buildfiles/debian "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - releasetag="${releasetag%.citus}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - - echo "${pg_release_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - timestamp=$(date +'%Y%m%d') - - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packageversion="${nextversion}.citus~${packagesuffix}" - export CONF_EXTRA_VERSION="+${packagesuffix}" - - echo "${pg_nightly_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + releasetag="${releasetag%.citus}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + + echo "${pg_release_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + timestamp=$(date +'%Y%m%d') + + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packageversion="${nextversion}.citus~${packagesuffix}" + export CONF_EXTRA_VERSION="+${packagesuffix}" + + echo "${pg_nightly_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" packagepath="${builddir}/${packageversion}" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 @@ -158,27 +157,26 @@ cp -R "${builddir}/debian" "${packagepath}/debian" cd "${packagepath}" case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') - sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in - sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D experimental -u low "${msg}" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') + sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in + sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D experimental -u low "${msg}" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" + ;; esac - pg_buildext updatecontrol procs="$(nproc)" @@ -191,12 +189,12 @@ DEB_BUILD_OPTIONS="parallel=${mjobs}" debuild --prepend-path /usr/local/bin --pr # releases. For this reason, we rename all *.ddeb files to *.deb since we upload # debug packages with .deb suffix. for file in ../*.ddeb; do - if [ -e "${file}" ]; then - echo "Renaming ${file} to ${file%.ddeb}.deb" - mv "${file}" "${file%.ddeb}.deb"; - else - echo "There are no files with ddeb extension to rename." - fi + if [ -e "${file}" ]; then + echo "Renaming ${file} to ${file%.ddeb}.deb" + mv "${file}" "${file%.ddeb}.deb" + else + echo "There are no files with ddeb extension to rename." + fi done ## Copy all deb packages out of docker image cp ../*.deb /packages diff --git a/dockerfiles/debian-buster-all/make_pg_buildext_parallel.patch b/dockerfiles/debian-buster-all/make_pg_buildext_parallel.patch index 0e070948e..6382e8f83 100644 --- a/dockerfiles/debian-buster-all/make_pg_buildext_parallel.patch +++ b/dockerfiles/debian-buster-all/make_pg_buildext_parallel.patch @@ -6,12 +6,12 @@ package=`echo $opt | sed -e "s:%v:$1:g"` + procs="$(nproc)" + mjobs="$(expr $procs + 1)" - + mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" - make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? + make -j${mjobs} -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? } - + clean() { diff --git a/dockerfiles/debian-buster-all/scripts/fetch_and_build_deb b/dockerfiles/debian-buster-all/scripts/fetch_and_build_deb index c43dac43f..378cc7320 100755 --- a/dockerfiles/debian-buster-all/scripts/fetch_and_build_deb +++ b/dockerfiles/debian-buster-all/scripts/fetch_and_build_deb @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_deb build_type build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -65,7 +65,6 @@ versioning="${versioning:-simple}" pg_release_versions="${release_versions:-${releasepg}}" pg_nightly_versions="${nightly_versions:-${nightlypg}}" - echo "Postgres versions:" echo "Release Versions: ${pg_release_versions}" echo "Nightly Versions: ${pg_nightly_versions}" @@ -75,7 +74,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc export NAME NAME=$(determine_name) @@ -87,63 +86,63 @@ cp -R /buildfiles/debian "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - releasetag="${releasetag%.citus}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - - echo "${pg_release_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - timestamp=$(date +'%Y%m%d') - - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packageversion="${nextversion}.citus~${packagesuffix}" - export CONF_EXTRA_VERSION="+${packagesuffix}" - - echo "${pg_nightly_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + releasetag="${releasetag%.citus}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + + echo "${pg_release_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + timestamp=$(date +'%Y%m%d') + + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packageversion="${nextversion}.citus~${packagesuffix}" + export CONF_EXTRA_VERSION="+${packagesuffix}" + + echo "${pg_nightly_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" packagepath="${builddir}/${packageversion}" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 @@ -158,27 +157,26 @@ cp -R "${builddir}/debian" "${packagepath}/debian" cd "${packagepath}" case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') - sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in - sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D experimental -u low "${msg}" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') + sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in + sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D experimental -u low "${msg}" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" + ;; esac - pg_buildext updatecontrol procs="$(nproc)" @@ -191,12 +189,12 @@ DEB_BUILD_OPTIONS="parallel=${mjobs}" debuild --prepend-path /usr/local/bin --pr # releases. For this reason, we rename all *.ddeb files to *.deb since we upload # debug packages with .deb suffix. for file in ../*.ddeb; do - if [ -e "${file}" ]; then - echo "Renaming ${file} to ${file%.ddeb}.deb" - mv "${file}" "${file%.ddeb}.deb"; - else - echo "There are no files with ddeb extension to rename." - fi + if [ -e "${file}" ]; then + echo "Renaming ${file} to ${file%.ddeb}.deb" + mv "${file}" "${file%.ddeb}.deb" + else + echo "There are no files with ddeb extension to rename." + fi done ## Copy all deb packages out of docker image cp ../*.deb /packages diff --git a/dockerfiles/debian-stretch-all/make_pg_buildext_parallel.patch b/dockerfiles/debian-stretch-all/make_pg_buildext_parallel.patch index 0e070948e..6382e8f83 100644 --- a/dockerfiles/debian-stretch-all/make_pg_buildext_parallel.patch +++ b/dockerfiles/debian-stretch-all/make_pg_buildext_parallel.patch @@ -6,12 +6,12 @@ package=`echo $opt | sed -e "s:%v:$1:g"` + procs="$(nproc)" + mjobs="$(expr $procs + 1)" - + mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" - make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? + make -j${mjobs} -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? } - + clean() { diff --git a/dockerfiles/debsigner/scripts/import_and_sign b/dockerfiles/debsigner/scripts/import_and_sign index 22dfb5090..e3ba5e24b 100755 --- a/dockerfiles/debsigner/scripts/import_and_sign +++ b/dockerfiles/debsigner/scripts/import_and_sign @@ -18,7 +18,6 @@ fi gpg --batch --no-tty --trust-model always \ --import <(echo "${PACKAGING_SECRET_KEY}" | base64 -d) -for deb in /packages/*/*.deb -do +for deb in /packages/*/*.deb; do sign_deb "${deb}" done diff --git a/dockerfiles/oraclelinux-6-pg10/Dockerfile b/dockerfiles/oraclelinux-6-pg10/Dockerfile index c153cba3a..c7eaadbac 100644 --- a/dockerfiles/oraclelinux-6-pg10/Dockerfile +++ b/dockerfiles/oraclelinux-6-pg10/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 6 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-6-pg10/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-6-pg10/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-6-pg10/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-6-pg10/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-6-pg11/Dockerfile b/dockerfiles/oraclelinux-6-pg11/Dockerfile index 4b9b95109..b8819e01c 100644 --- a/dockerfiles/oraclelinux-6-pg11/Dockerfile +++ b/dockerfiles/oraclelinux-6-pg11/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 6 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-6-pg11/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-6-pg11/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-6-pg11/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-6-pg11/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-6-pg12/Dockerfile b/dockerfiles/oraclelinux-6-pg12/Dockerfile index 33f53f2bd..b8f179e94 100644 --- a/dockerfiles/oraclelinux-6-pg12/Dockerfile +++ b/dockerfiles/oraclelinux-6-pg12/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 6 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-6-pg12/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-6-pg12/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-6-pg12/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-6-pg12/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-6-pg14/Dockerfile b/dockerfiles/oraclelinux-6-pg14/Dockerfile index fd1efc718..ffc3888e2 100644 --- a/dockerfiles/oraclelinux-6-pg14/Dockerfile +++ b/dockerfiles/oraclelinux-6-pg14/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 6 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-6-pg14/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-6-pg14/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100644 --- a/dockerfiles/oraclelinux-6-pg14/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-6-pg14/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-7-pg10/Dockerfile b/dockerfiles/oraclelinux-7-pg10/Dockerfile index 76ed95e1d..42908c1f2 100644 --- a/dockerfiles/oraclelinux-7-pg10/Dockerfile +++ b/dockerfiles/oraclelinux-7-pg10/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-7-pg10/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-7-pg10/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-7-pg10/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-7-pg10/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-7-pg11/Dockerfile b/dockerfiles/oraclelinux-7-pg11/Dockerfile index 54252531b..72617b2b3 100644 --- a/dockerfiles/oraclelinux-7-pg11/Dockerfile +++ b/dockerfiles/oraclelinux-7-pg11/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-7-pg11/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-7-pg11/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-7-pg11/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-7-pg11/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-7-pg12/Dockerfile b/dockerfiles/oraclelinux-7-pg12/Dockerfile index 04f021533..d72803079 100644 --- a/dockerfiles/oraclelinux-7-pg12/Dockerfile +++ b/dockerfiles/oraclelinux-7-pg12/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-7-pg12/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-7-pg12/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-7-pg12/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-7-pg12/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-7-pg13/Dockerfile b/dockerfiles/oraclelinux-7-pg13/Dockerfile index 6c3fa9c7e..c219960db 100644 --- a/dockerfiles/oraclelinux-7-pg13/Dockerfile +++ b/dockerfiles/oraclelinux-7-pg13/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-7-pg13/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-7-pg13/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-7-pg13/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-7-pg13/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-7-pg14/Dockerfile b/dockerfiles/oraclelinux-7-pg14/Dockerfile index 125966d81..60441b8e1 100644 --- a/dockerfiles/oraclelinux-7-pg14/Dockerfile +++ b/dockerfiles/oraclelinux-7-pg14/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 7 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-7-pg14/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-7-pg14/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100644 --- a/dockerfiles/oraclelinux-7-pg14/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-7-pg14/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-8-pg10/Dockerfile b/dockerfiles/oraclelinux-8-pg10/Dockerfile index d09e72ce5..12884f478 100644 --- a/dockerfiles/oraclelinux-8-pg10/Dockerfile +++ b/dockerfiles/oraclelinux-8-pg10/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-8-pg10/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-8-pg10/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-8-pg10/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-8-pg10/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-8-pg11/Dockerfile b/dockerfiles/oraclelinux-8-pg11/Dockerfile index 4462dee72..29c42d8fe 100644 --- a/dockerfiles/oraclelinux-8-pg11/Dockerfile +++ b/dockerfiles/oraclelinux-8-pg11/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-8-pg11/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-8-pg11/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-8-pg11/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-8-pg11/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-8-pg12/Dockerfile b/dockerfiles/oraclelinux-8-pg12/Dockerfile index 58fb3e2b5..289faea08 100644 --- a/dockerfiles/oraclelinux-8-pg12/Dockerfile +++ b/dockerfiles/oraclelinux-8-pg12/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-8-pg12/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-8-pg12/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-8-pg12/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-8-pg12/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-8-pg13/Dockerfile b/dockerfiles/oraclelinux-8-pg13/Dockerfile index cd9d12d1c..01901313b 100644 --- a/dockerfiles/oraclelinux-8-pg13/Dockerfile +++ b/dockerfiles/oraclelinux-8-pg13/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-8-pg13/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-8-pg13/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/dockerfiles/oraclelinux-8-pg13/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-8-pg13/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/oraclelinux-8-pg14/Dockerfile b/dockerfiles/oraclelinux-8-pg14/Dockerfile index c5b7a47dd..407633a59 100644 --- a/dockerfiles/oraclelinux-8-pg14/Dockerfile +++ b/dockerfiles/oraclelinux-8-pg14/Dockerfile @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ oraclelinux != oraclelinux ]] || [[ 8 != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/dockerfiles/oraclelinux-8-pg14/scripts/fetch_and_build_rpm b/dockerfiles/oraclelinux-8-pg14/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100644 --- a/dockerfiles/oraclelinux-8-pg14/scripts/fetch_and_build_rpm +++ b/dockerfiles/oraclelinux-8-pg14/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/dockerfiles/pgxn-all/scripts/fetch_and_build_pgxn b/dockerfiles/pgxn-all/scripts/fetch_and_build_pgxn index b5d491cb9..8fa1a83e6 100755 --- a/dockerfiles/pgxn-all/scripts/fetch_and_build_pgxn +++ b/dockerfiles/pgxn-all/scripts/fetch_and_build_pgxn @@ -16,7 +16,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_pgxn build_type build_type: 'release' @@ -26,7 +26,7 @@ type 'release' builds the latest release tag. At present, the only supported build is a 'release' build of the 'citus' project. E_O_USAGE - exit "${2}"; + exit "${2}" } if [ "$#" -ne 1 ]; then @@ -51,35 +51,35 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc cp -R /buildfiles/META.json "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - echo "$0: unknown build_type -- ${1}" >&2 - usage $stderr $badusage - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + echo "$0: unknown build_type -- ${1}" >&2 + usage $stderr $badusage + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" @@ -87,7 +87,7 @@ packagepath="${builddir}/${pkgname}-${packageversion}" finalpath="${packagepath}.zip" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 diff --git a/dockerfiles/rpmsigner/scripts/import_and_sign b/dockerfiles/rpmsigner/scripts/import_and_sign index 560eea644..9b33c693b 100755 --- a/dockerfiles/rpmsigner/scripts/import_and_sign +++ b/dockerfiles/rpmsigner/scripts/import_and_sign @@ -16,6 +16,6 @@ elif [ -z "${PACKAGING_SECRET_KEY+x}" ]; then fi gpg2 --batch --no-tty --trust-model always \ - --import <(echo "${PACKAGING_SECRET_KEY}" | base64 -d) + --import <(echo "${PACKAGING_SECRET_KEY}" | base64 -d) sign_rpm /packages/*/*.rpm diff --git a/dockerfiles/ubuntu-bionic-all/scripts/fetch_and_build_deb b/dockerfiles/ubuntu-bionic-all/scripts/fetch_and_build_deb index c43dac43f..378cc7320 100755 --- a/dockerfiles/ubuntu-bionic-all/scripts/fetch_and_build_deb +++ b/dockerfiles/ubuntu-bionic-all/scripts/fetch_and_build_deb @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_deb build_type build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -65,7 +65,6 @@ versioning="${versioning:-simple}" pg_release_versions="${release_versions:-${releasepg}}" pg_nightly_versions="${nightly_versions:-${nightlypg}}" - echo "Postgres versions:" echo "Release Versions: ${pg_release_versions}" echo "Nightly Versions: ${pg_nightly_versions}" @@ -75,7 +74,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc export NAME NAME=$(determine_name) @@ -87,63 +86,63 @@ cp -R /buildfiles/debian "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - releasetag="${releasetag%.citus}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - - echo "${pg_release_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - timestamp=$(date +'%Y%m%d') - - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packageversion="${nextversion}.citus~${packagesuffix}" - export CONF_EXTRA_VERSION="+${packagesuffix}" - - echo "${pg_nightly_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + releasetag="${releasetag%.citus}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + + echo "${pg_release_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + timestamp=$(date +'%Y%m%d') + + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packageversion="${nextversion}.citus~${packagesuffix}" + export CONF_EXTRA_VERSION="+${packagesuffix}" + + echo "${pg_nightly_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" packagepath="${builddir}/${packageversion}" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 @@ -158,27 +157,26 @@ cp -R "${builddir}/debian" "${packagepath}/debian" cd "${packagepath}" case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') - sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in - sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D experimental -u low "${msg}" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') + sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in + sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D experimental -u low "${msg}" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" + ;; esac - pg_buildext updatecontrol procs="$(nproc)" @@ -191,12 +189,12 @@ DEB_BUILD_OPTIONS="parallel=${mjobs}" debuild --prepend-path /usr/local/bin --pr # releases. For this reason, we rename all *.ddeb files to *.deb since we upload # debug packages with .deb suffix. for file in ../*.ddeb; do - if [ -e "${file}" ]; then - echo "Renaming ${file} to ${file%.ddeb}.deb" - mv "${file}" "${file%.ddeb}.deb"; - else - echo "There are no files with ddeb extension to rename." - fi + if [ -e "${file}" ]; then + echo "Renaming ${file} to ${file%.ddeb}.deb" + mv "${file}" "${file%.ddeb}.deb" + else + echo "There are no files with ddeb extension to rename." + fi done ## Copy all deb packages out of docker image cp ../*.deb /packages diff --git a/dockerfiles/ubuntu-focal-all/scripts/fetch_and_build_deb b/dockerfiles/ubuntu-focal-all/scripts/fetch_and_build_deb index c43dac43f..378cc7320 100755 --- a/dockerfiles/ubuntu-focal-all/scripts/fetch_and_build_deb +++ b/dockerfiles/ubuntu-focal-all/scripts/fetch_and_build_deb @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_deb build_type build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -65,7 +65,6 @@ versioning="${versioning:-simple}" pg_release_versions="${release_versions:-${releasepg}}" pg_nightly_versions="${nightly_versions:-${nightlypg}}" - echo "Postgres versions:" echo "Release Versions: ${pg_release_versions}" echo "Nightly Versions: ${pg_nightly_versions}" @@ -75,7 +74,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc export NAME NAME=$(determine_name) @@ -87,63 +86,63 @@ cp -R /buildfiles/debian "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - releasetag="${releasetag%.citus}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - - echo "${pg_release_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - timestamp=$(date +'%Y%m%d') - - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packageversion="${nextversion}.citus~${packagesuffix}" - export CONF_EXTRA_VERSION="+${packagesuffix}" - - echo "${pg_nightly_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + releasetag="${releasetag%.citus}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + + echo "${pg_release_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + timestamp=$(date +'%Y%m%d') + + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packageversion="${nextversion}.citus~${packagesuffix}" + export CONF_EXTRA_VERSION="+${packagesuffix}" + + echo "${pg_nightly_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" packagepath="${builddir}/${packageversion}" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 @@ -158,27 +157,26 @@ cp -R "${builddir}/debian" "${packagepath}/debian" cd "${packagepath}" case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') - sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in - sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D experimental -u low "${msg}" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') + sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in + sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D experimental -u low "${msg}" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" + ;; esac - pg_buildext updatecontrol procs="$(nproc)" @@ -191,12 +189,12 @@ DEB_BUILD_OPTIONS="parallel=${mjobs}" debuild --prepend-path /usr/local/bin --pr # releases. For this reason, we rename all *.ddeb files to *.deb since we upload # debug packages with .deb suffix. for file in ../*.ddeb; do - if [ -e "${file}" ]; then - echo "Renaming ${file} to ${file%.ddeb}.deb" - mv "${file}" "${file%.ddeb}.deb"; - else - echo "There are no files with ddeb extension to rename." - fi + if [ -e "${file}" ]; then + echo "Renaming ${file} to ${file%.ddeb}.deb" + mv "${file}" "${file%.ddeb}.deb" + else + echo "There are no files with ddeb extension to rename." + fi done ## Copy all deb packages out of docker image cp ../*.deb /packages diff --git a/fetch_build_files b/fetch_build_files index b307d6a64..488ececeb 100755 --- a/fetch_build_files +++ b/fetch_build_files @@ -17,7 +17,7 @@ download=$(mktemp) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_build_files project format target_directory project : 'citus', 'enterprise', 'hll', or 'rebalancer' @@ -27,7 +27,7 @@ fetch_build_files fetches files needed to package a specified Citus project for a specified software packaging system. E_O_USAGE - exit "${2}"; + exit "${2}" } if [ "$#" -eq 1 ] && [ "${1}" = '-h' ]; then @@ -39,29 +39,29 @@ if [ "$#" -ne 3 ]; then fi case "${1}" in - citus|enterprise|hll|rebalancer) - project=${1} - ;; - *) - echo "$0: unknown project -- ${1}" >&2 - usage $stderr $badusage - ;; +citus | enterprise | hll | rebalancer) + project=${1} + ;; +*) + echo "$0: unknown project -- ${1}" >&2 + usage $stderr $badusage + ;; esac case "${2}" in - deb) - format='debian' - ;; - rpm) - format='redhat' - ;; - pgxn) - format='pgxn' - ;; - *) - echo "$0: unknown format -- ${2}" >&2 - usage $stderr $badusage - ;; +deb) + format='debian' + ;; +rpm) + format='redhat' + ;; +pgxn) + format='pgxn' + ;; +*) + echo "$0: unknown format -- ${2}" >&2 + usage $stderr $badusage + ;; esac targetdir=$3 diff --git a/make_pg_buildext_parallel.patch b/make_pg_buildext_parallel.patch index 0e070948e..6382e8f83 100644 --- a/make_pg_buildext_parallel.patch +++ b/make_pg_buildext_parallel.patch @@ -6,12 +6,12 @@ package=`echo $opt | sed -e "s:%v:$1:g"` + procs="$(nproc)" + mjobs="$(expr $procs + 1)" - + mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" - make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? + make -j${mjobs} -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS || return $? } - + clean() { diff --git a/pull_images b/pull_images index bd0766598..c035bdd8f 100755 --- a/pull_images +++ b/pull_images @@ -5,7 +5,7 @@ set -euo pipefail IFS=$'\n\t' pgversions='10 11 12 13' -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +topdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" dockerfiles_dir="${topdir}/dockerfiles" badusage=64 @@ -15,7 +15,7 @@ nprocs="${1:-1}" declare args while read -r line; do - IFS=',' read -r os release <<< "$line" + IFS=',' read -r os release <<<"$line" if [[ "${os}" = 'debian' ]] || [[ "${os}" = 'ubuntu' ]]; then tag="${os}-${release}-all" @@ -38,4 +38,3 @@ while read -r line; do done <"${topdir}/os-list.csv" echo -e "${args}" | xargs -t -L1 -P "${nprocs}" docker - diff --git a/scripts/fetch_and_build_deb b/scripts/fetch_and_build_deb index c43dac43f..378cc7320 100755 --- a/scripts/fetch_and_build_deb +++ b/scripts/fetch_and_build_deb @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_deb build_type build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -65,7 +65,6 @@ versioning="${versioning:-simple}" pg_release_versions="${release_versions:-${releasepg}}" pg_nightly_versions="${nightly_versions:-${nightlypg}}" - echo "Postgres versions:" echo "Release Versions: ${pg_release_versions}" echo "Nightly Versions: ${pg_nightly_versions}" @@ -75,7 +74,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc export NAME NAME=$(determine_name) @@ -87,63 +86,63 @@ cp -R /buildfiles/debian "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - releasetag="${releasetag%.citus}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - - echo "${pg_release_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - timestamp=$(date +'%Y%m%d') - - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packageversion="${nextversion}.citus~${packagesuffix}" - export CONF_EXTRA_VERSION="+${packagesuffix}" - - echo "${pg_nightly_versions}" | tr ',' '\n' > "${builddir}/debian/pgversions" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + releasetag="${releasetag%.citus}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + + echo "${pg_release_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + timestamp=$(date +'%Y%m%d') + + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packageversion="${nextversion}.citus~${packagesuffix}" + export CONF_EXTRA_VERSION="+${packagesuffix}" + + echo "${pg_nightly_versions}" | tr ',' '\n' >"${builddir}/debian/pgversions" + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" packagepath="${builddir}/${packageversion}" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 @@ -158,27 +157,26 @@ cp -R "${builddir}/debian" "${packagepath}/debian" cd "${packagepath}" case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') - sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in - sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D experimental -u low "${msg}" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + suffix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+') + sed -i "/^Package:/ s/$/-${suffix}/" debian/control.in + sed -i "/postgresql-%v-${pkgname}/ s/$/-${suffix}/" debian/rules + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D experimental -u low "${msg}" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + dch -v "${packageversion}-1" -D UNRELEASED -u low "${msg}" + ;; esac - pg_buildext updatecontrol procs="$(nproc)" @@ -191,12 +189,12 @@ DEB_BUILD_OPTIONS="parallel=${mjobs}" debuild --prepend-path /usr/local/bin --pr # releases. For this reason, we rename all *.ddeb files to *.deb since we upload # debug packages with .deb suffix. for file in ../*.ddeb; do - if [ -e "${file}" ]; then - echo "Renaming ${file} to ${file%.ddeb}.deb" - mv "${file}" "${file%.ddeb}.deb"; - else - echo "There are no files with ddeb extension to rename." - fi + if [ -e "${file}" ]; then + echo "Renaming ${file} to ${file%.ddeb}.deb" + mv "${file}" "${file%.ddeb}.deb" + else + echo "There are no files with ddeb extension to rename." + fi done ## Copy all deb packages out of docker image cp ../*.deb /packages diff --git a/scripts/fetch_and_build_pgxn b/scripts/fetch_and_build_pgxn index b5d491cb9..8fa1a83e6 100755 --- a/scripts/fetch_and_build_pgxn +++ b/scripts/fetch_and_build_pgxn @@ -16,7 +16,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_pgxn build_type build_type: 'release' @@ -26,7 +26,7 @@ type 'release' builds the latest release tag. At present, the only supported build is a 'release' build of the 'citus' project. E_O_USAGE - exit "${2}"; + exit "${2}" } if [ "$#" -ne 1 ]; then @@ -51,35 +51,35 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc cp -R /buildfiles/META.json "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion/'~'/-}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - echo "$0: unknown build_type -- ${1}" >&2 - usage $stderr $badusage - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion/'~'/-}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + echo "$0: unknown build_type -- ${1}" >&2 + usage $stderr $badusage + ;; esac tarballpath="${builddir}/${pkgname}_${packageversion}.orig.tar.gz" @@ -87,7 +87,7 @@ packagepath="${builddir}/${pkgname}-${packageversion}" finalpath="${packagepath}.zip" curl -sL "https://api.github.com/repos/${repopath}/tarball/${gitsha}" \ - -o "${tarballpath}" + -o "${tarballpath}" mkdir -p "${packagepath}" tar xf "${tarballpath}" -C "${packagepath}" --strip-components 1 diff --git a/scripts/fetch_and_build_rpm b/scripts/fetch_and_build_rpm index 2b33e97c6..fa3f19da9 100755 --- a/scripts/fetch_and_build_rpm +++ b/scripts/fetch_and_build_rpm @@ -17,7 +17,7 @@ builddir=$(pwd) # outputs usage message on specified device before exiting with provided status usage() { - cat << 'E_O_USAGE' >&"$1" + cat <<'E_O_USAGE' >&"$1" usage: fetch_and_build_rpm build_type build_directory build_type: 'release', 'nightly', or a valid git reference @@ -28,7 +28,7 @@ the latest 'master' commit, and any other type is interpreted as a git ref to facilitate building one-off packages for customers. E_O_USAGE - exit "${2}"; + exit "${2}" } # sets the next version variable used during non-release builds @@ -64,7 +64,7 @@ if [ -z "${pkglatest}" ]; then exit $noinput fi -echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" > ~/.curlrc +echo "header=\"Authorization: token ${GITHUB_TOKEN}\"" >~/.curlrc name=$(determine_name) email=$(determine_email) @@ -74,62 +74,62 @@ cp "/buildfiles/${pkgname}.spec" /buildfiles/rpmlintrc "${builddir}" repopath="citusdata/${hubproj}" case "${1}" in - release) - packageversion=${pkglatest%-*} - releasetag="v${packageversion%.citus}" - - packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') - if [ -n "${packagerelease}" ]; then - releasetag="v${packageversion}-${packagerelease}" - fi - - conf_extra_version="%{nil}" - - gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | \ - jq -r '.object.sha') - if [ "${gitsha}" == 'null' ]; then - echo "$0: could not determine commit for git tag ${releasetag}" >&2 - exit $failure - fi - - verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ - "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | \ - jq -r '.verification.verified') - if [ "${verified}" != 'true' ]; then - echo "$0: could not verify signature for git tag ${releasetag}" >&2 - exit $failure - fi - ;; - *) - if [ "${1}" == 'nightly' ]; then - ref=${nightlyref} - infix='git' - else - ref=${1} - infix='pre' - fi - - setnextversion "${pkglatest}" - - set +e - gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ - "https://api.github.com/repos/${repopath}/commits/${ref}") - if [ "${?}" -ne 0 ]; then - echo "$0: could not determine commit for git ref ${ref}" >&2 - exit $failure - fi - set -e - - packageversion="${nextversion}.citus" - timestamp=$(date +'%Y%m%d') - packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" - packagerelease="0.0.${packagesuffix}" - conf_extra_version="+${packagesuffix}" - - sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ - -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ - "${builddir}/${pkgname}.spec" - ;; +release) + packageversion=${pkglatest%-*} + releasetag="v${packageversion%.citus}" + + packagerelease=$(echo "${pkglatest#*-}" | sed -E 's/^[0-9.]+//') + if [ -n "${packagerelease}" ]; then + releasetag="v${packageversion}-${packagerelease}" + fi + + conf_extra_version="%{nil}" + + gitsha=$(curl -s "https://api.github.com/repos/${repopath}/git/refs/tags/${releasetag}" | + jq -r '.object.sha') + if [ "${gitsha}" == 'null' ]; then + echo "$0: could not determine commit for git tag ${releasetag}" >&2 + exit $failure + fi + + verified=$(curl -sH 'Accept:application/vnd.github.cryptographer-preview+sha' \ + "https://api.github.com/repos/${repopath}/git/tags/${gitsha}" | + jq -r '.verification.verified') + if [ "${verified}" != 'true' ]; then + echo "$0: could not verify signature for git tag ${releasetag}" >&2 + exit $failure + fi + ;; +*) + if [ "${1}" == 'nightly' ]; then + ref=${nightlyref} + infix='git' + else + ref=${1} + infix='pre' + fi + + setnextversion "${pkglatest}" + + set +e + gitsha=$(curl -sfH 'Accept:application/vnd.github.v3.sha' \ + "https://api.github.com/repos/${repopath}/commits/${ref}") + if [ "${?}" -ne 0 ]; then + echo "$0: could not determine commit for git ref ${ref}" >&2 + exit $failure + fi + set -e + + packageversion="${nextversion}.citus" + timestamp=$(date +'%Y%m%d') + packagesuffix="${infix}.${timestamp}.${gitsha:0:7}" + packagerelease="0.0.${packagesuffix}" + conf_extra_version="+${packagesuffix}" + + sed -i -E -e "/^Version:/s/[^ \\t]*$/${packageversion}/" \ + -e "/^Release:/s/[^ \\t]*$/${packagerelease}%{dist}/" \ + "${builddir}/${pkgname}.spec" + ;; esac # this should all take place in a package-build directory @@ -149,8 +149,8 @@ tar czf "${tarballpath}" "${pkgsrcdir}" # force our URL and expanded folder names into spec sed -i -E -e "\\|^Source0:|s|https:.*|${tarballurl}|" \ - -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ - -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ + -e "/^%global pgmajorversion/s/[0-9]+$/${PGVERSION//'.'/}/" \ + -e "/^%global pgpackageversion/s/[0-9.]+$/${PGVERSION}/" \ "${builddir}/${pkgname}.spec" osname=$(awk '{print $1}' /etc/system-release) @@ -163,25 +163,25 @@ else fi case "${1}" in - release) - # add minor/major version to package name if using fancy versioning - if [ "${versioning}" == 'fancy' ]; then - infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') - sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" - fi - ;; - nightly) - msg="Nightly package. Built from ${nightlyref} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" - ;; - *) - msg="Custom package. Built from ${gitsha:0:7} " - msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') - LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" - sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" - ;; +release) + # add minor/major version to package name if using fancy versioning + if [ "${versioning}" == 'fancy' ]; then + infix=$(echo "${packageversion}" | grep -oE '^[0-9]+\.[0-9]+' | tr -d '.') + sed -i -E "1i %global pkginfix ${infix}" "${builddir}/${pkgname}.spec" + fi + ;; +nightly) + msg="Nightly package. Built from ${nightlyref} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.git/0.0.git/' "${builddir}/${pkgname}.spec" + ;; +*) + msg="Custom package. Built from ${gitsha:0:7} " + msg+=$(date +'on %l:%M %p (%Z) on %A, %B %Y' | tr -s ' ') + LC_ALL=${locale} rpmdev-bumpspec -c "${msg}" "${builddir}/${pkgname}.spec" + sed -i -E 's/0.1.pre/0.0.pre/' "${builddir}/${pkgname}.spec" + ;; esac # Enable gcc8 on distros that have it @@ -193,11 +193,11 @@ if [ -f /opt/rh/devtoolset-8/enable ]; then fi rpmbuild --define "_sourcedir ${rpmbuilddir}" \ ---define "_specdir ${rpmbuilddir}" \ ---define "_builddir ${rpmbuilddir}" \ ---define "_srcrpmdir ${rpmbuilddir}" \ ---define "_rpmdir ${rpmbuilddir}" \ ---define "conf_extra_version ${conf_extra_version}" \ --bb "${builddir}/${pkgname}.spec" + --define "_specdir ${rpmbuilddir}" \ + --define "_builddir ${rpmbuilddir}" \ + --define "_srcrpmdir ${rpmbuilddir}" \ + --define "_rpmdir ${rpmbuilddir}" \ + --define "conf_extra_version ${conf_extra_version}" \ + -bb "${builddir}/${pkgname}.spec" cp /citus-rpm-build/x86_64/*.rpm /packages diff --git a/templates/Dockerfile-rpm.tmpl b/templates/Dockerfile-rpm.tmpl index b17f22537..84e4d9f53 100644 --- a/templates/Dockerfile-rpm.tmpl +++ b/templates/Dockerfile-rpm.tmpl @@ -7,7 +7,7 @@ RUN yum -y update RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ && yum clean all -# Enable some other repos for some dependencies in OL/7 +# Enable some other repos for some dependencies in OL/7 # see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server RUN [[ %%os%% != oraclelinux ]] || [[ %%release%% != 7 ]] || ( \ yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ diff --git a/update_dockerfiles b/update_dockerfiles index d912add6a..eb1869c41 100755 --- a/update_dockerfiles +++ b/update_dockerfiles @@ -5,7 +5,7 @@ set -euo pipefail IFS=$'\n\t' pgversions='10 11 12 13 14' -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +topdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" dockerfiles_dir="${topdir}/dockerfiles" templates_dir="${topdir}"/templates @@ -19,22 +19,22 @@ function update_extra_repositories_and_packages { extra_packages='' case ${os}+${release} in - centos+6|centos+7) - extra_repositories='epel-release centos-release-scl-rh' - extra_packages='llvm-toolset-7-clang llvm5.0' - ;; - centos+8) - extra_repositories='epel-release' - extra_packages='llvm-toolset ccache' - ;; - oraclelinux+6|oraclelinux+7) - extra_repositories='' - extra_packages='llvm-toolset-7-clang llvm5.0' - ;; - oraclelinux+8) - extra_repositories='oracle-epel-release-el8' - extra_packages='llvm-toolset ccache' - ;; + centos+6 | centos+7) + extra_repositories='epel-release centos-release-scl-rh' + extra_packages='llvm-toolset-7-clang llvm5.0' + ;; + centos+8) + extra_repositories='epel-release' + extra_packages='llvm-toolset ccache' + ;; + oraclelinux+6 | oraclelinux+7) + extra_repositories='' + extra_packages='llvm-toolset-7-clang llvm5.0' + ;; + oraclelinux+8) + extra_repositories='oracle-epel-release-el8' + extra_packages='llvm-toolset ccache' + ;; esac } @@ -57,15 +57,15 @@ function update_rpm_dockerfile { template="${templates_dir}"/Dockerfile-rpm.tmpl sed "$sed_cmd; s#%%rpm_url%%#${rpm_url}#g; s/%%pgshort%%/${pgshort}/g; s/%%pgversion%%/${pgversion}/g" \ - "${template}" > "${target_subdir}/Dockerfile" + "${template}" >"${target_subdir}/Dockerfile" cp -R scripts "${target_subdir}" rm "${target_subdir}/scripts/fetch_and_build_deb" \ - "${target_subdir}/scripts/fetch_and_build_pgxn" + "${target_subdir}/scripts/fetch_and_build_pgxn" } while read -r line; do - IFS=',' read -r os release <<< "$line" + IFS=',' read -r os release <<<"$line" update_extra_repositories_and_packages "${os}" "${release}" @@ -81,17 +81,17 @@ while read -r line; do template="${templates_dir}"/Dockerfile-deb.tmpl sed 's/%%os%%/'"${os}"'/g; s/%%release%%/'"${release}"'/g' \ - "${template}" > "${target_subdir}/Dockerfile" + "${template}" >"${target_subdir}/Dockerfile" cp -R make_pg_buildext_parallel.patch scripts "${target_subdir}" rm "${target_subdir}/scripts/fetch_and_build_rpm" \ - "${target_subdir}/scripts/fetch_and_build_pgxn" + "${target_subdir}/scripts/fetch_and_build_pgxn" elif [[ "${os}" = 'centos' ]] || [[ "${os}" = 'fedora' ]] || [[ "${os}" = 'oraclelinux' ]]; then # redhat variants need a Dockerfile for each PostgreSQL version IFS=' ' for pgversion in ${pgversions}; do - if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && \ - [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then + if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && + [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then # CentOS and OracleLinux 6 doesn't have pg13 packages yet. # So skip building docker images for them. continue @@ -105,13 +105,13 @@ while read -r line; do template="${templates_dir}"/Dockerfile-pgxn.tmpl sed 's/%%os%%/'"${os}"'/g; s/%%release%%/'"${release}"'/g' \ - "${template}" > "${target_subdir}/Dockerfile" + "${template}" >"${target_subdir}/Dockerfile" cp -R scripts "${target_subdir}" rm "${target_subdir}/scripts/fetch_and_build_deb" \ - "${target_subdir}/scripts/fetch_and_build_rpm" \ - "${target_subdir}/scripts/determine_name" \ - "${target_subdir}/scripts/determine_email" + "${target_subdir}/scripts/fetch_and_build_rpm" \ + "${target_subdir}/scripts/determine_name" \ + "${target_subdir}/scripts/determine_email" else echo "$0: unrecognized OS -- ${os}" >&2 diff --git a/update_image b/update_image index 82f3da70c..6e24494a2 100755 --- a/update_image +++ b/update_image @@ -10,18 +10,16 @@ set -euo pipefail IFS=$'\n\t' pgversions='10 11 12 13 14' -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +topdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" dockerfiles_dir="${topdir}/dockerfiles" badusage=64 - nprocs="${1:-1}" declare args - -IFS=',' read -r os release <<< "${TARGET_PLATFORM}" +IFS=',' read -r os release <<<"${TARGET_PLATFORM}" if [[ "${os}" = 'debian' ]] || [[ "${os}" = 'ubuntu' ]]; then tag="${os}-${release}-all" @@ -30,8 +28,8 @@ elif [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; then # redhat variants need an image for each PostgreSQL version IFS=' ' for pgversion in ${pgversions}; do - if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && \ - [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then + if { [[ "${os}" = 'centos' ]] || [[ "${os}" = 'oraclelinux' ]]; } && + [[ "${release}" = '6' ]] && [[ "${pgversion}" = '13' ]]; then # CentOS and OracleLinux 6 doesn't have pg13 packages yet. # So skip building docker images for them. continue @@ -48,5 +46,4 @@ else exit $badusage fi - echo -e "${args}" | xargs -t -L1 -P "${nprocs}" docker