From 8f62d71e11cbbb8b948eb18141d9689df1ccf2f4 Mon Sep 17 00:00:00 2001 From: Takuya ASADA Date: Thu, 18 Feb 2021 04:27:26 +0900 Subject: [PATCH] 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')