From a1044e3bd1c5f31d4bff0bce5e1390c4ff5952d7 Mon Sep 17 00:00:00 2001 From: Takuya ASADA Date: Wed, 4 Sep 2019 08:30:35 +0900 Subject: [PATCH] dist: move package build script to install.sh Move package build script from .rpm/.deb to single script, install.sh. We need this to support nonroot mode, and also to keep package build script consistent between .rpm/.deb. --- dist/debian/rules.mustache | 23 +------ dist/redhat/scylla-jmx.spec.mustache | 19 +----- install.sh | 94 +++++++++++++++++++++++++++ scripts/create-relocatable-package.py | 1 + 4 files changed, 98 insertions(+), 39 deletions(-) create mode 100755 install.sh diff --git a/dist/debian/rules.mustache b/dist/debian/rules.mustache index b527d7e..a989d99 100755 --- a/dist/debian/rules.mustache +++ b/dist/debian/rules.mustache @@ -1,31 +1,12 @@ #!/usr/bin/make -f -DOC = $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/share/doc/{{product}}-jmx -DEST = $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/jmx -M2_REPO= $(CURDIR)/m2 - override_dh_auto_build: override_dh_auto_clean: override_dh_auto_install: - mkdir -p $(CURDIR)/debian/{{product}}-jmx/etc/default/ && \ - cp $(CURDIR)/dist/common/sysconfig/scylla-jmx \ - $(CURDIR)/debian/{{product}}-jmx/etc/default/ - - mkdir -p $(DOC) && \ - cp $(CURDIR)/*.md $(DOC) - cp $(CURDIR)/NOTICE $(DOC) - - mkdir -p $(DEST) - cp $(CURDIR)/scylla-jmx $(DEST) - cp $(CURDIR)/scylla-jmx-1.0.jar $(DEST) - mkdir $(DEST)/symlinks - ln -sf /usr/bin/java $(DEST)/symlinks/scylla-jmx - - mkdir -p $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/scripts - # Create symlink for /usr/lib/scylla/jmx - ln -sf /opt/scylladb/jmx $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/scripts/ + dh_auto_install + ./install.sh --root "$(CURDIR)/debian/{{product}}-jmx" --disttype debian override_dh_installinit: {{#scylla}} diff --git a/dist/redhat/scylla-jmx.spec.mustache b/dist/redhat/scylla-jmx.spec.mustache index a465f76..cf0270b 100644 --- a/dist/redhat/scylla-jmx.spec.mustache +++ b/dist/redhat/scylla-jmx.spec.mustache @@ -22,26 +22,9 @@ Requires: {{product}}-server java-1.8.0-openjdk-headless %build -MUSTACHE_DIST="\"redhat\": true" -pystache dist/common/systemd/scylla-jmx.service.mustache "{ $MUSTACHE_DIST }" > scylla-jmx.service %install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ -mkdir -p $RPM_BUILD_ROOT%{_unitdir} -mkdir -p $RPM_BUILD_ROOT/opt/scylladb/ - -install -m644 dist/common/sysconfig/scylla-jmx $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ -install -m644 scylla-jmx.service $RPM_BUILD_ROOT%{_unitdir}/ -install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/ -install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/jmx -install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/jmx/symlinks -install -m644 scylla-jmx-1.0.jar $RPM_BUILD_ROOT/opt/scylladb/jmx/ -install -m755 scylla-jmx $RPM_BUILD_ROOT/opt/scylladb/jmx -ln -sf /usr/bin/java $RPM_BUILD_ROOT/opt/scylladb/jmx/symlinks/scylla-jmx -install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/scripts -# create symlink for /usr/lib/scylla/jmx -ln -sf /opt/scylladb/jmx $RPM_BUILD_ROOT/opt/scylladb/scripts/ +./install.sh --root "$RPM_BUILD_ROOT" --disttype "redhat" %pre /usr/sbin/groupadd scylla 2> /dev/null || : diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..0747db0 --- /dev/null +++ b/install.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# +# Copyright (C) 2019 ScyllaDB +# + +# +# This file is part of Scylla. +# +# Scylla is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Scylla is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Scylla. If not, see . +# + +set -e + +print_usage() { + cat < build/scylla-jmx.service + +install -d -m755 "$retc"/"$sysconfdir" +install -d -m755 "$rusr"/lib/systemd/system +install -d -m755 "$rprefix/scripts" "$rprefix/jmx" "$rprefix/jmx/symlinks" + +install -m644 dist/common/sysconfig/scylla-jmx -Dt "$retc"/"$sysconfdir" +install -m644 build/scylla-jmx.service -Dt "$rusr"/lib/systemd/system + +install -m644 scylla-jmx-1.0.jar "$rprefix/jmx" +install -m755 scylla-jmx "$rprefix/jmx" +ln -sf /usr/bin/java "$rprefix/jmx/symlinks/scylla-jmx" +# create symlink for /usr/lib/scylla/jmx +ln -srf $rprefix/jmx "$rprefix/scripts/" diff --git a/scripts/create-relocatable-package.py b/scripts/create-relocatable-package.py index e64ff30..2a70acf 100755 --- a/scripts/create-relocatable-package.py +++ b/scripts/create-relocatable-package.py @@ -43,6 +43,7 @@ ar.add('build/SCYLLA-RELEASE-FILE', arcname='SCYLLA-RELEASE-FILE') ar.add('build/SCYLLA-VERSION-FILE', arcname='SCYLLA-VERSION-FILE') ar.add('build/SCYLLA-PRODUCT-FILE', arcname='SCYLLA-PRODUCT-FILE') ar.add('dist') +ar.add('install.sh') ar.add('target/scylla-jmx-1.0.jar', arcname='scylla-jmx-1.0.jar') ar.add('scripts/scylla-jmx', arcname='scylla-jmx') ar.add('README.md')