3 changed files with 229 additions and 0 deletions
@ -0,0 +1,32 @@
|
||||
Index: build.sh
|
||||
--- build.sh.orig 2019-01-16 11:57:44.000000000 +0100
|
||||
+++ build.sh 2019-02-10 19:53:00.000857000 +0100
|
||||
@@ -7,7 +7,7 @@
|
||||
set -e
|
||||
|
||||
mydir=$(dirname $0)
|
||||
-GIT_COMMIT=$(git rev-parse HEAD)
|
||||
+GIT_COMMIT=000000
|
||||
RELEASE_VERSION=
|
||||
RELEASE_SUBVERSION=
|
||||
TOPDIR=/tmp/orchestrator-release
|
||||
@@ -56,8 +56,8 @@
|
||||
ok=1
|
||||
fi
|
||||
|
||||
- if ! go version | egrep -q 'go(1\.(8|9|1[0]))' ; then
|
||||
- echo "go version must be between 1.8 and 1.10"
|
||||
+ if ! go version | egrep -q 'go(1\.(8|9|1[0]|11))' ; then
|
||||
+ echo "go version must be between 1.8 and 1.11"
|
||||
ok=1
|
||||
fi
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
prefix="$4"
|
||||
ldflags="-X main.AppVersion=${RELEASE_VERSION} -X main.GitCommit=${GIT_COMMIT}"
|
||||
echo "Building via $(go version)"
|
||||
- gobuild="go build -i ${opt_race} -ldflags \"$ldflags\" -o $builddir/orchestrator${prefix}/orchestrator/orchestrator go/cmd/orchestrator/main.go"
|
||||
+ gobuild="go build -v ${opt_race} -ldflags \"$ldflags\" -o $builddir/orchestrator${prefix}/orchestrator/orchestrator go/cmd/orchestrator/main.go"
|
||||
|
||||
case $os in
|
||||
'linux')
|
@ -0,0 +1,138 @@
|
||||
## |
||||
## orchestrator.spec -- OpenPKG RPM Package Specification |
||||
## Copyright (c) 2000-2019 OpenPKG Project <http://openpkg.org/> |
||||
## |
||||
## Permission to use, copy, modify, and distribute this software for |
||||
## any purpose with or without fee is hereby granted, provided that |
||||
## the above copyright notice and this permission notice appear in all |
||||
## copies. |
||||
## |
||||
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
||||
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
||||
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
||||
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
||||
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
||||
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
||||
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
||||
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
## SUCH DAMAGE. |
||||
## |
||||
|
||||
# package information |
||||
Name: orchestrator |
||||
Summary: MySQL Cluster Node Orchestrator |
||||
URL: https://github.com/github/orchestrator |
||||
Vendor: GitHub |
||||
Packager: OpenPKG Project |
||||
Distribution: OpenPKG Community |
||||
Class: EVAL |
||||
Group: RDBMS |
||||
License: Apache |
||||
Version: 3.0.14 |
||||
Release: 20190210 |
||||
|
||||
# list of sources |
||||
Source0: https://github.com/github/orchestrator/archive/v%{version}.tar.gz |
||||
Source1: rc.orchestrator |
||||
Patch0: orchestrator.patch |
||||
|
||||
# build information |
||||
BuildPreReq: OpenPKG, openpkg >= 20160101, go |
||||
PreReq: OpenPKG, openpkg >= 20160101 |
||||
|
||||
%description |
||||
Orchestrator is Github's MySQL High Availability (HA) and |
||||
replication management tool, allowing for Discovery, Refactoring |
||||
andf Recovery of nodes in a MySQL cluster. |
||||
|
||||
%track |
||||
prog orchestrator = { |
||||
version = %{version} |
||||
url = https://github.com/github/orchestrator/releases |
||||
regex = v(__VER__)\.tar\.gz |
||||
} |
||||
|
||||
%prep |
||||
%setup -q |
||||
%patch -p0 |
||||
|
||||
%build |
||||
# remove problematic files |
||||
rm -f vendor/github.com/mattn/go-sqlite3/sqlite3_go18* |
||||
|
||||
# provide Go build environment |
||||
export GOPATH=`pwd` |
||||
mkdir -p $GOPATH/.src/github.com/github/orchestrator |
||||
mv * $GOPATH/.src/github.com/github/orchestrator/ |
||||
mv $GOPATH/.src $GOPATH/src |
||||
|
||||
# build program |
||||
( cd $GOPATH/src/github.com/github/orchestrator |
||||
go build -v \ |
||||
-ldflags "-X main.AppVersion=%{version} -X main.GitCommit=000000" \ |
||||
-o orchestrator go/cmd/orchestrator/main.go |
||||
) || exit $? |
||||
|
||||
%install |
||||
# create installation hierarchy |
||||
%{l_shtool} mkdir -f -p -m 755 \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/sbin \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/orchestrator \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/lib/orchestrator \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/orchestrator/log \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/orchestrator/run |
||||
|
||||
# install program |
||||
%{l_shtool} install -c -s -m 755 \ |
||||
src/github.com/github/orchestrator/orchestrator \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/sbin/ |
||||
|
||||
# install resources |
||||
cp -rp src/github.com/github/orchestrator/resources/* \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/lib/orchestrator/ |
||||
|
||||
# install default configuration |
||||
%{l_shtool} install -c -m 644 \ |
||||
-e 's;/usr/local/orchestrator/orchestrator\.sqlite3;%{l_prefix}/var/orchestrator/run/orchestrator.db;' \ |
||||
-e 's;/tmp/recovery\.log;%{l_prefix}/var/orchestrator/log/orchestrator.recovery.log;' \ |
||||
src/github.com/github/orchestrator/conf/orchestrator-sample-sqlite.conf.json \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/orchestrator/orchestrator.json |
||||
|
||||
# install run-command script |
||||
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
||||
%{SOURCE rc.orchestrator} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
||||
|
||||
# determine installation files |
||||
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
||||
%{l_files_std} \ |
||||
'%config %{l_prefix}/etc/orchestrator/*' \ |
||||
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/orchestrator' \ |
||||
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/orchestrator/*' |
||||
|
||||
%files -f files |
||||
|
||||
%clean |
||||
|
||||
%post |
||||
if [ $1 -eq 2 ]; then |
||||
# after upgrade, restart service |
||||
eval `%{l_rc} orchestrator status 2>/dev/null` |
||||
[ ".$orchestrator_active" = .yes ] && %{l_rc} orchestrator restart |
||||
fi |
||||
exit 0 |
||||
|
||||
%preun |
||||
if [ $1 -eq 0 ]; then |
||||
# before erase, stop service and remove log files |
||||
%{l_rc} orchestrator stop 2>/dev/null |
||||
|
||||
# remove run-time files |
||||
rm -f $RPM_INSTALL_PREFIX/var/orchestrator/log/* >/dev/null 2>&1 || true |
||||
rm -f $RPM_INSTALL_PREFIX/var/orchestrator/run/* >/dev/null 2>&1 || true |
||||
fi |
||||
exit 0 |
||||
|
@ -0,0 +1,59 @@
|
||||
#!@l_prefix@/bin/openpkg rc |
||||
## |
||||
## rc.orchestrator -- Run-Commands |
||||
## |
||||
|
||||
%config |
||||
orchestrator_enable="$openpkg_rc_def" |
||||
orchestrator_flags="" |
||||
orchestrator_log_rotsteps="10" |
||||
orchestrator_log_rotminsize="10M" |
||||
orchestrator_log_rotcomplevel="9" |
||||
orchestrator_log_rotprolog="true" |
||||
orchestrator_log_rotepilog="true" |
||||
|
||||
%common |
||||
orchestrator_cfgfile="@l_prefix@/etc/orchestrator/orchestrator.json" |
||||
orchestrator_pidfile="@l_prefix@/var/orchestrator/run/orchestrator.pid" |
||||
orchestrator_logfile="@l_prefix@/var/orchestrator/log/orchestrator.log" |
||||
|
||||
%status -u @l_susr@ -o |
||||
orchestrator_usable="no" |
||||
orchestrator_active="no" |
||||
[ -f $orchestrator_pidfile ] && \ |
||||
kill -0 `cat $orchestrator_pidfile` && \ |
||||
orchestrator_active="yes" |
||||
echo "orchestrator_enable=\"$orchestrator_enable\"" |
||||
echo "orchestrator_usable=\"$orchestrator_usable\"" |
||||
echo "orchestrator_active=\"$orchestrator_active\"" |
||||
|
||||
%start -u @l_rusr@ |
||||
rcService orchestrator enable yes || exit 0 |
||||
rcService orchestrator active yes && exit 0 |
||||
( cd @l_prefix@/lib/orchestrator |
||||
nohup @l_prefix@/sbin/orchestrator $orchestrator_flags \ |
||||
</dev/null >>$orchestrator_logfile 2>&1 & |
||||
echo $! >$orchestrator_pidfile |
||||
) >/dev/null 2>&1 |
||||
|
||||
%stop -u @l_rusr@ |
||||
rcService orchestrator enable yes || exit 0 |
||||
rcService orchestrator active no && exit 0 |
||||
[ -f $orchestrator_pidfile ] && \ |
||||
kill -TERM `cat $orchestrator_pidfile` |
||||
sleep 2 |
||||
|
||||
%restart -u @l_rusr@ |
||||
rcService orchestrator enable yes || exit 0 |
||||
rcService orchestrator active no && exit 0 |
||||
rc orchestrator stop start |
||||
|
||||
%daily -u @l_susr@ |
||||
rcService orchestrator enable yes || exit 0 |
||||
shtool rotate -f \ |
||||
-n $orchestrator_log_rotsteps -s $orchestrator_log_rotminsize -d \ |
||||
-z $orchestrator_log_rotcomplevel -o @l_rusr@ -g @l_rgrp@ -m 644 \ |
||||
-P "$orchestrator_log_rotprolog" \ |
||||
-E "$orchestrator_log_rotepilog; rc orchestrator restart" \ |
||||
$orchestrator_logfile |
||||
|
Loading…
Reference in new issue