mirror of
ssh://git.janware.com/janware/proj/jw-pkg
synced 2026-04-24 09:13:37 +02:00
cmds.projects.BaseCmdPkgRelations: --syntax debian
Add support for --syntax to BaseCmdPkgRelations.pkg_relations(), and default to 'semver', i.e. the current state of affairs. If that's changed to 'debian', relations declared in project.conf as pkg.requires.os.devel = jw-pkg-devel > 1.2.3 will be output as jw-pkg-devel >> 1.2.3 which is what Debian expects. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
509fe1c5e0
commit
7046983d7c
2 changed files with 19 additions and 3 deletions
|
|
@ -48,7 +48,7 @@ PCKG_TAR ?= $(RPM_PROJECT)-$(RPM_VERSION).tar.gz
|
||||||
|
|
||||||
ifeq ($(PKG_FORMAT),debian)
|
ifeq ($(PKG_FORMAT),debian)
|
||||||
# too bad: debian Requires: somepkg = 1.2.3 isn't satisfied by somepkg-1.2.3-5
|
# too bad: debian Requires: somepkg = 1.2.3 isn't satisfied by somepkg-1.2.3-5
|
||||||
PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS = --dont-strip-revision
|
PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS = --syntax debian
|
||||||
PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run_$(RPM_VERSION)_$(RPM_ARCH).deb
|
PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run_$(RPM_VERSION)_$(RPM_ARCH).deb
|
||||||
ifeq ($(CREATE_DEVEL),true)
|
ifeq ($(CREATE_DEVEL),true)
|
||||||
PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel_$(RPM_VERSION)_$(RPM_ARCH).deb
|
PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel_$(RPM_VERSION)_$(RPM_ARCH).deb
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@ class BaseCmdPkgRelations(Cmd):
|
||||||
ignore = args.ignore.split(',')
|
ignore = args.ignore.split(',')
|
||||||
flavours = args.flavour.split(',')
|
flavours = args.flavour.split(',')
|
||||||
|
|
||||||
|
expand_semver_revision_range = args.expand_semver_revision_range
|
||||||
|
if args.syntax == 'debian':
|
||||||
|
expand_semver_revision_range = True
|
||||||
log(DEBUG, f'flavour="{args.flavour}", subsecs="{", ".join(subsecs)}", "ignore="{args.ignore}"')
|
log(DEBUG, f'flavour="{args.flavour}", subsecs="{", ".join(subsecs)}", "ignore="{args.ignore}"')
|
||||||
|
|
||||||
version_pattern = re.compile("[0-9-.]*")
|
version_pattern = re.compile("[0-9-.]*")
|
||||||
|
|
@ -69,11 +72,11 @@ class BaseCmdPkgRelations(Cmd):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
raise Exception("Unknown version specifier in " + spec)
|
raise Exception("Unknown version specifier in " + spec)
|
||||||
if not args.expand_semver_revision_range:
|
if not expand_semver_revision_range:
|
||||||
expanded_deps = [dep]
|
expanded_deps = [dep]
|
||||||
else:
|
else:
|
||||||
expanded_deps = []
|
expanded_deps = []
|
||||||
if args.expand_semver_revision_range and len(dep) == 3:
|
if expand_semver_revision_range and len(dep) == 3:
|
||||||
semver = re.split(r'[.-]', version)
|
semver = re.split(r'[.-]', version)
|
||||||
if len(semver) != 4:
|
if len(semver) != 4:
|
||||||
expanded_deps = [dep]
|
expanded_deps = [dep]
|
||||||
|
|
@ -92,6 +95,17 @@ class BaseCmdPkgRelations(Cmd):
|
||||||
case _:
|
case _:
|
||||||
raise NotImplementedError(f'Expanding SemVer range "{dep[0]} {dep[1]} {dep[3]}" is not yet implemented')
|
raise NotImplementedError(f'Expanding SemVer range "{dep[0]} {dep[1]} {dep[3]}" is not yet implemented')
|
||||||
for expanded_dep in expanded_deps:
|
for expanded_dep in expanded_deps:
|
||||||
|
match args.syntax:
|
||||||
|
case 'semver':
|
||||||
|
pass
|
||||||
|
case 'debian':
|
||||||
|
match expanded_dep[1]:
|
||||||
|
case '<':
|
||||||
|
expanded_dep[1] = '<<'
|
||||||
|
case '>':
|
||||||
|
expanded_dep[1] = '>>'
|
||||||
|
case '_':
|
||||||
|
raise NotImplementedError(f'Unknown dependency syntax "{args.syntax}" for dependency "{dep[0]} {dep[1]} {dep[3]}"')
|
||||||
dep_str = ' '.join(expanded_dep)
|
dep_str = ' '.join(expanded_dep)
|
||||||
if not dep_str in r:
|
if not dep_str in r:
|
||||||
log(DEBUG, f'Appending dependency "{dep_str}"')
|
log(DEBUG, f'Appending dependency "{dep_str}"')
|
||||||
|
|
@ -119,6 +133,8 @@ class BaseCmdPkgRelations(Cmd):
|
||||||
default=False, help='Always treat VERSION macro as VERSION-REVISION')
|
default=False, help='Always treat VERSION macro as VERSION-REVISION')
|
||||||
parser.add_argument('--expand-semver-revision-range', action='store_true',
|
parser.add_argument('--expand-semver-revision-range', action='store_true',
|
||||||
default=False, help='Always treat =VERSION macro as >= VERSION-0 and < (VERSION+1)-0')
|
default=False, help='Always treat =VERSION macro as >= VERSION-0 and < (VERSION+1)-0')
|
||||||
|
parser.add_argument('--syntax', choices=['semver', 'debian'],
|
||||||
|
default='semver', help='Output syntax')
|
||||||
parser.add_argument('--recursive', action='store_true',
|
parser.add_argument('--recursive', action='store_true',
|
||||||
default=False, help='Find dependencies recursively')
|
default=False, help='Find dependencies recursively')
|
||||||
parser.add_argument('--dont-expand-version-macros', action='store_true',
|
parser.add_argument('--dont-expand-version-macros', action='store_true',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue