Add VERSIONS and PKG_VERSIONS to specify the versions included in
the auto-generated hints.
---
 lib/pkg_pkg.cygpart |   75 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 73 insertions(+), 2 deletions(-)

diff --git a/lib/pkg_pkg.cygpart b/lib/pkg_pkg.cygpart
index 3e69c48..cb25ad4 100644
--- a/lib/pkg_pkg.cygpart
+++ b/lib/pkg_pkg.cygpart
@@ -466,6 +466,64 @@ __pkg_srcpkg() {
        echo;
 }
 
+__pkg_versions() {
+       local -i n;
+       local -a vers;
+       local ver_tag;
+       local pkg_version_var;
+
+       if defined $1
+       then
+               pkg_version_var=$1;
+       else
+               pkg_version_var=VERSIONS;
+       fi
+
+       if [ -n "${!pkg_version_var}" ]
+       then
+               vers=(${!pkg_version_var});
+               if (( ${#vers[*]} < 2 ))
+               then
+                       error "${pkg_version_var} requires at least two 
versions."
+               fi
+
+               n=0;
+               while defined vers[${n}]
+               do
+                       ver_tag=${vers[${n}]%:*}
+                       case ${ver_tag} in
+                               prev|curr|test) ;;
+                               *) error "${pkg_version_var}: Invalid version 
tag ${ver_tag}" ;;
+                       esac
+                       echo "${ver_tag}: ${vers[${n}]#*:}" >> $2;
+                       n+=1;
+               done
+       fi
+}
+
+#****v* Packaging/VERSIONS
+#  DESCRIPTION
+#  A single-line string containing the version that will be added to
+#  the auto-generated hint. The string consists of space-separated
+#  tag:version pairs. The allowed tags are prev, curr, and test, and
+#  at least two must be provided.
+#  SEE ALSO
+#  PKG_VERSION
+#****
+#****v* Packaging/PKG_VERSIONS
+#  DESCRIPTION
+#  A single-line string containing the version that will be added to
+#  the auto-generated hint. The string consists of space-separated
+#  tag:version pairs. The allowed tags are prev, curr, and test, and
+#  at least two must be provided.
+#
+#  Note that the PKG_VERSIONS name is descriptive rather than literal,
+#  where "PKG" should be substituted with the name of the binary package
+#  whose contents it describes.  When a package contains a character which
+#  cannot be used in a shell variable name (namely '+', '-', and '.'),
+#  that character must be substituted with an underscore ('_'), e.g.
+#  libfoo-devel will use libfoo_devel_VERSIONS.
+#****
 __pkg_dist() {
        local -i n;
        local -a pkg_hint;
@@ -601,6 +659,7 @@ __pkg_dist() {
                pkg_summary_var=${pkg_name[${n}]//[-+\.]/_}_SUMMARY;
                pkg_description_var=${pkg_name[${n}]//[-+\.]/_}_DESCRIPTION;
                pkg_message_var=${pkg_name[${n}]//[-+\.]/_}_MESSAGE;
+               pkg_versions_var=${pkg_name[${n}]//[-+\.]/_}_VERSIONS;
 
                case ${pkg_name[${n}]} in
                        ${PN})  distsubdir="" ;;
@@ -637,8 +696,15 @@ category: ${!pkg_category_var:-${CATEGORY}}
 requires: ${pkg_bin_requires} ${!pkg_requires_var}
 sdesc: "${!pkg_summary_var:-${SUMMARY}}"
 ldesc: 
"${!pkg_description_var:-${DESCRIPTION:-${!pkg_summary_var:-${SUMMARY}}}}"
-${distsubdir:+external-source: ${PN}}
 _EOF
+
+                       if defined distsubdir
+                       then
+                               echo "external-source: ${PN}" >> 
${distdir}/${PN}/${distsubdir}/setup.hint
+                       fi
+
+                       __pkg_versions ${pkg_versions_var} 
${distdir}/${PN}/${distsubdir}/setup.hint
+
                        if defined ${pkg_message_var}
                        then
                                cat >> 
${distdir}/${PN}/${distsubdir}/setup.hint <<-_EOF
@@ -672,6 +738,8 @@ sdesc: "Debug info for ${PN}"
 ldesc: "This package contains files necessary for debugging the
 ${PN} package with gdb."
 _EOF
+
+                        __pkg_versions ${PN}-debuginfo 
${distdir}/${PN}/${PN}-debuginfo/setup.hint
                fi
        fi
 
@@ -681,6 +749,7 @@ _EOF
                pkg_category_var=${PN//[-+\.]/_}_CATEGORY;
                pkg_summary_var=${PN//[-+\.]/_}_SUMMARY;
                pkg_description_var=${PN//[-+\.]/_}_DESCRIPTION;
+               pkg_versions_var=${PN//[-+\.]/_}_VERSIONS;
 
                if [ -f ${C}/${PN}.hint ]
                then
@@ -697,6 +766,8 @@ requires:
 sdesc: "${!pkg_summary_var:-${SUMMARY}}"
 ldesc: 
"${!pkg_description_var:-${DESCRIPTION:-${!pkg_summary_var:-${SUMMARY}}}}"
 _EOF
+
+                        __pkg_versions ${pkg_versions_var} 
${distdir}/${PN}/${distsubdir}/setup.hint
                else
                        warning "${PN}.hint is missing";
                fi
@@ -704,4 +775,4 @@ _EOF
 }
 
 # protect functions
-readonly -f __pkg_binpkg __pkg_diff __gpg_sign __pkg_srcpkg __pkg_dist
+readonly -f __pkg_binpkg __pkg_diff __gpg_sign __pkg_srcpkg __pkg_dist 
__pkg_versions
-- 
1.7.9


-- 
David Rothenberger  ----  daver...@acm.org

Great American Axiom:
        Some is good, more is better, too much is just right.

Reply via email to