rpmdist.mk: Fix off-by-one bug in rpm-release-reinstall

Introduce --dont-expand-version-macros into projects.py, and use it
to postpone version expansion into pkg.sh.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-02-24 13:31:33 +00:00
commit 69de7c53c8
3 changed files with 13 additions and 8 deletions

View file

@ -71,9 +71,9 @@ 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 $(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_REQUIRES_DEVEL += $(call proj_query, pkg-requires --dont-expand-version-macros $(PROJ_QUERY_PKG_REQUIRES_EXTRA_ARGS) devel $(PROJECT))
RPM_REQUIRES_RUN += $(call proj_query, pkg-requires --dont-expand-version-macros $(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/-.*//')
RPM_UPLOAD_OS_VERSION = $(shell echo $(OS) | sed 's/[^-]\+-//')

View file

@ -393,8 +393,8 @@ build_pkg()
local tar_archive=$src_base.tar.bz2
local tar_archive_orig=$src_base.orig.tar.bz2
local distribution=`os`
local RPM_REQUIRES_RUN=`echo $RPM_REQUIRES_RUN | sed "s/__NEXT_VERSION__/$version/g"`
local RPM_REQUIRES_DEVEL=`echo $RPM_REQUIRES_DEVEL | sed "s/__NEXT_VERSION__/$version/g"`
local RPM_REQUIRES_RUN=`echo $RPM_REQUIRES_RUN | sed "s/__NEXT_VERSION__/$version/g; s/VERSION-REVISION/$version/g; s/VERSION/$version/g"`
local RPM_REQUIRES_DEVEL=`echo $RPM_REQUIRES_DEVEL | sed "s/__NEXT_VERSION__/$version/g; s/VERSION-REVISION/$version/g; s/VERSION/$version/g"`
# --- create source directory tree
create_empty_dir $src_tree "Source files compilation directory"

View file

@ -352,8 +352,11 @@ def cmd_pkg_requires(args_):
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')
parser.add_argument('--dont-expand-version-macros', action='store_true',
default=False, help='Don\'t expand VERSION and REVISION macros')
args=parser.parse_args(args_)
#debug('flavour = ', args.flavour, ', vendor = ', args.vendor)
debug('flavour = ', args.flavour, ', vendor = ', args.vendor)
version_pattern=re.compile("[0-9-.]*")
r = []
for m in args.module:
value = get_value(m, 'pkg.required.jw', args.flavour)
@ -366,8 +369,10 @@ def cmd_pkg_requires(args_):
dep[i] = item.strip()
if len(dep) == 3:
dep_project = re.sub(r'-devel$|-run$', '', dep[0])
if args.dont_expand_version_macros and dep_project in args.module:
version = dep[2]
else:
version = get_value(dep_project, 'version', '')
version_pattern=re.compile("[0-9-.]*")
if dep[2] == 'VERSION':
if args.dont_strip_revision:
dep[2] = version