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 <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-02-10 16:19:26 +00:00
commit b79d89f37d
2 changed files with 10 additions and 3 deletions

View file

@ -36,6 +36,8 @@ DIST_PCKG_DIR = $(DIST_DIR)/pckg
PCKG_TAR ?= $(RPM_PROJECT)-$(RPM_VERSION).tar.gz 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
PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS = --dont-strip-revision
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
@ -69,8 +71,8 @@ BINARY_RPM += $(DIST_PCKG_DIR)/$(PCKG_RPM_DEVEL_I386)
endif endif
DIST_PCKG_SRPM = $(BINARY_RPM) $(DIST_PCKG_DIR)/$(PCKG_RPM_SRC) DIST_PCKG_SRPM = $(BINARY_RPM) $(DIST_PCKG_DIR)/$(PCKG_RPM_SRC)
# to be replaced by pkg.sh # to be replaced by pkg.sh
RPM_REQUIRES_DEVEL += $(call proj_query, pkg-requires devel $(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 run $(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_REQUIRES_DEVEL += $(RPM_PROJECT)-run = __NEXT_VERSION__
RPM_UPLOAD_OS_NAME = $(shell echo $(OS) | sed 's/-.*//') RPM_UPLOAD_OS_NAME = $(shell echo $(OS) | sed 's/-.*//')

View file

@ -350,6 +350,8 @@ def cmd_pkg_requires(args_):
parser.add_argument('--vendor', '-V', nargs='?', default='jw', help='Package Vendor') parser.add_argument('--vendor', '-V', nargs='?', default='jw', help='Package Vendor')
parser.add_argument('flavour', help='Flavour') parser.add_argument('flavour', help='Flavour')
parser.add_argument('module', nargs='*', help='Modules') 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_) args=parser.parse_args(args_)
#debug('flavour = ', args.flavour, ', vendor = ', args.vendor) #debug('flavour = ', args.flavour, ', vendor = ', args.vendor)
r = [] r = []
@ -367,7 +369,10 @@ def cmd_pkg_requires(args_):
version = get_value(dep_project, 'version', '') version = get_value(dep_project, 'version', '')
version_pattern=re.compile("[0-9-.]*") version_pattern=re.compile("[0-9-.]*")
if dep[2] == 'VERSION': 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': elif dep[2] == 'VERSION-REVISION':
dep[2] = version dep[2] = version
elif version_pattern.match(dep[2]): elif version_pattern.match(dep[2]):