[cygport] [PATCH] Add support for VERSIONS
David Rothenberger
daveroth@acm.org
Sun Jun 2 17:48:00 GMT 2013
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 ---- daveroth@acm.org
Great American Axiom:
Some is good, more is better, too much is just right.
More information about the Cygwin-apps
mailing list