From 3618481e23e51b6e369bbb6feeb82bc97a6533fe Mon Sep 17 00:00:00 2001 From: Takuya ASADA Date: Thu, 18 Feb 2021 04:16:37 +0900 Subject: [PATCH 1/2] dist/debian: sync packaging script with scylla main repo --- dist/debian/debian/scylla-jmx.service | 1 + dist/debian/debian/scylla-jmx.upstart | 21 --------------------- dist/debian/debian_files_gen.py | 9 +++++---- 3 files changed, 6 insertions(+), 25 deletions(-) create mode 120000 dist/debian/debian/scylla-jmx.service delete mode 100644 dist/debian/debian/scylla-jmx.upstart diff --git a/dist/debian/debian/scylla-jmx.service b/dist/debian/debian/scylla-jmx.service new file mode 120000 index 0000000..8df8853 --- /dev/null +++ b/dist/debian/debian/scylla-jmx.service @@ -0,0 +1 @@ +../../common/systemd/scylla-jmx.service \ No newline at end of file diff --git a/dist/debian/debian/scylla-jmx.upstart b/dist/debian/debian/scylla-jmx.upstart deleted file mode 100644 index f264c14..0000000 --- a/dist/debian/debian/scylla-jmx.upstart +++ /dev/null @@ -1,21 +0,0 @@ -# scylla-jmx - ScyllaDB -# -# ScyllaDB - -description "ScyllaDB jmx" - -start on started scylla-server -stop on stopping scylla-server - -umask 022 - -console log - -setuid scylla -setgid scylla - -script - . /etc/default/scylla-jmx - export SCYLLA_HOME SCYLLA_CONF - exec /usr/lib/scylla/jmx/scylla-jmx -l /usr/lib/scylla/jmx -end script diff --git a/dist/debian/debian_files_gen.py b/dist/debian/debian_files_gen.py index 33785d5..d8f9c37 100755 --- a/dist/debian/debian_files_gen.py +++ b/dist/debian/debian_files_gen.py @@ -50,10 +50,11 @@ shutil.rmtree('build/debian/debian', ignore_errors=True) shutil.copytree('dist/debian/debian', 'build/debian/debian') if product != 'scylla': - for p in glob.glob('build/debian/debian/scylla-*'): - shutil.move(p, p.replace('scylla-', '{}-'.format(product))) - -shutil.copy('dist/common/systemd/scylla-jmx.service', 'build/debian/debian/scylla-jmx.service') + for p in Path('build/debian/debian').glob('scylla-*'): + if str(p).endswith('scylla-jmx.service'): + p.rename(p.parent / '{}-jmx.{}'.format(product, p.name)) + else: + p.rename(p.parent / p.name.replace('scylla-', f'{product}-')) s = DebianFilesTemplate(changelog_template) changelog_applied = s.substitute(product=product, version=version, release=release, revision='1', codename='stable') From 8f62d71e11cbbb8b948eb18141d9689df1ccf2f4 Mon Sep 17 00:00:00 2001 From: Takuya ASADA Date: Thu, 18 Feb 2021 04:27:26 +0900 Subject: [PATCH 2/2] dist/debian: fix renaming debian/scylla-* files rule Current renaming rule of debian/scylla-* files is buggy, it fails to install some .service files when custom product name specified. Introduce regex based rewriting instead of adhoc renaming, and fixed wrong renaming rule. Related scylladb/scylla#8113 --- dist/debian/debian_files_gen.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/dist/debian/debian_files_gen.py b/dist/debian/debian_files_gen.py index d8f9c37..19a9326 100755 --- a/dist/debian/debian_files_gen.py +++ b/dist/debian/debian_files_gen.py @@ -23,8 +23,9 @@ import string import os -import glob import shutil +import re +from pathlib import Path class DebianFilesTemplate(string.Template): delimiter = '%' @@ -51,10 +52,19 @@ shutil.copytree('dist/debian/debian', 'build/debian/debian') if product != 'scylla': for p in Path('build/debian/debian').glob('scylla-*'): - if str(p).endswith('scylla-jmx.service'): - p.rename(p.parent / '{}-jmx.{}'.format(product, p.name)) + # pat1: scylla-server.service + # -> scylla-enterprise-server.scylla-server.service + # pat2: scylla-server.scylla-fstrim.service + # -> scylla-enterprise-server.scylla-fstrim.service + # pat3: scylla-conf.install + # -> scylla-enterprise-conf.install + + if m := re.match(r'^scylla(-[^.]+)\.service$', p.name): + p.rename(p.parent / f'{product}{m.group(1)}.{p.name}') + elif m := re.match(r'^scylla(-[^.]+\.scylla-[^.]+\.[^.]+)$', p.name): + p.rename(p.parent / f'{product}{m.group(1)}') else: - p.rename(p.parent / p.name.replace('scylla-', f'{product}-')) + p.rename(p.parent / p.name.replace('scylla', product, 1)) s = DebianFilesTemplate(changelog_template) changelog_applied = s.substitute(product=product, version=version, release=release, revision='1', codename='stable')