This uses a new [PKG_]DEPENDS variable, whose contents are propagated
into the 'depends:' field of the generated .hint file along with the
contents of [PKG_]REQUIRES.
---
 lib/pkg_pkg.cygpart | 63 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 56 insertions(+), 7 deletions(-)

diff --git a/lib/pkg_pkg.cygpart b/lib/pkg_pkg.cygpart
index 91a0865..ef3acc3 100644
--- a/lib/pkg_pkg.cygpart
+++ b/lib/pkg_pkg.cygpart
@@ -515,7 +515,7 @@ __pkg_dist() {
        local distsubdir;
        local obssubdir obspkg;
        local pkg_category_var pkg_requires_var pkg_summary_var;
-       local pkg_bin_requires pkg_depends;
+       local pkg_bin_requires pkg_depends pkg_depends_var;
        local pkg_description_var pkg_message_var pkg_obsoletes_var;
        local pkg_tag=${1};
 
@@ -611,7 +611,7 @@ __pkg_dist() {
 #    ignored; you must use PKG_REQUIRES instead.
 #  * Any newlines in this variable must be escaped.
 #  SEE ALSO
-#  PKG_REQUIRES
+#  PKG_REQUIRES, DEPENDS
 #****
 #****v* Packaging/PKG_REQUIRES
 #  DESCRIPTION
@@ -631,6 +631,45 @@ __pkg_dist() {
 #    needed for commands called by scripts or in code with fork(), libraries
 #    which are accessed by dlopen(), or data used by your package at runtime.
 #  * Any newlines in this variable must be escaped.
+#  SEE ALSO
+#  PKG_DEPENDS
+#****
+#****v* Packaging/DEPENDS
+#  DESCRIPTION
+#  A single-line string containing a comma-separated list of packages,
+#  possibly with version relations, on which this package
+#  depends. This will be added to the depends: field of the
+#  auto-generated .hint file.
+#  NOTES
+#  * Do not confuse DEPENDS with DEPEND, which is an obsolete alias
+#    for BUILD_DEPENDS.
+#  * Dependencies without version relations can be listed either in
+#    DEPENDS or in REQUIRES.
+#  * If there is more than one package in PKG_NAMES, this variable will be
+#    ignored; you must use PKG_DEPENDS instead.
+#  * Any newlines in this variable must be escaped.
+#  SEE ALSO
+#  PKG_DEPENDS, REQUIRES
+#****
+#****v* Packaging/PKG_DEPENDS
+#  DESCRIPTION
+#  A single-line string containing a comma-separated list of packages,
+#  possibly with version relations, on which this package
+#  depends. This will be added to the depends: field of the
+#  auto-generated .hint file.
+#
+#  Note that the PKG_DEPENDS 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_DEPENDS.
+#  NOTES
+#  * Dependencies without version relations can be listed either in
+#    PKG_DEPENDS or in PKG_REQUIRES.
+#  * Any newlines in this variable must be escaped.
+#  SEE ALSO
+#  PKG_REQUIRES
 #****
 #****v* Packaging/OBSOLETES
 #  DESCRIPTION
@@ -662,6 +701,7 @@ __pkg_dist() {
        do
                pkg_category_var=${pkg_name[${n}]//[-+\.]/_}_CATEGORY;
                pkg_requires_var=${pkg_name[${n}]//[-+\.]/_}_REQUIRES;
+               pkg_depends_var=${pkg_name[${n}]//[-+\.]/_}_DEPENDS;
                pkg_summary_var=${pkg_name[${n}]//[-+\.]/_}_SUMMARY;
                pkg_description_var=${pkg_name[${n}]//[-+\.]/_}_DESCRIPTION;
                pkg_message_var=${pkg_name[${n}]//[-+\.]/_}_MESSAGE;
@@ -673,12 +713,22 @@ __pkg_dist() {
                        *)      distsubdir=${pkg_name[${n}]} ;;
                esac
 
-               # allow REQUIRES and OBSOLETES only for single packages
+               # allow REQUIRES, DEPENDS, and OBSOLETES only for single 
packages
                if [ -z "${distsubdir}${!pkg_requires_var}" -a -n 
"${REQUIRES+yes}" ]
                then
                        declare ${pkg_requires_var}="${REQUIRES}"
                fi
                declare ${pkg_requires_var}="$(echo ${!pkg_requires_var} | sed 
-e 's/ /, /g')"
+               if [ -z "${distsubdir}${!pkg_depends_var}" -a -n 
"${DEPENDS+yes}" ]
+               then
+                       declare ${pkg_depends_var}="${DEPENDS}"
+               fi
+               if [ -n "${!pkg_depends_var}" -a -n "${!pkg_requires_var}" ]
+               then
+                   pkg_depends="${!pkg_depends_var}, ${!pkg_requires_var}"
+               else
+                   pkg_depends="${!pkg_depends_var}${!pkg_requires_var}"
+               fi
                if [ -z "${distsubdir}${!pkg_obsoletes_var}" -a -n 
"${OBSOLETES+yes}" ]
                then
                        declare ${pkg_obsoletes_var}="${OBSOLETES}"
@@ -694,15 +744,14 @@ __pkg_dist() {
                                pkg_bin_requires=$(__list_deps $(sort -fu 
${T}/.${pkg_name[${n}]}.lst | sed -e '\|/$|d;s| |^_^|g') \
                                                   | sort -fu | sed -e 
"/^${pkg_name[${n}]}-[0-9].*$/d;s/-[0-9].*$//g" \
                                                   | sed -e ':a;N;$!ba;s/\n/, 
/g')
-                               if [ -n  "${pkg_bin_requires}" -a -n 
"${!pkg_requires_var}" ]
+                               if [ -n  "${pkg_bin_requires}" -a -n 
"${pkg_depends}" ]
                                then
-                                   pkg_depends="${pkg_bin_requires}, 
${!pkg_requires_var}"
+                                   pkg_depends="${pkg_bin_requires}, 
${pkg_depends}"
                                else
-                                   
pkg_depends="${pkg_bin_requires}${!pkg_requires_var}"
+                                   
pkg_depends="${pkg_bin_requires}${pkg_depends}"
                                fi
                                __step "${pkg_name[${n}]} requires: 
${pkg_depends}"
                        else
-                               pkg_depends="${!pkg_requires_var}"
                                inform "ADD ${distsubdir:-${PN}} DLL 
DEPENDENCIES TO 
${PN}${distsubdir:+/}${distsubdir}/${pkg_name[${n}]}-${PVR}.hint"
                        fi
 
-- 
2.17.0

Reply via email to