diff options
Diffstat (limited to 'src/ob-gencontrol.sh')
-rw-r--r-- | src/ob-gencontrol.sh | 31 |
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 |