Merge pull request #13 from vorsel/master
Issue - (#14): PG-80 packaging for pg_stat_monitorpull/15/head
commit
0e47677552
|
@ -0,0 +1,5 @@
|
||||||
|
percona-pg-stat-monitor (1.0.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Initial build.
|
||||||
|
|
||||||
|
-- Oleksandr Miroshnychenko <alex.miroshnychenko@percona.com> Thu, 19 Dec 2019 19:20:11 +0100
|
|
@ -0,0 +1 @@
|
||||||
|
9
|
|
@ -0,0 +1,21 @@
|
||||||
|
Source: percona-pg-stat-monitor
|
||||||
|
Section: database
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Percona Development Team <info@percona.com>
|
||||||
|
Build-Depends:
|
||||||
|
debhelper (>= 9),
|
||||||
|
percona-postgresql-server-dev-all (>= 153~),
|
||||||
|
|
||||||
|
Package: percona-pg-stat-monitor
|
||||||
|
Architecture: any
|
||||||
|
Depends:
|
||||||
|
percona-postgresql-11,
|
||||||
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
|
Description: The pg_stat_monitor is statistics collector tool
|
||||||
|
based on PostgreSQL's contrib module "pg_stat_statements".
|
||||||
|
.
|
||||||
|
pg_stat_monitor is developed on the basis of pg_stat_statments
|
||||||
|
as more advanced replacement for pg_stat_statment.
|
||||||
|
It provides all the features of pg_stat_statment plus its own feature set.
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
Source: percona-pg-stat-monitor
|
||||||
|
Section: database
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Percona Development Team <info@percona.com>
|
||||||
|
Build-Depends:
|
||||||
|
debhelper (>= 9),
|
||||||
|
percona-postgresql-server-dev-all (>= 153~),
|
||||||
|
|
||||||
|
Package: percona-pg-stat-monitor
|
||||||
|
Architecture: any
|
||||||
|
Depends:
|
||||||
|
percona-postgresql-11,
|
||||||
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
|
Description: The pg_stat_monitor is statistics collector tool
|
||||||
|
based on PostgreSQL's contrib module "pg_stat_statements".
|
||||||
|
.
|
||||||
|
pg_stat_monitor is developed on the basis of pg_stat_statments
|
||||||
|
as more advanced replacement for pg_stat_statment.
|
||||||
|
It provides all the features of pg_stat_statment plus its own feature set.
|
|
@ -0,0 +1,2 @@
|
||||||
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
9.3+
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
# Using pg_buildext
|
||||||
|
include /usr/share/postgresql-common/pgxs_debian_control.mk
|
||||||
|
|
||||||
|
export USE_PGXS=1
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
override_dh_auto_build:
|
||||||
|
+pg_buildext build build-%v
|
||||||
|
|
||||||
|
override_dh_auto_test:
|
||||||
|
# nothing to do here
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
+pg_buildext install build-%v percona-pg-stat-monitor
|
||||||
|
|
||||||
|
override_dh_installdocs:
|
||||||
|
dh_installdocs --all README.*
|
||||||
|
|
||||||
|
override_dh_auto_clean:
|
||||||
|
+pg_buildext clean build-%v
|
||||||
|
rm -rf results regression.*
|
||||||
|
mkdir results
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
|
@ -0,0 +1,3 @@
|
||||||
|
# don't bug people uploading from @work
|
||||||
|
source: changelog-should-mention-nmu
|
||||||
|
source: source-nmu-has-incorrect-version-number
|
|
@ -0,0 +1,65 @@
|
||||||
|
%global sname percona-pg-stat-monitor
|
||||||
|
%global pginstdir /usr/pgsql-11/
|
||||||
|
%global pgstatmonmajver 1
|
||||||
|
%global pgstatmonmidver 0
|
||||||
|
%global pgstatmonminver 0
|
||||||
|
|
||||||
|
Summary: Statistics collector for PostgreSQL
|
||||||
|
Name: %{sname}
|
||||||
|
Version: %{pgstatmonmajver}.%{pgstatmonmidver}.%{pgstatmonminver}
|
||||||
|
Release: 1%{?dist}
|
||||||
|
License: Apache 2.0
|
||||||
|
Source0: %{sname}-%{pgstatmonmajver}.%{pgstatmonmidver}.%{pgstatmonminver}.tar.gz
|
||||||
|
URL: https://github.com/Percona-Lab/pg_stat_monitor
|
||||||
|
BuildRequires: percona-postgresql11-devel
|
||||||
|
Requires: postgresql-server
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
The pg_stat_monitor is statistics collector tool
|
||||||
|
based on PostgreSQL's contrib module "pg_stat_statements".
|
||||||
|
.
|
||||||
|
pg_stat_monitor is developed on the basis of pg_stat_statments
|
||||||
|
as more advanced replacement for pg_stat_statment.
|
||||||
|
It provides all the features of pg_stat_statment plus its own feature set.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{sname}-%{pgstatmonmajver}.%{pgstatmonmidver}.%{pgstatmonminver}
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
sed -i 's:PG_CONFIG = pg_config:PG_CONFIG = /usr/pgsql-11/bin/pg_config:' Makefile
|
||||||
|
%{__make} USE_PGXS=1 %{?_smp_mflags}
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%{__rm} -rf %{buildroot}
|
||||||
|
%{__make} USE_PGXS=1 %{?_smp_mflags} install DESTDIR=%{buildroot}
|
||||||
|
%{__install} -d %{buildroot}%{pginstdir}/share/extension
|
||||||
|
%{__install} -m 755 README.md %{buildroot}%{pginstdir}/share/extension/README-pg_stat_monitor
|
||||||
|
|
||||||
|
|
||||||
|
%clean
|
||||||
|
%{__rm} -rf %{buildroot}
|
||||||
|
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
|
||||||
|
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(755,root,root,755)
|
||||||
|
%doc %{pginstdir}/share/extension/README-pg_stat_monitor
|
||||||
|
%{pginstdir}/lib/pg_stat_monitor.so
|
||||||
|
%{pginstdir}/share/extension/pg_stat_monitor--*.sql
|
||||||
|
%{pginstdir}/share/extension/pg_stat_monitor.control
|
||||||
|
%{pginstdir}/lib/bitcode/pg_stat_monitor*.bc
|
||||||
|
%{pginstdir}/lib/bitcode/pg_stat_monitor/*.bc
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Dec 19 2019 Oleksandr Miroshnychenko <alex.miroshnychenko@percona.com> - 1.0.0-1
|
||||||
|
- Initial build
|
|
@ -0,0 +1,487 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
shell_quote_string() {
|
||||||
|
echo "$1" | sed -e 's,\([^a-zA-Z0-9/_.=-]\),\\\1,g'
|
||||||
|
}
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
cat <<EOF
|
||||||
|
Usage: $0 [OPTIONS]
|
||||||
|
The following options may be given :
|
||||||
|
--builddir=DIR Absolute path to the dir where all actions will be performed
|
||||||
|
--get_sources Source will be downloaded from github
|
||||||
|
--build_src_rpm If it is set - src rpm will be built
|
||||||
|
--build_src_deb If it is set - source deb package will be built
|
||||||
|
--build_rpm If it is set - rpm will be built
|
||||||
|
--build_deb If it is set - deb will be built
|
||||||
|
--install_deps Install build dependencies(root privilages are required)
|
||||||
|
--branch Branch for build
|
||||||
|
--repo Repo for build
|
||||||
|
--help) usage ;;
|
||||||
|
Example $0 --builddir=/tmp/BUILD --get_sources=1 --build_src_rpm=1 --build_rpm=1
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
append_arg_to_args () {
|
||||||
|
args="$args "$(shell_quote_string "$1")
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_arguments() {
|
||||||
|
pick_args=
|
||||||
|
if test "$1" = PICK-ARGS-FROM-ARGV
|
||||||
|
then
|
||||||
|
pick_args=1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
for arg do
|
||||||
|
val=$(echo "$arg" | sed -e 's;^--[^=]*=;;')
|
||||||
|
case "$arg" in
|
||||||
|
--builddir=*) WORKDIR="$val" ;;
|
||||||
|
--build_src_rpm=*) SRPM="$val" ;;
|
||||||
|
--build_src_deb=*) SDEB="$val" ;;
|
||||||
|
--build_rpm=*) RPM="$val" ;;
|
||||||
|
--build_deb=*) DEB="$val" ;;
|
||||||
|
--get_sources=*) SOURCE="$val" ;;
|
||||||
|
--branch=*) BRANCH="$val" ;;
|
||||||
|
--repo=*) REPO="$val" ;;
|
||||||
|
--install_deps=*) INSTALL="$val" ;;
|
||||||
|
--help) usage ;;
|
||||||
|
*)
|
||||||
|
if test -n "$pick_args"
|
||||||
|
then
|
||||||
|
append_arg_to_args "$arg"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
check_workdir(){
|
||||||
|
if [ "x$WORKDIR" = "x$CURDIR" ]
|
||||||
|
then
|
||||||
|
echo >&2 "Current directory cannot be used for building!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
if ! test -d "$WORKDIR"
|
||||||
|
then
|
||||||
|
echo >&2 "$WORKDIR is not a directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
add_percona_yum_repo(){
|
||||||
|
if [ ! -f /etc/yum.repos.d/percona-dev.repo ]
|
||||||
|
then
|
||||||
|
wget http://jenkins.percona.com/yum-repo/percona-dev.repo
|
||||||
|
mv -f percona-dev.repo /etc/yum.repos.d/
|
||||||
|
fi
|
||||||
|
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
|
||||||
|
percona-release disable all
|
||||||
|
percona-release enable ppg-11 release
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
add_percona_apt_repo(){
|
||||||
|
if [ ! -f /etc/apt/sources.list.d/percona-dev.list ]; then
|
||||||
|
cat >/etc/apt/sources.list.d/percona-dev.list <<EOL
|
||||||
|
deb http://jenkins.percona.com/apt-repo/ @@DIST@@ main
|
||||||
|
deb-src http://jenkins.percona.com/apt-repo/ @@DIST@@ main
|
||||||
|
EOL
|
||||||
|
sed -i "s:@@DIST@@:$OS_NAME:g" /etc/apt/sources.list.d/percona-dev.list
|
||||||
|
fi
|
||||||
|
wget -qO - http://jenkins.percona.com/apt-repo/8507EFA5.pub | apt-key add -
|
||||||
|
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
|
||||||
|
dpkg -i percona-release_latest.generic_all.deb
|
||||||
|
percona-release disable all
|
||||||
|
rm -f percona-release_latest.generic_all.deb
|
||||||
|
percona-release enable ppg-11 release
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
get_sources(){
|
||||||
|
cd "${WORKDIR}"
|
||||||
|
if [ "${SOURCE}" = 0 ]
|
||||||
|
then
|
||||||
|
echo "Sources will not be downloaded"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
PRODUCT=percona-pg-stat-monitor
|
||||||
|
echo "PRODUCT=${PRODUCT}" > pg-stat-monitor.properties
|
||||||
|
|
||||||
|
PRODUCT_FULL=${PRODUCT}-${VERSION}
|
||||||
|
echo "PRODUCT_FULL=${PRODUCT_FULL}" >> pg-stat-monitor.properties
|
||||||
|
echo "VERSION=${PSM_VER}" >> pg-stat-monitor.properties
|
||||||
|
echo "BUILD_NUMBER=${BUILD_NUMBER}" >> pg-stat-monitor.properties
|
||||||
|
echo "BUILD_ID=${BUILD_ID}" >> pg-stat-monitor.properties
|
||||||
|
git clone "$REPO" ${PRODUCT_FULL}
|
||||||
|
retval=$?
|
||||||
|
if [ $retval != 0 ]
|
||||||
|
then
|
||||||
|
echo "There were some issues during repo cloning from github. Please retry one more time"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cd ${PRODUCT_FULL}
|
||||||
|
if [ ! -z "$BRANCH" ]
|
||||||
|
then
|
||||||
|
git reset --hard
|
||||||
|
git clean -xdf
|
||||||
|
git checkout "$BRANCH"
|
||||||
|
fi
|
||||||
|
REVISION=$(git rev-parse --short HEAD)
|
||||||
|
echo "REVISION=${REVISION}" >> ${WORKDIR}/pg-stat-monitor.properties
|
||||||
|
rm -rf rpm debian
|
||||||
|
cp -r percona-packaging/rpm ./
|
||||||
|
cp -r percona-packaging/debian ./
|
||||||
|
cd ${WORKDIR}
|
||||||
|
#
|
||||||
|
source pg-stat-monitor.properties
|
||||||
|
#
|
||||||
|
|
||||||
|
tar --owner=0 --group=0 --exclude=.* -czf ${PRODUCT_FULL}.tar.gz ${PRODUCT_FULL}
|
||||||
|
echo "UPLOAD=UPLOAD/experimental/BUILDS/${PRODUCT}/${PRODUCT_FULL}/${PSM_BRANCH}/${REVISION}/${BUILD_ID}" >> pg-stat-monitor.properties
|
||||||
|
mkdir $WORKDIR/source_tarball
|
||||||
|
mkdir $CURDIR/source_tarball
|
||||||
|
cp ${PRODUCT_FULL}.tar.gz $WORKDIR/source_tarball
|
||||||
|
cp ${PRODUCT_FULL}.tar.gz $CURDIR/source_tarball
|
||||||
|
cd $CURDIR
|
||||||
|
rm -rf percona-pg-stat-monitor*
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
get_system(){
|
||||||
|
if [ -f /etc/redhat-release ]; then
|
||||||
|
RHEL=$(rpm --eval %rhel)
|
||||||
|
ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||||
|
OS_NAME="el$RHEL"
|
||||||
|
OS="rpm"
|
||||||
|
else
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
OS_NAME="$(lsb_release -sc)"
|
||||||
|
OS="deb"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
install_deps() {
|
||||||
|
if [ $INSTALL = 0 ]
|
||||||
|
then
|
||||||
|
echo "Dependencies will not be installed"
|
||||||
|
return;
|
||||||
|
fi
|
||||||
|
if [ $( id -u ) -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "It is not possible to instal dependencies. Please run as root"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
CURPLACE=$(pwd)
|
||||||
|
|
||||||
|
if [ "x$OS" = "xrpm" ]; then
|
||||||
|
yum -y install wget
|
||||||
|
add_percona_yum_repo
|
||||||
|
wget http://jenkins.percona.com/yum-repo/percona-dev.repo
|
||||||
|
mv -f percona-dev.repo /etc/yum.repos.d/
|
||||||
|
yum clean all
|
||||||
|
RHEL=$(rpm --eval %rhel)
|
||||||
|
if [ ${RHEL} = 8 ]; then
|
||||||
|
dnf -y module disable postgresql
|
||||||
|
dnf config-manager --set-enabled codeready-builder-for-rhel-8-x86_64-rpms
|
||||||
|
dnf clean all
|
||||||
|
rm -r /var/cache/dnf
|
||||||
|
dnf -y upgrade
|
||||||
|
yum -y install perl
|
||||||
|
else
|
||||||
|
until yum -y install centos-release-scl; do
|
||||||
|
echo "waiting"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
yum -y install epel-release
|
||||||
|
INSTALL_LIST="llvm-toolset-7-clang llvm5.0-devel"
|
||||||
|
yum -y install ${INSTALL_LIST}
|
||||||
|
source /opt/rh/devtoolset-7/enable
|
||||||
|
source /opt/rh/llvm-toolset-7/enable
|
||||||
|
INSTALL_LIST="clang-devel git clang llvm-devel rpmdevtools vim wget"
|
||||||
|
yum -y install ${INSTALL_LIST}
|
||||||
|
yum -y install binutils gcc gcc-c++
|
||||||
|
fi
|
||||||
|
INSTALL_LIST="percona-postgresql-common clang-devel llvm-devel percona-postgresql11-devel git rpm-build rpmdevtools wget gcc make autoconf"
|
||||||
|
yum -y install ${INSTALL_LIST}
|
||||||
|
|
||||||
|
else
|
||||||
|
export DEBIAN=$(lsb_release -sc)
|
||||||
|
export ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||||
|
apt-get -y install gnupg2
|
||||||
|
add_percona_apt_repo
|
||||||
|
apt-get update || true
|
||||||
|
LLVM_EXISTS=$(grep -c "apt.llvm.org" /etc/apt/sources.list)
|
||||||
|
if [ ${LLVM_EXISTS} = 0 ]; then
|
||||||
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
||||||
|
echo "deb http://apt.llvm.org/${DEBIAN}/ llvm-toolchain-${DEBIAN}-7 main" >> /etc/apt/sources.list
|
||||||
|
echo "deb-src http://apt.llvm.org/${DEBIAN}/ llvm-toolchain-${DEBIAN}-7 main" >> /etc/apt/sources.list
|
||||||
|
apt-get --allow-unauthenticated update
|
||||||
|
fi
|
||||||
|
apt-get update || true
|
||||||
|
INSTALL_LIST="build-essential percona-postgresql-11 debconf debhelper clang-7 devscripts dh-exec dh-systemd git wget libkrb5-dev libssl-dev percona-postgresql-common percona-postgresql-server-dev-all"
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get -y --allow-unauthenticated install ${INSTALL_LIST}
|
||||||
|
INSTALL_LIST="build-essential debconf debhelper devscripts dh-exec dh-systemd git wget libxml-checker-perl libxml-libxml-perl libio-socket-ssl-perl libperl-dev libssl-dev libxml2-dev txt2man zlib1g-dev libpq-dev"
|
||||||
|
until DEBIAN_FRONTEND=noninteractive apt-get -y --allow-unauthenticated install ${INSTALL_LIST}; do
|
||||||
|
sleep 1
|
||||||
|
echo "waiting"
|
||||||
|
done
|
||||||
|
apt-get -y --allow-unauthenticated install libmysqlclient-dev || true
|
||||||
|
apt-get -y --allow-unauthenticated install default-libmysqlclient-dev || true
|
||||||
|
fi
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
get_tar(){
|
||||||
|
TARBALL=$1
|
||||||
|
TARFILE=$(basename $(find $WORKDIR/$TARBALL -name 'percona-pg-stat-monitor*.tar.gz' | sort | tail -n1))
|
||||||
|
if [ -z $TARFILE ]
|
||||||
|
then
|
||||||
|
TARFILE=$(basename $(find $CURDIR/$TARBALL -name 'percona-pg-stat-monitor*.tar.gz' | sort | tail -n1))
|
||||||
|
if [ -z $TARFILE ]
|
||||||
|
then
|
||||||
|
echo "There is no $TARBALL for build"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
cp $CURDIR/$TARBALL/$TARFILE $WORKDIR/$TARFILE
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cp $WORKDIR/$TARBALL/$TARFILE $WORKDIR/$TARFILE
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
get_deb_sources(){
|
||||||
|
param=$1
|
||||||
|
echo $param
|
||||||
|
FILE=$(basename $(find $WORKDIR/source_deb -name "percona-pg-stat-monitor*.$param" | sort | tail -n1))
|
||||||
|
if [ -z $FILE ]
|
||||||
|
then
|
||||||
|
FILE=$(basename $(find $CURDIR/source_deb -name "percona-pg-stat-monitor*.$param" | sort | tail -n1))
|
||||||
|
if [ -z $FILE ]
|
||||||
|
then
|
||||||
|
echo "There is no sources for build"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
cp $CURDIR/source_deb/$FILE $WORKDIR/
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cp $WORKDIR/source_deb/$FILE $WORKDIR/
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
build_srpm(){
|
||||||
|
if [ $SRPM = 0 ]
|
||||||
|
then
|
||||||
|
echo "SRC RPM will not be created"
|
||||||
|
return;
|
||||||
|
fi
|
||||||
|
if [ "x$OS" = "xdeb" ]
|
||||||
|
then
|
||||||
|
echo "It is not possible to build src rpm here"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cd $WORKDIR
|
||||||
|
get_tar "source_tarball"
|
||||||
|
rm -fr rpmbuild
|
||||||
|
ls | grep -v tar.gz | xargs rm -rf
|
||||||
|
TARFILE=$(find . -name 'percona-pg-stat-monitor*.tar.gz' | sort | tail -n1)
|
||||||
|
SRC_DIR=${TARFILE%.tar.gz}
|
||||||
|
#
|
||||||
|
mkdir -vp rpmbuild/{SOURCES,SPECS,BUILD,SRPMS,RPMS}
|
||||||
|
tar vxzf ${WORKDIR}/${TARFILE} --wildcards '*/rpm' --strip=1
|
||||||
|
#
|
||||||
|
cp -av rpm/* rpmbuild/SOURCES
|
||||||
|
cp -av rpm/*.spec rpmbuild/SPECS
|
||||||
|
#
|
||||||
|
mv -fv ${TARFILE} ${WORKDIR}/rpmbuild/SOURCES
|
||||||
|
rpmbuild -bs --define "_topdir ${WORKDIR}/rpmbuild" --define "dist .generic" \
|
||||||
|
--define "version ${VERSION}" rpmbuild/SPECS/pg-stat-monitor.spec
|
||||||
|
mkdir -p ${WORKDIR}/srpm
|
||||||
|
mkdir -p ${CURDIR}/srpm
|
||||||
|
cp rpmbuild/SRPMS/*.src.rpm ${CURDIR}/srpm
|
||||||
|
cp rpmbuild/SRPMS/*.src.rpm ${WORKDIR}/srpm
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
build_rpm(){
|
||||||
|
if [ $RPM = 0 ]
|
||||||
|
then
|
||||||
|
echo "RPM will not be created"
|
||||||
|
return;
|
||||||
|
fi
|
||||||
|
if [ "x$OS" = "xdeb" ]
|
||||||
|
then
|
||||||
|
echo "It is not possible to build rpm here"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
SRC_RPM=$(basename $(find $WORKDIR/srpm -name 'percona-pg-stat-monitor*.src.rpm' | sort | tail -n1))
|
||||||
|
if [ -z $SRC_RPM ]
|
||||||
|
then
|
||||||
|
SRC_RPM=$(basename $(find $CURDIR/srpm -name 'percona-pg-stat-monitor*.src.rpm' | sort | tail -n1))
|
||||||
|
if [ -z $SRC_RPM ]
|
||||||
|
then
|
||||||
|
echo "There is no src rpm for build"
|
||||||
|
echo "You can create it using key --build_src_rpm=1"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
cp $CURDIR/srpm/$SRC_RPM $WORKDIR
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cp $WORKDIR/srpm/$SRC_RPM $WORKDIR
|
||||||
|
fi
|
||||||
|
cd $WORKDIR
|
||||||
|
rm -fr rpmbuild
|
||||||
|
mkdir -vp rpmbuild/{SOURCES,SPECS,BUILD,SRPMS,RPMS}
|
||||||
|
cp $SRC_RPM rpmbuild/SRPMS/
|
||||||
|
|
||||||
|
cd rpmbuild/SRPMS/
|
||||||
|
#
|
||||||
|
cd $WORKDIR
|
||||||
|
RHEL=$(rpm --eval %rhel)
|
||||||
|
ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||||
|
if [ -f /opt/rh/devtoolset-7/enable ]; then
|
||||||
|
source /opt/rh/devtoolset-7/enable
|
||||||
|
source /opt/rh/llvm-toolset-7/enable
|
||||||
|
fi
|
||||||
|
export LIBPQ_DIR=/usr/pgsql-11/
|
||||||
|
export LIBRARY_PATH=/usr/pgsql-11/lib/:/usr/pgsql-11/include/
|
||||||
|
rpmbuild --define "_topdir ${WORKDIR}/rpmbuild" --define "dist .$OS_NAME" --define "version ${VERSION}" --rebuild rpmbuild/SRPMS/$SRC_RPM
|
||||||
|
|
||||||
|
return_code=$?
|
||||||
|
if [ $return_code != 0 ]; then
|
||||||
|
exit $return_code
|
||||||
|
fi
|
||||||
|
mkdir -p ${WORKDIR}/rpm
|
||||||
|
mkdir -p ${CURDIR}/rpm
|
||||||
|
cp rpmbuild/RPMS/*/*.rpm ${WORKDIR}/rpm
|
||||||
|
cp rpmbuild/RPMS/*/*.rpm ${CURDIR}/rpm
|
||||||
|
}
|
||||||
|
|
||||||
|
build_source_deb(){
|
||||||
|
if [ $SDEB = 0 ]
|
||||||
|
then
|
||||||
|
echo "source deb package will not be created"
|
||||||
|
return;
|
||||||
|
fi
|
||||||
|
if [ "x$OS" = "xrpm" ]
|
||||||
|
then
|
||||||
|
echo "It is not possible to build source deb here"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -rf percona-pg-stat-monitor*
|
||||||
|
get_tar "source_tarball"
|
||||||
|
rm -f *.dsc *.orig.tar.gz *.debian.tar.gz *.changes
|
||||||
|
#
|
||||||
|
TARFILE=$(basename $(find . -name 'percona-pg-stat-monitor*.tar.gz' | sort | tail -n1))
|
||||||
|
DEBIAN=$(lsb_release -sc)
|
||||||
|
ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||||
|
tar zxf ${TARFILE}
|
||||||
|
BUILDDIR=${TARFILE%.tar.gz}
|
||||||
|
#
|
||||||
|
|
||||||
|
mv ${TARFILE} percona-pg-stat-monitor_${VERSION}.orig.tar.gz
|
||||||
|
cd ${BUILDDIR}
|
||||||
|
|
||||||
|
cd debian
|
||||||
|
rm -rf changelog
|
||||||
|
echo "percona-pg-stat-monitor (${VERSION}-${RELEASE}) unstable; urgency=low" >> changelog
|
||||||
|
echo " * Initial Release." >> changelog
|
||||||
|
echo " -- Oleksandr Miroshnychenko <alex.miroshnychenko@percona.com> $(date -R)" >> changelog
|
||||||
|
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
dch -D unstable --force-distribution -v "${VERSION}-${RELEASE}" "Update to new percona-pg-stat-monitor version ${VERSION}"
|
||||||
|
dpkg-buildpackage -S
|
||||||
|
cd ../
|
||||||
|
mkdir -p $WORKDIR/source_deb
|
||||||
|
mkdir -p $CURDIR/source_deb
|
||||||
|
cp *.debian.tar.* $WORKDIR/source_deb
|
||||||
|
cp *_source.changes $WORKDIR/source_deb
|
||||||
|
cp *.dsc $WORKDIR/source_deb
|
||||||
|
cp *.orig.tar.gz $WORKDIR/source_deb
|
||||||
|
cp *.debian.tar.* $CURDIR/source_deb
|
||||||
|
cp *_source.changes $CURDIR/source_deb
|
||||||
|
cp *.dsc $CURDIR/source_deb
|
||||||
|
cp *.orig.tar.gz $CURDIR/source_deb
|
||||||
|
}
|
||||||
|
|
||||||
|
build_deb(){
|
||||||
|
if [ $DEB = 0 ]
|
||||||
|
then
|
||||||
|
echo "source deb package will not be created"
|
||||||
|
return;
|
||||||
|
fi
|
||||||
|
if [ "x$OS" = "xrmp" ]
|
||||||
|
then
|
||||||
|
echo "It is not possible to build source deb here"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
for file in 'dsc' 'orig.tar.gz' 'changes' 'debian.tar*'
|
||||||
|
do
|
||||||
|
get_deb_sources $file
|
||||||
|
done
|
||||||
|
cd $WORKDIR
|
||||||
|
rm -fv *.deb
|
||||||
|
#
|
||||||
|
export DEBIAN=$(lsb_release -sc)
|
||||||
|
export ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||||
|
#
|
||||||
|
echo "DEBIAN=${DEBIAN}" >> pg-stat-monitor.properties
|
||||||
|
echo "ARCH=${ARCH}" >> pg-stat-monitor.properties
|
||||||
|
|
||||||
|
#
|
||||||
|
DSC=$(basename $(find . -name '*.dsc' | sort | tail -n1))
|
||||||
|
#
|
||||||
|
dpkg-source -x ${DSC}
|
||||||
|
#
|
||||||
|
cd percona-pg-stat-monitor-${VERSION}
|
||||||
|
dch -m -D "${DEBIAN}" --force-distribution -v "1:${VERSION}-${RELEASE}.${DEBIAN}" 'Update distribution'
|
||||||
|
unset $(locale|cut -d= -f1)
|
||||||
|
dpkg-buildpackage -rfakeroot -us -uc -b
|
||||||
|
mkdir -p $CURDIR/deb
|
||||||
|
mkdir -p $WORKDIR/deb
|
||||||
|
cp $WORKDIR/*.*deb $WORKDIR/deb
|
||||||
|
cp $WORKDIR/*.*deb $CURDIR/deb
|
||||||
|
}
|
||||||
|
#main
|
||||||
|
|
||||||
|
CURDIR=$(pwd)
|
||||||
|
VERSION_FILE=$CURDIR/pg-stat-monitor.properties
|
||||||
|
args=
|
||||||
|
WORKDIR=
|
||||||
|
SRPM=0
|
||||||
|
SDEB=0
|
||||||
|
RPM=0
|
||||||
|
DEB=0
|
||||||
|
SOURCE=0
|
||||||
|
OS_NAME=
|
||||||
|
ARCH=
|
||||||
|
OS=
|
||||||
|
INSTALL=0
|
||||||
|
RPM_RELEASE=1
|
||||||
|
DEB_RELEASE=1
|
||||||
|
REVISION=0
|
||||||
|
BRANCH="master"
|
||||||
|
REPO="https://github.com/Percona-Lab/pg_stat_monitor.git"
|
||||||
|
PRODUCT=percona-pg-stat-monitor
|
||||||
|
DEBUG=0
|
||||||
|
parse_arguments PICK-ARGS-FROM-ARGV "$@"
|
||||||
|
VERSION='1.0.0'
|
||||||
|
RELEASE='1'
|
||||||
|
PRODUCT_FULL=${PRODUCT}-${VERSION}-${RELEASE}
|
||||||
|
|
||||||
|
check_workdir
|
||||||
|
get_system
|
||||||
|
install_deps
|
||||||
|
get_sources
|
||||||
|
build_srpm
|
||||||
|
build_source_deb
|
||||||
|
build_rpm
|
||||||
|
build_deb
|
Loading…
Reference in New Issue