modulecmd: bugfix in setting V_MINOR

V_MINOR was not set correct if the version number consist of
a major and minor number plus a suffix.
This commit is contained in:
2024-04-10 14:48:06 +02:00
parent f2d845ff15
commit 7e52494bb9
+25 -18
View File
@@ -36,10 +36,10 @@ proc _pmodules_parse_pmodules_env { } {
# 'typeset -p VAR' - to Tcl.
#
foreach line [split [base64::decode $::env(PMODULES_ENV)] "\n"] {
if { ![regexp -- {.* -[aAx]* (.*)=\((.*)\)} $line -> name value] } {
if { ![regexp -- {.* -[aAx]* (.*)=\((.*)\)} $line -> key value] } {
continue
}
switch $name {
switch $key {
Dir2OverlayMap {
array set ::Dir2OverlayMap [regsub -all {[]=[]} $value " "]
}
@@ -287,24 +287,24 @@ proc ModulesHelp { } {
proc _find_overlay { modulefile_components } {
debug "_find_overlay()"
foreach ol $::UsedOverlays {
debug "$ol"
debug "ol = $ol"
set ol_mod_root $::OverlayInfo(${ol}:mod_root)
if { [string range $ol_mod_root end end] == "/" } {
set ol_mod_root [string range $ol_mod_root 0 end-1]
}
debug "$ol_mod_root"
debug "ol_mod_root = $ol_mod_root"
set ol_mod_root_splitted [file split $ol_mod_root]
set modulefile_root [file join \
{*}[lrange \
$modulefile_components \
0 [expr [llength $ol_mod_root_splitted] - 1]]]
debug "$modulefile_root"
debug "modulefile_root = $modulefile_root"
if { [string compare $ol_mod_root $modulefile_root] == 0 } {
debug "$ol_mod_root_splitted"
debug "ol_mod_root_splitted = $ol_mod_root_splitted"
return $ol_mod_root_splitted
}
}
debug "not found"
debug "overlay not found"
return {}
}
@@ -338,22 +338,26 @@ proc _pmodules_init_global_vars { } {
set group [lindex $rel_modulefile 0]
set GROUP "${group}"
set name [lindex $modulefile_splitted end-1]
set P "${name}"
set version [lindex $modulefile_splitted end]
set V "${version}"
lassign [split $V -] V_PKG tmp
set V_RELEASE [lindex [split $tmp _] 0]
set suffixes [lassign [split $version _] v]
lassign [split $v -] V_PKG V_RELEASE
lassign [split $V_PKG .] V_MAJOR V_MINOR V_PATCHLVL
set variant [lrange $rel_modulefile 2 end]
set mod_root [file join {*}$ol_mod_root_splitted]
debug "mod_root=$mod_root"
set ol $::Dir2OverlayMap($mod_root)
debug "ol=$ol"
set install_prefix [file split $::OverlayInfo(${ol}:inst_root)]
set mod_root [file join {*}$ol_mod_root_splitted]
set ol $::Dir2OverlayMap($mod_root)
set install_prefix [file split $::OverlayInfo(${ol}:inst_root)]
set prefix "$install_prefix $group [lreverse_n $variant 2]"
set PREFIX [file join {*}$prefix]
debug "PREFIX=$PREFIX"
debug "group of module $name: $group"
set P "${name}"
set V "${version}"
debug "mod_root=$mod_root"
debug "ol=$ol"
debug "PREFIX=$PREFIX"
debug "group of module $name: $group"
}
if { [info exists ::whatis] } {
@@ -370,3 +374,6 @@ if {[_is_in_overlay] == 0} {
}
debug "return from lib"
# Local Variables:
# tcl-indent-level: 8
# End: