summaryrefslogtreecommitdiffstats
path: root/src/ob-gencontrol.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/ob-gencontrol.sh')
-rw-r--r--src/ob-gencontrol.sh31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/ob-gencontrol.sh b/src/ob-gencontrol.sh
index 5a103a0..f88508c 100644
--- a/src/ob-gencontrol.sh
+++ b/src/ob-gencontrol.sh
@@ -1,6 +1,6 @@
# Generate a control directory with a control file and scripts
#
-# Copyright (C) 2012, 2019 Patrick McDermott
+# Copyright (C) 2012, 2019, 2023-2024 Patrick McDermott
#
# This file is part of opkbuild.
#
@@ -128,16 +128,21 @@ gen_control_bin()
local plat="${4}"
local desc="${5}"
shift 5
+ local binary_qual=
local value=
+ local doc_pkg=
+ local doc_pkg_q=
+ local doc_dep=
local name=
local homepage=
mkdir -p -- "${binary}.control"
exec 3>"${binary}.control/control"
+ binary_qual="$(ob_qualify_package_name "${binary}" "${OPK_HOST_ARCH}")"
+
cat >&3 <<-EOF
- Package: $(ob_qualify_package_name "${binary}" \
- "${OPK_HOST_ARCH}")
+ Package: ${binary_qual}
Source: ${OPK_SOURCE}
Version: ${version}
Architecture: ${arch}
@@ -154,9 +159,29 @@ gen_control_bin()
tr '\n' ' ')
EOF
+ if ! doc_pkg="$(ob_get_doc_package)"; then
+ ob_error "$(ob_get_msg 'cant_get_doc_pkg')"
+ return 1
+ fi
+ doc_pkg_q="$(ob_qualify_package_name "${doc_pkg}" "${OPK_HOST_ARCH}")"
+ if [ x"$(ob_get_binary_parameter "${doc_pkg}" 'Architecture')" \
+ = x'all' ]; then
+ doc_dep="${doc_pkg_q} (= ${OPK_SOURCE_VERSION})"
+ elif [ x"$(ob_get_binary_parameter "${binary}" 'Architecture')" \
+ = x'all' ]; then
+ doc_dep="${doc_pkg_q} (>= ${OPK_SOURCE_VERSION}), $(: \
+ )${doc_pkg_q} (<< ${OPK_SOURCE_VERSION}.~)"
+ else
+ doc_dep="${doc_pkg_q} (= ${OPK_BINARY_VERSION})"
+ fi
+
for name in Essential Depends Recommends Suggests Pre-Depends \
Conflicts Provides Replaces; do
value="$(ob_get_binary_parameter "${binary}" "${name}")"
+ if [ x"${name}" = x'Depends' ] &&
+ [ x"${binary_qual}" != x"${doc_pkg_q}" ]; then
+ value="${doc_dep}, ${value}"
+ fi
if [ -z "${value}" ]; then
continue
fi