From b79d89f37db495bb88a4a7ae647ec62e6840c705 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Fri, 10 Feb 2017 16:19:26 +0000 Subject: [PATCH] projects.py pkg-requires: Add --dont-strip-revision Add --dont-strip-revision option to projects.py pkg-requires Sadly, Debian dpkg doesn't install a package with dependency somepkg = 1.2.3, if somepkg-1.2.3-10 is installed. To work around this, VERSION in project.conf files is now always interpreted as VERSION-REVISION Signed-off-by: Jan Lindemann --- make/rpmdist.mk | 6 ++++-- scripts/projects.py | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/make/rpmdist.mk b/make/rpmdist.mk index 3ea18c46..e8693d8c 100644 --- a/make/rpmdist.mk +++ b/make/rpmdist.mk @@ -36,6 +36,8 @@ DIST_PCKG_DIR = $(DIST_DIR)/pckg PCKG_TAR ?= $(RPM_PROJECT)-$(RPM_VERSION).tar.gz ifeq ($(PKG_FORMAT),debian) + # 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 PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run_$(RPM_VERSION)_$(RPM_ARCH).deb ifeq ($(CREATE_DEVEL),true) PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel_$(RPM_VERSION)_$(RPM_ARCH).deb @@ -69,8 +71,8 @@ BINARY_RPM += $(DIST_PCKG_DIR)/$(PCKG_RPM_DEVEL_I386) endif DIST_PCKG_SRPM = $(BINARY_RPM) $(DIST_PCKG_DIR)/$(PCKG_RPM_SRC) # to be replaced by pkg.sh -RPM_REQUIRES_DEVEL += $(call proj_query, pkg-requires devel $(PROJECT)) -RPM_REQUIRES_RUN += $(call proj_query, pkg-requires run $(PROJECT)) +RPM_REQUIRES_DEVEL += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) devel $(PROJECT)) +RPM_REQUIRES_RUN += $(call proj_query, pkg-requires $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) run $(PROJECT)) RPM_REQUIRES_DEVEL += $(RPM_PROJECT)-run = __NEXT_VERSION__ RPM_UPLOAD_OS_NAME = $(shell echo $(OS) | sed 's/-.*//') diff --git a/scripts/projects.py b/scripts/projects.py index b7743375..286daeeb 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -350,6 +350,8 @@ def cmd_pkg_requires(args_): parser.add_argument('--vendor', '-V', nargs='?', default='jw', help='Package Vendor') parser.add_argument('flavour', help='Flavour') parser.add_argument('module', nargs='*', help='Modules') + parser.add_argument('--dont-strip-revision', action='store_true', + default=False, help='Always treat VERSION macro as VERSION-REVISION') args=parser.parse_args(args_) #debug('flavour = ', args.flavour, ', vendor = ', args.vendor) r = [] @@ -367,7 +369,10 @@ def cmd_pkg_requires(args_): version = get_value(dep_project, 'version', '') version_pattern=re.compile("[0-9-.]*") if dep[2] == 'VERSION': - dep[2] = version.split('-')[0] + if args.dont_strip_revision: + dep[2] = version + else: + dep[2] = version.split('-')[0] elif dep[2] == 'VERSION-REVISION': dep[2] = version elif version_pattern.match(dep[2]):