# opkbuild # lib/package/2 # Functions for retrieving metadata from packages in SPF 2.0. # # Copyright (C) 2012 Patrick "P. J." McDermott # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . [ -n "${_OB_PACKAGE_2_SM}" ] && return 0 _OB_PACKAGE_2_SM='true' ob_use control ob_use changelog _OB_SOURCE_FIELDS_REQUIRED_2='Maintainer' _OB_SOURCE_FIELDS_OPTIONAL_2='Build-Depends Homepage' _OB_BINARY_FIELDS_REQUIRED_2='Architecture Platform Description' _OB_BINARY_FIELDS_OPTIONAL_2='Essential Depends Recommends Suggests '\ 'Pre-Depends Conflicts Provides Replaces' _OB_CURRENT_PACKAGE_2= _ob_parse_package_metadata_2() { _ob_local _obppm2_pkg ob_parse_control "${_OB_PACKAGE_DIR}/control" _ob_srcfield_2 \ "${_OB_SOURCE_FIELDS_REQUIRED_2}" "${_OB_SOURCE_FIELDS_OPTIONAL_2}" ob_parse_changelog "${_OB_PACKAGE_DIR}/changelog" _ob_change_2 for _obppm2_pkg in $(ob_get_binary_packages); do _OB_CURRENT_PACKAGE_2="${_obppm2_pkg}" ob_parse_control "${_OB_PACKAGE_DIR}/${_obppm2_pkg}.pkg/control" \ _ob_binfield_2 \ "${_OB_BINARY_FIELDS_REQUIRED_2}" "${_OB_BINARY_FIELDS_OPTIONAL_2}" done _ob_return 0 return ${?} } _ob_get_binary_packages_2() { _ob_local _obgbp2_pkgs _obgbp2_pkg_control for _obgbp2_pkg_control in "${_OB_PACKAGE_DIR}/"*'.pkg/control'; do _obgbp2_pkg_control="${_obgbp2_pkg_control%.pkg/control}" _obgbp2_pkg_control="${_obgbp2_pkg_control##*/}" ob_validate_binary_name "${_obgbp2_pkg_control}" _obgbp2_pkgs="${_obgbp2_pkgs} ${_obgbp2_pkg_control}" done _ob_set_binary_packages "${_obgbp2_pkgs}" _ob_return 0 return ${?} } _ob_srcfield_2() { _ob_local _ob_set_source_parameter "${OB_CONTROL_NAME}" "${OB_CONTROL_VALUE}" _ob_return 0 return ${?} } _ob_change_2() { _ob_local _ob_set_source_parameter Source "${OB_CHANGELOG_SOURCE}" _ob_set_source_parameter Version "${OB_CHANGELOG_VERSION}" _ob_set_source_parameter Distribution "${OB_CHANGELOG_DISTRIBUTION}" _ob_set_source_parameter Changes "${OB_CHANGELOG_CHANGES}" _ob_set_source_parameter Uploader "${OB_CHANGELOG_MAINTAINER}" _ob_set_source_parameter Date "${OB_CHANGELOG_DATE}" # Parse only the first changelog entry. _ob_return 1 return ${?} } _ob_binfield_2() { _ob_local _ob_set_binary_parameter "${_OB_CURRENT_PACKAGE_2}" "${OB_CONTROL_NAME}" \ "${OB_CONTROL_VALUE}" _ob_return 0 return ${?} } _ob_get_doc_package_2() { _ob_local _obgdp2_pkg _obgdp2_doc_pkg for _obgdp2_pkg in $(ob_get_binary_packages); do if [ -r "${_OB_PACKAGE_DIR}/${_obgdp2_pkg}.pkg/docs" ]; then if [ -n "${_obgdp2_doc_pkg}" ]; then _ob_return 1 return ${?} fi _obgdp2_doc_pkg="${_obgdp2_pkg}" fi done if [ -z "${_obgdp2_doc_pkg}" ]; then _ob_return 1 return ${?} fi echo "${_obgdp2_doc_pkg}" _ob_return 0 return ${?} } _ob_get_doc_files_2() { _ob_local _obgdf2_arch _obgdf2_plat _obgdf2_doc_pkg _obgdf2_arch="${1}" _obgdf2_plat="${2}" _obgdf2_doc_pkg="$(_ob_get_doc_package_2)" cat <<-EOF ../copyright ../changelog changelog.dist ../README README.dist EOF cat "${_OB_PACKAGE_DIR}/${_obgdf2_doc_pkg}.pkg/docs" _ob_return 0 return ${?} } _ob_set_package_substvars_2() { _ob_local _obspsv2_pkg if [ ${#} -eq 1 ]; then _obspsv2_pkg="${1}" else _ob_return 125 return ${?} fi if [ -f "${_OB_PACKAGE_DIR}/substvars" ]; then ob_parse_control "${_OB_PACKAGE_DIR}/substvars" _ob_substvar_2 fi ob_set_substvar 'Source-Version' "$(ob_get_source_parameter 'Version')" ob_set_substvar 'Binary-Version' "$(ob_get_source_parameter 'Version')" } _ob_substvar_2() { _ob_local ob_set_substvar "${OB_CONTROL_NAME}" "${OB_CONTROL_VALUE}" _ob_return 0 return ${?} }