Merge pull request #3776 from sysown/build-opensuse15

add opensuse15 builds
pull/3784/head
Miro Stauder 4 years ago committed by GitHub
commit 4e50150220
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -187,7 +187,7 @@ clean:
packages: amd64-packages arm64-packages
.PHONY: packages
amd64-packages: centos6 centos6-dbg centos6.7 centos6.7-dbg centos7 centos7-dbg centos8 centos8-clang centos8-dbg ubuntu14 ubuntu14-dbg ubuntu16 ubuntu16-dbg ubuntu18 ubuntu18-dbg ubuntu20 ubuntu20-clang ubuntu20-dbg debian8 debian8-dbg debian9 debian9-dbg debian10 debian10-dbg debian11 debian11-clang debian11-dbg fedora24 fedora24-dbg fedora27 fedora27-dbg fedora28 fedora28-dbg fedora33 fedora33-dbg fedora34 fedora34-clang fedora34-dbg
amd64-packages: centos6 centos6-dbg centos6.7 centos6.7-dbg centos7 centos7-dbg centos8 centos8-clang centos8-dbg ubuntu14 ubuntu14-dbg ubuntu16 ubuntu16-dbg ubuntu18 ubuntu18-dbg ubuntu20 ubuntu20-clang ubuntu20-dbg debian8 debian8-dbg debian9 debian9-dbg debian10 debian10-dbg debian11 debian11-clang debian11-dbg fedora24 fedora24-dbg fedora27 fedora27-dbg fedora28 fedora28-dbg fedora33 fedora33-dbg fedora34 fedora34-clang fedora34-dbg opensuse15 opensuse15-clang opensuse15-dbg
.PHONY: amd64-packages
arm64-packages: centos7-arm64 centos8-arm64 debian9-arm64 debian10-arm64 debian11-arm64 ubuntu18-arm64 ubuntu20-arm64 fedora32-arm64 fedora33-arm64
@ -374,6 +374,16 @@ debian11-dbg: binaries/proxysql_${CURVER}-dbg-debian11_amd64.deb
.PHONY: debian11-dbg
opensuse15: binaries/proxysql-${CURVER}-1-opensuse15.x86_64.rpm
.PHONY: opensuse15
opensuse15-clang: binaries/proxysql-${CURVER}-1-opensuse15-clang.x86_64.rpm
.PHONY: opensuse15-clang
opensuse15-dbg: binaries/proxysql-${CURVER}-1-opensuse15-dbg.x86_64.rpm
.PHONY: opensuse15-dbg
binaries/proxysql-${CURVER}-1-centos5.x86_64.rpm:
docker-compose up centos5_build
@ -615,6 +625,19 @@ binaries/proxysql_${CURVER}-dbg-debian11_amd64.deb:
docker-compose rm -f
binaries/proxysql-${CURVER}-1-opensuse15.x86_64.rpm:
docker-compose up opensuse15_build
docker-compose rm -f
binaries/proxysql-${CURVER}-1-opensuse15-clang.x86_64.rpm:
docker-compose up opensuse15_clang_build
docker-compose rm -f
binaries/proxysql-${CURVER}-1-opensuse15-dbg.x86_64.rpm:
docker-compose up opensuse15_dbg_build
docker-compose rm -f
.PHONY: cleanall
cleanall:

1
deps/Makefile vendored

@ -45,6 +45,7 @@ libinjection/libinjection/src/libinjection.a:
ifneq ($(CENTOSVER),6)
cd libinjection/libinjection && patch -p1 < ../update-build-py3.diff
endif
sed -i 's/CC=/CC?=/' libinjection/libinjection/src/Makefile
cd libinjection/libinjection && CC=${CC} CXX=${CXX} ${MAKE}
libinjection: libinjection/libinjection/src/libinjection.a

@ -141,8 +141,6 @@ services:
- MAKE
- MAKEOPT
- CURVER
- CC=clang
- CXX=clang++
- PKG_RELEASE=centos8-clang
- PROXYSQL_BUILD_TYPE=clickhouse
- PROXYSQL_BUILD_ARCH=x86_64
@ -367,8 +365,6 @@ services:
- MAKE
- MAKEOPT
- CURVER
- CC=clang
- CXX=clang++
- PKG_RELEASE=fedora34-clang
- PROXYSQL_BUILD_TYPE=clickhouse
- PROXYSQL_BUILD_ARCH=x86_64
@ -576,8 +572,6 @@ services:
- MAKE
- MAKEOPT
- CURVER
- CC=clang
- CXX=clang++
- PKG_RELEASE=debian11-clang
- PROXYSQL_BUILD_TYPE=clickhouse
- PROXYSQL_BUILD_ARCH=amd64
@ -753,8 +747,6 @@ services:
- MAKE
- MAKEOPT
- CURVER
- CC=clang
- CXX=clang++
- PKG_RELEASE=ubuntu20-clang
- PROXYSQL_BUILD_TYPE=clickhouse
- PROXYSQL_BUILD_ARCH=amd64
@ -792,3 +784,51 @@ services:
- PROXYSQL_BUILD_ARCH=amd64
command:
- /opt/entrypoint/entrypoint.bash
opensuse15_build:
image: proxysql/packaging:build-opensuse15
volumes:
- ./docker/images/proxysql/suse-compliant/rpmmacros/:/root/
- ./docker/images/proxysql/suse-compliant/entrypoint/:/opt/entrypoint/
- ./:/opt/proxysql/
environment:
- MAKE
- MAKEOPT
- CURVER
- PKG_RELEASE=opensuse15
- PROXYSQL_BUILD_TYPE=clickhouse
- PROXYSQL_BUILD_ARCH=x86_64
command:
- /opt/entrypoint/entrypoint.bash
opensuse15_clang_build:
image: proxysql/packaging:build-clang-opensuse15
volumes:
- ./docker/images/proxysql/suse-compliant/rpmmacros/:/root/
- ./docker/images/proxysql/suse-compliant/entrypoint/:/opt/entrypoint/
- ./:/opt/proxysql/
environment:
- MAKE
- MAKEOPT
- CURVER
- PKG_RELEASE=opensuse15-clang
- PROXYSQL_BUILD_TYPE=clickhouse
- PROXYSQL_BUILD_ARCH=x86_64
command:
- /opt/entrypoint/entrypoint.bash
opensuse15_dbg_build:
image: proxysql/packaging:build-opensuse15
volumes:
- ./docker/images/proxysql/suse-compliant/rpmmacros/:/root/
- ./docker/images/proxysql/suse-compliant/entrypoint/:/opt/entrypoint/
- ./:/opt/proxysql/
environment:
- MAKE
- MAKEOPT
- CURVER
- PKG_RELEASE=dbg-opensuse15
- PROXYSQL_BUILD_TYPE=debug
- PROXYSQL_BUILD_ARCH=x86_64
command:
- /opt/entrypoint/entrypoint.bash

@ -0,0 +1,62 @@
#!/bin/bash
set -eu
echo "==> Build environment:"
env
ARCH=$PROXYSQL_BUILD_ARCH
echo "==> $ARCH architecture detected for package"
echo -e "==> C compiler: ${CC} -> $(readlink -e $(which ${CC}))\n$(${CC} --version)"
echo -e "==> C++ compiler: ${CXX} -> $(readlink -e $(which ${CXX}))\n$(${CXX} --version)"
#echo -e "==> linker version:\n$ ${LD} -> $(readlink -e $(which ${LD}))\n$(${LD} --version)"
echo "==> Cleaning"
# Delete package if exists
rm -f /opt/proxysql/binaries/proxysql-${CURVER}-1-${PKG_RELEASE}.$ARCH.rpm || true
# Cleanup relic directories from a previously failed build
rm -fr /root/.pki /root/rpmbuild/{BUILDROOT,RPMS,SRPMS,BUILD,SOURCES,tmp} /opt/proxysql/proxysql /opt/proxysql/proxysql-${CURVER} || true
# Clean and build dependancies and source
echo "==> Building"
cd /opt/proxysql
if [[ -z ${PROXYSQL_BUILD_TYPE:-} ]] ; then
deps_target="build_deps"
build_target=""
else
deps_target="build_deps_$PROXYSQL_BUILD_TYPE"
build_target="$PROXYSQL_BUILD_TYPE"
fi
${MAKE} cleanbuild
${MAKE} ${MAKEOPT} "${deps_target}"
if [[ -z ${build_target} ]] ; then
${MAKE} ${MAKEOPT}
else
${MAKE} ${MAKEOPT} "${build_target}"
fi
touch /opt/proxysql/src/proxysql
# Prepare package files and build RPM
echo "==> Packaging"
# prepare build root
cd /opt/proxysql
rm -fr /root/.pki /root/rpmbuild/{BUILDROOT,RPMS,SRPMS,BUILD,SOURCES,tmp} ./proxysql-${CURVER}
mkdir -p /root/rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS,tmp}
chown -R root:root /root/rpmbuild/SPECS
mkdir -p proxysql-${CURVER}/usr/bin proxysql-${CURVER}/etc proxysql-${CURVER}/usr/share/proxysql/tools
# prepare files
cp src/proxysql proxysql-${CURVER}/usr/bin/
cp -a systemd proxysql-${CURVER}/etc/
cp -a etc/proxysql.cnf proxysql-${CURVER}/etc/
cp -a etc/logrotate.d proxysql-${CURVER}/etc/
cp -a tools/proxysql_galera_checker.sh tools/proxysql_galera_writer.pl proxysql-${CURVER}/usr/share/proxysql/tools
tar czvf "proxysql-${CURVER}.tar.gz" proxysql-${CURVER}
mv "/opt/proxysql/proxysql-${CURVER}.tar.gz" /root/rpmbuild/SOURCES
# build package
#cd /root/rpmbuild && rpmbuild -bb SPECS/proxysql.spec --define "version ${CURVER}"
rpmbuild -bb --define "version ${CURVER}" /root/rpmbuild/SPECS/proxysql.spec
mv /root/rpmbuild/RPMS/${ARCH}/proxysql-${CURVER}-1.${ARCH}.rpm .//binaries/proxysql-${CURVER}-1-${PKG_RELEASE}.${ARCH}.rpm
cp ./src/proxysql.sha1 ./binaries/proxysql-${CURVER}-1-${PKG_RELEASE}.${ARCH}.id-hash
# cleanup
rm -fr /root/.pki /root/rpmbuild/{BUILDROOT,RPMS,SRPMS,BUILD,SOURCES,tmp} ./proxysql-${CURVER}

@ -0,0 +1,2 @@
%_topdir %(echo $HOME)/rpmbuild
%_tmppath %{_topdir}/tmp

@ -0,0 +1,91 @@
%define __spec_install_post %{nil}
%define debug_package %{nil}
%define __os_install_post %{_dbpath}/brp-compress
Summary: A high-performance MySQL proxy
Name: proxysql
Version: %{version}
Release: 1
License: GPL+
Group: Development/Tools
SOURCE0 : %{name}-%{version}.tar.gz
URL: https://proxysql.com/
Requires: gnutls
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%description
%{summary}
%prep
%setup -q
%pre
# Cleanup artifacts
if [ -f /var/lib/%{name}/PROXYSQL_UPGRADE ]; then
rm -fr /var/lib/%{name}/PROXYSQL_UPGRADE
fi
%build
# Packages are pre-built, nothing to do
%install
# Clean buildroot and install files
/bin/rm -rf %{buildroot}
/bin/mkdir -p %{buildroot}
/bin/cp -a * %{buildroot}
%clean
/bin/rm -rf %{buildroot}
%post
# Create relevant user, directories and configuration files
if [ ! -d /var/run/%{name} ]; then /bin/mkdir /var/run/%{name} ; fi
if [ ! -d /var/lib/%{name} ]; then /bin/mkdir /var/lib/%{name} ; fi
if ! id -u %{name} > /dev/null 2>&1; then useradd -r -U -s /bin/false -d /var/lib/%{name} -c "ProxySQL Server" %{name}; fi
/bin/chown -R %{name}: /var/lib/%{name} /var/run/%{name}
/bin/chown root:%{name} /etc/%{name}.cnf
/bin/chmod 640 /etc/%{name}.cnf
# Configure systemd appropriately.
/bin/systemctl daemon-reload
/bin/systemctl enable %{name}.service
# Notify that a package update is in progress in order to start service.
if [ $1 -eq 2 ]; then /bin/touch /var/lib/%{name}/PROXYSQL_UPGRADE ; fi
%preun
# When uninstalling always try stop the service, ignore failures
/bin/systemctl stop %{name} || true
%postun
if [ $1 -eq 0 ]; then
# This is a pure uninstall, systemd unit file removed
# only daemon-reload is needed.
/bin/systemctl daemon-reload
else
# This is an upgrade, ProxySQL should be started. This
# logic works for packages newer than 2.0.7 and ensures
# a faster restart time.
/bin/systemctl start %{name}.service
/bin/rm -fr /var/lib/%{name}/PROXYSQL_UPGRADE
fi
%posttrans
if [ -f /var/lib/%{name}/PROXYSQL_UPGRADE ]; then
# This is a safeguard to start the service after an update
# which supports legacy "preun" / "postun" logic and will
# only execute for packages before 2.0.7.
/bin/systemctl start %{name}.service
/bin/rm -fr /var/lib/%{name}/PROXYSQL_UPGRADE
fi
%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}.cnf
%attr(640,root,%{name}) %{_sysconfdir}/%{name}.cnf
%config(noreplace) %attr(640,root,%{name}) %{_sysconfdir}/logrotate.d/%{name}
%{_bindir}/*
%{_sysconfdir}/systemd/system/%{name}.service
%{_sysconfdir}/systemd/system/%{name}-initial.service
/usr/share/proxysql/tools/proxysql_galera_checker.sh
/usr/share/proxysql/tools/proxysql_galera_writer.pl
%changelog
Loading…
Cancel
Save