You've already forked pg_probackup
mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2025-12-26 02:28:16 +02:00
149 lines
5.3 KiB
Bash
Executable File
149 lines
5.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright Notice:
|
|
# © (C) Postgres Professional 2015-2016 http://www.postgrespro.ru/
|
|
# Distributed under Apache License 2.0
|
|
# Распространяется по лицензии Apache 2.0
|
|
|
|
set -xe
|
|
set -o pipefail
|
|
|
|
# fix https://github.com/moby/moby/issues/23137
|
|
ulimit -n 1024
|
|
|
|
# There is no std/ent packages for PG 9.5
|
|
if [[ ${PG_VERSION} == '9.5' ]] && [[ ${PBK_EDITION} != '' ]] ; then
|
|
exit 0
|
|
fi
|
|
|
|
# PACKAGES NEEDED
|
|
apt-get --allow-releaseinfo-change update -y && apt-get install -y git wget bzip2 devscripts equivs
|
|
|
|
# Prepare
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
|
|
|
if [ ${CODENAME} == 'jessie' ]; then
|
|
printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
|
|
fi
|
|
|
|
apt-get -qq update -y
|
|
|
|
# download PKG_URL if PKG_HASH is omitted
|
|
mkdir /root/build
|
|
cd /root/build
|
|
|
|
# clone pbk repo
|
|
git clone $PKG_URL ${PKG_NAME}_${PKG_VERSION}
|
|
cd ${PKG_NAME}_${PKG_VERSION}
|
|
git checkout ${PKG_HASH}
|
|
cd ..
|
|
|
|
PG_TOC=$(echo ${PG_VERSION} | sed 's|\.||g')
|
|
# Download PostgreSQL source if building for vanilla
|
|
if [[ ${PBK_EDITION} == '' ]] ; then
|
|
wget -q http://ftp.postgresql.org/pub/source/v${PG_FULL_VERSION}/postgresql-${PG_FULL_VERSION}.tar.bz2
|
|
fi
|
|
|
|
cd /root/build/${PKG_NAME}_${PKG_VERSION}
|
|
cp -av /app/in/specs/deb/pg_probackup/debian ./
|
|
if [[ ${PBK_EDITION} == '' ]] ; then
|
|
sed -i "s/@PKG_NAME@/${PKG_NAME}/g" debian/changelog
|
|
sed -i "s/@PKG_VERSION@/${PKG_VERSION}/g" debian/changelog
|
|
sed -i "s/@PKG_RELEASE@/${PKG_RELEASE}/g" debian/changelog
|
|
sed -i "s/@PKG_HASH@/${PKG_HASH}/g" debian/changelog
|
|
sed -i "s/@CODENAME@/${CODENAME}/g" debian/changelog
|
|
|
|
sed -i "s/@PKG_NAME@/${PKG_NAME}/g" debian/control
|
|
sed -i "s/@PG_VERSION@/${PG_VERSION}/g" debian/control
|
|
|
|
sed -i "s/@PG_VERSION@/${PG_VERSION}/" debian/pg_probackup.install
|
|
mv debian/pg_probackup.install debian/${PKG_NAME}.install
|
|
|
|
sed -i "s/@PKG_NAME@/${PKG_NAME}/g" debian/rules
|
|
sed -i "s/@PG_TOC@/${PG_TOC}/g" debian/rules
|
|
sed -i "s/@PG_VERSION@/${PG_VERSION}/g" debian/rules
|
|
sed -i "s/@PG_FULL_VERSION@/${PG_FULL_VERSION}/g" debian/rules
|
|
sed -i "s|@PREFIX@|/stump|g" debian/rules
|
|
else
|
|
sed -i "s/@PKG_NAME@/pg-probackup-${PBK_EDITION}-${PG_VERSION}/g" debian/changelog
|
|
sed -i "s/@PKG_VERSION@/${PKG_VERSION}/g" debian/changelog
|
|
sed -i "s/@PKG_RELEASE@/${PKG_RELEASE}/g" debian/changelog
|
|
sed -i "s/@PKG_HASH@/${PKG_HASH}/g" debian/changelog
|
|
sed -i "s/@CODENAME@/${CODENAME}/g" debian/changelog
|
|
|
|
sed -i "s/@PKG_NAME@/pg-probackup-${PBK_EDITION}-${PG_VERSION}/g" debian/control
|
|
sed -i "s/pg-probackup-@PG_VERSION@/pg-probackup-${PBK_EDITION}-${PG_VERSION}/g" debian/control
|
|
sed -i "s/@PG_VERSION@/${PG_VERSION}/g" debian/control
|
|
sed -i "s/PostgreSQL/PostgresPro ${PBK_EDITION_FULL}/g" debian/control
|
|
|
|
sed -i "s/pg_probackup-@PG_VERSION@/pg_probackup-${PBK_EDITION}-${PG_VERSION}/" debian/pg_probackup.install
|
|
mv debian/pg_probackup.install debian/pg-probackup-${PBK_EDITION}-${PG_VERSION}.install
|
|
|
|
sed -i "s/@PKG_NAME@/pg-probackup-${PBK_EDITION}-${PG_VERSION}/g" debian/rules
|
|
sed -i "s/@PG_TOC@/${PG_TOC}/g" debian/rules
|
|
sed -i "s/pg_probackup-@PG_VERSION@/pg_probackup-${PBK_EDITION}-${PG_VERSION}/g" debian/rules
|
|
sed -i "s/postgresql-@PG_FULL_VERSION@/postgrespro-${PBK_EDITION}-${PG_FULL_VERSION}/g" debian/rules
|
|
|
|
if [ ${PG_VERSION} == '9.6' ]; then
|
|
sed -i "s|@PREFIX@|/stump|g" debian/rules
|
|
else
|
|
sed -i "s|@PREFIX@|/opt/pgpro/${PBK_EDITION}-${PG_VERSION}|g" debian/rules
|
|
fi
|
|
fi
|
|
|
|
# Build dependencies
|
|
mk-build-deps --install --remove --tool 'apt-get --no-install-recommends --yes' debian/control
|
|
rm -rf ./*.deb
|
|
|
|
# Pack source to orig.tar.gz
|
|
mkdir -p /root/build/dsc
|
|
if [[ ${PBK_EDITION} == '' ]] ; then
|
|
mv /root/build/postgresql-${PG_FULL_VERSION}.tar.bz2 \
|
|
/root/build/dsc/${PKG_NAME}_${PKG_VERSION}.orig-postgresql${PG_TOC}.tar.bz2
|
|
|
|
cd /root/build/${PKG_NAME}_${PKG_VERSION}
|
|
tar -xf /root/build/dsc/${PKG_NAME}_${PKG_VERSION}.orig-postgresql${PG_TOC}.tar.bz2
|
|
cd /root/build
|
|
|
|
tar -czf ${PKG_NAME}_${PKG_VERSION}.orig.tar.gz \
|
|
${PKG_NAME}_${PKG_VERSION}
|
|
|
|
mv /root/build/${PKG_NAME}_${PKG_VERSION}.orig.tar.gz /root/build/dsc
|
|
|
|
cd /root/build/${PKG_NAME}_${PKG_VERSION}
|
|
tar -xf /root/build/dsc/${PKG_NAME}_${PKG_VERSION}.orig-postgresql${PG_TOC}.tar.bz2
|
|
else
|
|
tar -xf /app/in/tarballs/pgpro.tar.bz2 -C /root/build/dsc/
|
|
cd /root/build/dsc/pgpro
|
|
|
|
PGPRO_TOC=$(echo ${PG_FULL_VERSION} | sed 's|\.|_|g')
|
|
if [[ ${PBK_EDITION} == 'std' ]] ; then
|
|
git checkout "PGPRO${PGPRO_TOC}_1"
|
|
else
|
|
git checkout "PGPROEE${PGPRO_TOC}_1"
|
|
fi
|
|
|
|
mv /root/build/dsc/pgpro /root/build/${PKG_NAME}_${PKG_VERSION}/postgrespro-${PBK_EDITION}-${PG_FULL_VERSION}
|
|
fi
|
|
|
|
# BUILD: SOURCE PKG
|
|
if [[ ${PBK_EDITION} == '' ]] ; then
|
|
cd /root/build/dsc
|
|
dpkg-source -b /root/build/${PKG_NAME}_${PKG_VERSION}
|
|
fi
|
|
|
|
# BUILD: DEB PKG
|
|
cd /root/build/${PKG_NAME}_${PKG_VERSION}
|
|
dpkg-buildpackage -b #&> /app/out/build.log
|
|
|
|
# COPY ARTEFACTS
|
|
rm -rf /app/out/*
|
|
cd /root/build
|
|
cp -v *.deb /app/out
|
|
cp -v *.changes /app/out
|
|
|
|
if [[ ${PBK_EDITION} == '' ]] ; then
|
|
cp -arv dsc /app/out
|
|
fi
|