summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS8
-rw-r--r--lib/package.sh18
2 files changed, 14 insertions, 12 deletions
diff --git a/NEWS b/NEWS
index efb7d19..57f3322 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,14 @@ Utilities:
libopkbuild:
+ * Binary package parameters are stored internally now with fewer
+ conflicts. Specifically, binary package names such as
+ "libncurses.6" and "libncurses++.6" no longer conflict, because the
+ non-alphanumeric parts of the names are different lengths.
+ * An unbound variable that could cause ob_get_binary_parameter() to
+ fail has been fixed. The utilities called ob_get_binary_parameter()
+ after setting a variable of the same name, so the bug went
+ unnoticed.
* ob_get_binary_parameter() is now covered by the test suite.
Build system:
diff --git a/lib/package.sh b/lib/package.sh
index 6501ba2..27ea8cb 100644
--- a/lib/package.sh
+++ b/lib/package.sh
@@ -125,10 +125,8 @@ ob_get_binary_packages()
fi
# Make sure the "clean" name is unique.
- pkg_clean="$({ tr 'a-z' 'A-Z' | tr -dC 'A-Z0-9';} <<-EOF
- "${pkg}"
- EOF
- )"
+ pkg_clean="$(printf '%s' "${pkg}" | tr 'a-z' 'A-Z' | \
+ tr -C 'A-Z0-9' '_')"
case "${pkgs_clean}" in *" ${pkg_clean} "*)
_ob_warn_msg 'duplicate_clean_binary_name' \
"${pkg_clean}"
@@ -211,10 +209,8 @@ ob_get_binary_parameter()
fi
# Convert package name to its uppercase "clean" form.
- package="$({ tr 'a-z' 'A-Z' | tr -dC 'A-Z0-9'; } <<-EOF
- "${pkg}"
- EOF
- )"
+ package="$(printf '%s' "${package}" | tr 'a-z' 'A-Z' | \
+ tr -C 'A-Z0-9' '_')"
# Convert field name to uppercase and validate.
case "${name}" in *[!A-Za-z0-9-]* | '')
@@ -323,10 +319,8 @@ _ob_set_binary_parameter()
fi
# Convert package name to its uppercase "clean" form.
- package="$({ tr 'a-z' 'A-Z' | tr -dC 'A-Z0-9'; } <<-EOF
- "${pkg}"
- EOF
- )"
+ package="$(printf '%s' "${package}" | tr 'a-z' 'A-Z' | \
+ tr -C 'A-Z0-9' '_')"
# Convert field name to uppercase and validate.
case "${name}" in *[!A-Za-z0-9-]* | '')