mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-01 13:45:53 +00:00
We recently introduced fstrim cronjob / systemd timer unit, but some of distributions already has their own fstrim cronjob / systemd timer unit. So let's use them when it's posssible. Fixes #2233 Signed-off-by: Takuya ASADA <syuu@scylladb.com> Message-Id: <1491226727-10507-1-git-send-email-syuu@scylladb.com>
159 lines
6.8 KiB
Bash
Executable File
159 lines
6.8 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
. /etc/os-release
|
|
print_usage() {
|
|
echo "build_deb.sh --rebuild-dep"
|
|
echo " --dist create a public distribution package"
|
|
echo " --rebuild-dep rebuild dependency packages"
|
|
exit 1
|
|
}
|
|
REBUILD=0
|
|
DIST=0
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
"--rebuild-dep")
|
|
REBUILD=1
|
|
shift 1
|
|
;;
|
|
"--dist")
|
|
DIST=1
|
|
shift 1
|
|
;;
|
|
*)
|
|
print_usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
if [ ! -e dist/debian/build_deb.sh ]; then
|
|
echo "run build_deb.sh in top of scylla dir"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -e debian ] || [ -e build/release ]; then
|
|
rm -rf debian build
|
|
mkdir build
|
|
fi
|
|
sudo apt-get -y update
|
|
if [ ! -f /usr/bin/git ]; then
|
|
sudo apt-get -y install git
|
|
fi
|
|
if [ ! -f /usr/bin/mk-build-deps ]; then
|
|
sudo apt-get -y install devscripts
|
|
fi
|
|
if [ ! -f /usr/bin/equivs-build ]; then
|
|
sudo apt-get -y install equivs
|
|
fi
|
|
if [ ! -f /usr/bin/add-apt-repository ]; then
|
|
sudo apt-get -y install software-properties-common
|
|
fi
|
|
if [ ! -f /usr/bin/wget ]; then
|
|
sudo apt-get -y install wget
|
|
fi
|
|
if [ ! -f /usr/bin/lsb_release ]; then
|
|
sudo apt-get -y install lsb-release
|
|
fi
|
|
|
|
DISTRIBUTION=`lsb_release -i|awk '{print $3}'`
|
|
CODENAME=`lsb_release -c|awk '{print $2}'`
|
|
if [ `grep -c $VERSION_ID dist/debian/supported_release` -lt 1 ]; then
|
|
echo "Unsupported release: $VERSION_ID"
|
|
echo "Pless any key to continue..."
|
|
read input
|
|
fi
|
|
|
|
VERSION=$(./SCYLLA-VERSION-GEN)
|
|
SCYLLA_VERSION=$(cat build/SCYLLA-VERSION-FILE | sed 's/\.rc/~rc/')
|
|
SCYLLA_RELEASE=$(cat build/SCYLLA-RELEASE-FILE)
|
|
echo $VERSION > version
|
|
./scripts/git-archive-all --extra version --force-submodules --prefix scylla-server ../scylla-server_$SCYLLA_VERSION-$SCYLLA_RELEASE.orig.tar.gz
|
|
|
|
cp -a dist/debian/debian debian
|
|
cp dist/common/sysconfig/scylla-server debian/scylla-server.default
|
|
cp dist/debian/changelog.in debian/changelog
|
|
sed -i -e "s/@@VERSION@@/$SCYLLA_VERSION/g" debian/changelog
|
|
sed -i -e "s/@@RELEASE@@/$SCYLLA_RELEASE/g" debian/changelog
|
|
sed -i -e "s/@@CODENAME@@/$CODENAME/g" debian/changelog
|
|
cp dist/debian/rules.in debian/rules
|
|
cp dist/debian/control.in debian/control
|
|
cp dist/debian/scylla-server.install.in debian/scylla-server.install
|
|
if [ "$DISTRIBUTION" = "Debian" ]; then
|
|
sed -i -e "s/@@REVISION@@/1/g" debian/changelog
|
|
sed -i -e "s/@@DH_INSTALLINIT@@//g" debian/rules
|
|
sed -i -e "s/@@COMPILER@@/g++-5/g" debian/rules
|
|
sed -i -e "s/@@BUILD_DEPENDS@@/libsystemd-dev, g++-5, libunwind-dev/g" debian/control
|
|
sed -i -e "s/@@DEPENDS@@//g" debian/control
|
|
sed -i -e "s#@@INSTALL@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@HKDOTTIMER_D@@#dist/common/systemd/scylla-housekeeping-daily.timer /lib/systemd/system#g" debian/scylla-server.install
|
|
sed -i -e "s#@@HKDOTTIMER_R@@#dist/common/systemd/scylla-housekeeping-restart.timer /lib/systemd/system#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SYSCTL@@#dist/debian/sysctl.d/99-scylla.conf etc/sysctl.d#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_SAVE_COREDUMP@@#dist/debian/scripts/scylla_save_coredump usr/lib/scylla#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_FSTRIM@@#dist/debian/scripts/scylla_fstrim usr/lib/scylla#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_DELAY_FSTRIM@@#dist/debian/scripts/scylla_delay_fstrim usr/lib/scylla#g" debian/scylla-server.install
|
|
elif [ "$VERSION_ID" = "14.04" ]; then
|
|
sed -i -e "s/@@REVISION@@/0ubuntu1/g" debian/changelog
|
|
sed -i -e "s/@@DH_INSTALLINIT@@/--upstart-only/g" debian/rules
|
|
sed -i -e "s/@@COMPILER@@/g++-5/g" debian/rules
|
|
sed -i -e "s/@@BUILD_DEPENDS@@/g++-5, libunwind8-dev/g" debian/control
|
|
sed -i -e "s/@@DEPENDS@@/hugepages, num-utils/g" debian/control
|
|
sed -i -e "s#@@INSTALL@@#dist/debian/sudoers.d/scylla etc/sudoers.d#g" debian/scylla-server.install
|
|
sed -i -e "s#@@HKDOTTIMER_D@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@HKDOTTIMER_R@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@SYSCTL@@#dist/debian/sysctl.d/99-scylla.conf etc/sysctl.d#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_SAVE_COREDUMP@@#dist/debian/scripts/scylla_save_coredump usr/lib/scylla#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_FSTRIM@@#dist/debian/scripts/scylla_fstrim usr/lib/scylla#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_DELAY_FSTRIM@@#dist/debian/scripts/scylla_delay_fstrim usr/lib/scylla#g" debian/scylla-server.install
|
|
else
|
|
sed -i -e "s/@@REVISION@@/0ubuntu1/g" debian/changelog
|
|
sed -i -e "s/@@DH_INSTALLINIT@@//g" debian/rules
|
|
sed -i -e "s/@@COMPILER@@/g++/g" debian/rules
|
|
sed -i -e "s/@@BUILD_DEPENDS@@/libsystemd-dev, g++, libunwind-dev/g" debian/control
|
|
sed -i -e "s/@@DEPENDS@@/hugepages, /g" debian/control
|
|
sed -i -e "s#@@INSTALL@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@HKDOTTIMER_D@@#dist/common/systemd/scylla-housekeeping-daily.timer /lib/systemd/system#g" debian/scylla-server.install
|
|
sed -i -e "s#@@HKDOTTIMER_R@@#dist/common/systemd/scylla-housekeeping-restart.timer /lib/systemd/system#g" debian/scylla-server.install
|
|
sed -i -e "s#@@SYSCTL@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_SAVE_COREDUMP@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_FSTRIM@@##g" debian/scylla-server.install
|
|
sed -i -e "s#@@SCRIPTS_DELAY_FSTRIM@@##g" debian/scylla-server.install
|
|
fi
|
|
if [ $DIST -gt 0 ]; then
|
|
sed -i -e "s#@@ADDHKCFG@@#conf/housekeeping.cfg etc/scylla.d/#g" debian/scylla-server.install
|
|
else
|
|
sed -i -e "s#@@ADDHKCFG@@##g" debian/scylla-server.install
|
|
fi
|
|
|
|
cp dist/common/systemd/scylla-server.service.in debian/scylla-server.service
|
|
sed -i -e "s#@@SYSCONFDIR@@#/etc/default#g" debian/scylla-server.service
|
|
cp dist/common/systemd/scylla-housekeeping-daily.service debian/scylla-server.scylla-housekeeping-daily.service
|
|
cp dist/common/systemd/scylla-housekeeping-restart.service debian/scylla-server.scylla-housekeeping-restart.service
|
|
cp dist/common/systemd/node-exporter.service debian/scylla-server.node-exporter.service
|
|
if [ "$DISTRIBUTION" = "Debian" ] || [ "$VERSION_ID" = "14.04" ]; then
|
|
cp dist/debian/scylla-server.cron.d debian/
|
|
fi
|
|
|
|
if [ "$VERSION_ID" = "14.04" ] && [ $REBUILD -eq 0 ]; then
|
|
if [ ! -f /etc/apt/sources.list.d/scylla-3rdparty-trusty.list ]; then
|
|
cd /etc/apt/sources.list.d
|
|
sudo wget -nv https://s3.amazonaws.com/downloads.scylladb.com/deb/3rdparty/ubuntu/scylla-3rdparty-trusty.list
|
|
cd -
|
|
fi
|
|
sudo apt-get -y update
|
|
sudo apt-get -y --allow-unauthenticated install antlr3 antlr3-c++-dev libthrift-dev libthrift0 thrift-compiler
|
|
else
|
|
./dist/debian/dep/build_dependency.sh
|
|
fi
|
|
|
|
if [ "$VERSION_ID" = "14.04" ]; then
|
|
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
|
sudo apt-get -y update
|
|
elif [ "$DISTRIBUTION" = "Ubuntu" ]; then
|
|
sudo apt-get -y install g++-5
|
|
else
|
|
sudo apt-get install g++
|
|
fi
|
|
|
|
echo Y | sudo mk-build-deps -i -r
|
|
debuild -r fakeroot -us -uc
|