summaryrefslogtreecommitdiffhomepage
path: root/subr.pkg
diff options
context:
space:
mode:
authorLucía Andrea Illanes Albornoz <lucia@luciaillanes.de>2023-03-27 08:04:23 +0200
committerLucía Andrea Illanes Albornoz <lucia@luciaillanes.de>2023-03-27 08:04:23 +0200
commit938c5c45b976387ceea5792b0ce9717dd97667eb (patch)
treef0dfdb3728fe7b62aef4a395f24f8e66cf85d824 /subr.pkg
parent0753bb40540d5f1754ddd508614b3b606e10bd93 (diff)
downloadmidipix_build-938c5c45b976387ceea5792b0ce9717dd97667eb.tar.bz2
midipix_build-938c5c45b976387ceea5792b0ce9717dd97667eb.tar.xz
Generalise subr.pkg/*.subr code.
Diffstat (limited to 'subr.pkg')
-rw-r--r--subr.pkg/pkg_build.subr2
-rw-r--r--subr.pkg/pkg_build_clean.subr2
-rw-r--r--subr.pkg/pkg_configure.subr4
-rw-r--r--subr.pkg/pkg_install_files.subr97
-rw-r--r--subr.pkg/pkg_install_libs.subr95
-rw-r--r--subr.pkg/pkg_install_make.subr2
-rw-r--r--subr.pkg/pkg_install_rpm.subr68
7 files changed, 49 insertions, 221 deletions
diff --git a/subr.pkg/pkg_build.subr b/subr.pkg/pkg_build.subr
index a11e87ac..9ca2afce 100644
--- a/subr.pkg/pkg_build.subr
+++ b/subr.pkg/pkg_build.subr
@@ -21,7 +21,7 @@ pkg_build() {
# autoconf as it often abuses it by appending -std={gnu99,...} to it
# instead of amending CFLAGS.
#
- ex_pkg_run_make \
+ ex_rtl_run_make \
"${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \
"${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${PKG_RANLIB}" \
-- \
diff --git a/subr.pkg/pkg_build_clean.subr b/subr.pkg/pkg_build_clean.subr
index 3cd78bb9..f93577ec 100644
--- a/subr.pkg/pkg_build_clean.subr
+++ b/subr.pkg/pkg_build_clean.subr
@@ -17,7 +17,7 @@ pkg_build_clean() {
_pbc_subdir="";
fi;
- ex_pkg_run_make \
+ ex_rtl_run_make \
"${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \
"${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${PKG_RANLIB}" \
-- \
diff --git a/subr.pkg/pkg_configure.subr b/subr.pkg/pkg_configure.subr
index 71fac55a..8d75b6f7 100644
--- a/subr.pkg/pkg_configure.subr
+++ b/subr.pkg/pkg_configure.subr
@@ -13,7 +13,7 @@ pkgp_configure_autotools() {
then
_ppca_rc=2;
else
- ex_pkg_run_configure \
+ ex_rtl_run_configure \
"${PKG_AR}" "${PKG_CC}" "${PKG_CONFIGURE}" "${PKG_CXX}" "${PKG_LD}" \
"${PKG_LIBTOOL}" "${PKG_PKG_CONFIG}" "${PKG_PYTHON:-}" "${PKG_RANLIB}" \
-- \
@@ -53,7 +53,7 @@ pkgp_configure_cmake() {
esac;
esac;
- ex_pkg_run_configure_cmake \
+ ex_rtl_run_configure_cmake \
"${PKG_AR}" "${PKG_CC}" "${ARG_CCACHE}" "${PKG_CMAKE}" "${PKG_CXX}" \
"${PKG_LD}" "${PKG_PKG_CONFIG}" "${PKG_PYTHON:-}" "${PKG_RANLIB}" \
-- \
diff --git a/subr.pkg/pkg_install_files.subr b/subr.pkg/pkg_install_files.subr
index 204bab74..ac471188 100644
--- a/subr.pkg/pkg_install_files.subr
+++ b/subr.pkg/pkg_install_files.subr
@@ -41,80 +41,38 @@ pkgp_install_files_v2() {
fi;
};
-pkgp_install_files_perms() {
- local _ppifp_destdir="" _ppifp_fname="" IFS;
-
- for _ppifp_destdir in "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"; do
- if [ -e "${_ppifp_destdir}" ]; then
- rtl_set_IFS_nl;
-
- for _ppifp_fname in $(find "${_ppifp_destdir}" -type d); do
- if ! rtl_fileop chmod 0755 "${_ppifp_fname}"; then
- return 1;
- fi;
- done;
-
- for _ppifp_fname in $(find "${_ppifp_destdir}" \( -not -perm /0111 \) -type f); do
- if ! rtl_fileop chmod 0644 "${_ppifp_fname}"; then
- return 1;
- fi;
- done;
-
- for _ppifp_fname in $(find "${_ppifp_destdir}" -perm /0111 -type f); do
- if ! rtl_fileop chmod 0755 "${_ppifp_fname}"; then
- return 1;
- fi;
- done;
- fi;
- done;
+pkgp_install_files_libraries() {
+ if [ "${PKG_BUILD_TYPE}" != "host" ]; then
+ ex_rtl_install_library_archives "${PKG_DESTDIR}" "${PKG_TARGET}-mdso" || return 1;
+ fi;
+ ex_rtl_purge_la_files "${PKG_DESTDIR}" || return 1;
return 0;
};
-pkgp_install_files_pkgconfig() {
- local _ppifp2_pc_path="";
-
- for _ppifp2_pc_path in $(find "${PKG_DESTDIR}" -name \*.pc); do
- if [ -n "$(sed -ne '/^libdir=[^$]*$/p' "${_ppifp2_pc_path}")" ] \
- && ! sed -i"" -e '/^libdir=[^$]*$/s/^libdir=\(.*\)$/libdir=${exec_prefix}\1/' \
- -e '/^exec_prefix=$/s/^.*$/exec_prefix=${prefix}/' \
- "${_ppifp2_pc_path}"; then
- return 1;
- fi;
-
- if [ -n "$(sed -ne '/^includedir=[^$]*$/p' "${_ppifp2_pc_path}")" ] \
- && ! sed -i"" -e '/^includedir=[^$]*$/s/^includedir=\(.*\)$/includedir=${prefix}\1/' \
- "${_ppifp2_pc_path}"; then
- return 1;
- fi;
- done;
+pkgp_install_files_perms() {
+ rtl_set_perms_treeV \
+ 0755 0755 0644 \
+ "${PKG_DESTDIR}" \
+ "${PKG_DESTDIR_HOST}";
+ return "${?}";
};
pkgp_install_files_strip() {
- local _ppifs_bin_path="" _ppifs_stripfl=0 _ppifs_tree_root="${PKG_DESTDIR}";
-
- if [ -e "${_ppifs_tree_root}" ]; then
- if rtl_match "${PKG_NAME}" "*_ppifs_minipix"; then
- : $((_ppifs_stripfl=(${ARG_DEBUG_MINIPIX:-0} ? 0 : 1)));
- elif [ "${BUILD_KIND}" = release ]\
- && [ "${PKG_BUILD_TYPE}" = native ];
- then
- _ppifs_stripfl=1;
- else
- _ppifs_stripfl=0;
- fi;
-
- if [ "${_ppifs_stripfl:-0}" -eq 1 ]; then
- for _ppifs_bin_path in $(find "${_ppifs_tree_root}" -perm /a=x -type f); do
- if objdump -sj .debug_frame -j .debug_info "${_ppifs_bin_path}" >/dev/null 2>&1; then
- rtl_log_msgV "pkg_strip" "${MSG_pkg_strip}" "${_ppifs_bin_path}";
- if ! "${PKG_TARGET}-strip" "${_ppifs_bin_path}"; then
- return 1;
- fi;
- fi;
- done;
- fi;
+ local _ppifs_files_stripped="" _ppifs_pkg_minipixfl=0 _ppifs_rc=0;
+
+ rtl_match "${PKG_NAME}" "*_minipix"; _ppifs_pkg_minipixfl="${?}";
+ if [ \( "${_ppifs_pkg_minipixfl}" -eq 0 \) -a \( "${ARG_DEBUG_MINIPIX:-0}" -eq 0 \) ]\
+ || [ \( "${BUILD_KIND}" = release \) -a \( "${PKG_BUILD_TYPE}" = native \) ]; then
+ ex_rtl_strip_files \
+ \$_ppifs_files_stripped \
+ "${PKG_TARGET}-strip" \
+ "${PKG_DESTDIR}" \
+ -- \
+ rtl_log_msgV "pkg_strip" "${MSG_pkg_strip}";
+ _ppifs_rc="${?}";
fi;
- return 0;
+
+ return "${_ppifs_rc}";
};
pkg_install_files() {
@@ -123,8 +81,9 @@ pkg_install_files() {
if ! pkgp_install_files\
|| ! pkgp_install_files_v2\
|| ! pkgp_install_files_perms\
- || ! pkgp_install_files_pkgconfig\
- || ! pkgp_install_files_strip;
+ || ! ex_rtl_fixup_pkgconfig_paths "${PKG_DESTDIR}"\
+ || ! pkgp_install_files_strip\
+ || ! pkgp_install_files_libraries;
then
return 1;
fi;
diff --git a/subr.pkg/pkg_install_libs.subr b/subr.pkg/pkg_install_libs.subr
deleted file mode 100644
index d19c9565..00000000
--- a/subr.pkg/pkg_install_libs.subr
+++ /dev/null
@@ -1,95 +0,0 @@
-#
-# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_install_libs_purge_la() {
- local _ppilpl_la_path="";
-
- for _ppilpl_la_path in $(find "${PKG_DESTDIR}" -type f -name \*.la); do
- if ! rtl_fileop rm "${_ppilpl_la_path}"; then
- return 1;
- fi;
- done;
- return 0;
-};
-
-pkgp_install_libs_shared_link() {
- local _ppilsl_lib_name="${1}" _ppilsl_so_dir="${2}" _ppilsl_so_path="${3}" \
- _ppilsl_lib_link_path="${3%.so*}.lib.a" _ppilsl_fname="" _ppilsl_lib_link_tgt="";
-
- if _ppilsl_lib_link_tgt="$(find "${_ppilsl_so_dir}" -name "${_ppilsl_lib_name%%.*}.*.lib.a" | sort | tail -1)"\
- && [ "${_ppilsl_lib_link_tgt:+1}" = 1 ]\
- && [ "${_ppilsl_lib_link_tgt}" != "${_ppilsl_lib_link_path}" ];
- then
- rtl_basename2 \$_ppilsl_lib_link_tgt \$_ppilsl_fname;
-
- if ! rtl_fileop rm "${_ppilsl_lib_link_path}"\
- || ! rtl_fileop ln_symbolic "${_ppilsl_fname}" "${_ppilsl_lib_link_path}"; then
- return 1;
- fi;
- fi;
- return 0;
-};
-
-pkgp_install_libs_shared() {
- local _ppils_postfix="" _ppils_lib_dst_path="" _ppils_lib_name="" \
- _ppils_lib_src_path="" _ppils_so_dst_dir="" _ppils_so_src_path="";
-
- if [ "${PKG_BUILD_TYPE}" != "host" ]; then
- for _ppils_so_src_path in \
- $(find "${PKG_DESTDIR}" \
- \( -name "*.so" -or -name "*.so.*" \) -print);
- do
- if [ "$(readlink -f "${_ppils_so_src_path}")" != "/dev/null" ]\
- && rtl_remove_postfix "[0-9.]" "${_ppils_so_src_path##*.so}" \$_ppils_postfix\
- && [ "${_ppils_postfix:+1}" != 1 ]; then
- case "${_ppils_so_src_path}" in
- *.so) _ppils_lib_src_path="${_ppils_so_src_path%%.so}.lib.a"; ;;
- *.so.*) _ppils_lib_src_path="${_ppils_so_src_path%%.so.*}.${_ppils_so_src_path##*.so.}.lib.a"; ;;
- esac;
-
- _ppils_so_dst_dir="${_ppils_so_src_path%/*}";
- rtl_basename2 \$_ppils_lib_src_path \$_ppils_lib_name;
- _ppils_lib_dst_path="${_ppils_so_dst_dir}/${_ppils_lib_name}";
-
- if [ ! -L "${_ppils_lib_src_path}" ]\
- && [ ! -e "${_ppils_lib_dst_path}" ]; then
- if ! (rtl_basename2 \$_ppils_so_src_path \$_ppils_fname; \
- rtl_basename2 \$_ppils_lib_dst_path \$_ppils_fname_dst; \
- rtl_dirname2 \$_ppils_so_src_path \$_ppils_dname; \
- rtl_fileop cd "${_ppils_dname}" && \
- perk -e "${_ppils_fname}" |\
- "${PKG_TARGET}-mdso" \
- -i "${_ppils_fname_dst}" \
- -n "${_ppils_fname}" -);
- then
- return 1;
- fi;
- fi;
-
- if ! pkgp_install_libs_shared_link \
- "${_ppils_lib_name}" "${_ppils_so_dst_dir}" \
- "${_ppils_so_src_path}";
- then
- return 1;
- fi;
- fi;
- done;
- fi;
-
- return 0;
-};
-
-pkg_install_libs() {
- local _pil_group_name="${1}" _pil_pkg_name="${2}" _pil_restart_at="${3}";
-
- if ! pkgp_install_libs_purge_la\
- || ! pkgp_install_libs_shared;
- then
- return 1;
- fi;
- return 0;
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_install_make.subr b/subr.pkg/pkg_install_make.subr
index 914a2af2..fe255767 100644
--- a/subr.pkg/pkg_install_make.subr
+++ b/subr.pkg/pkg_install_make.subr
@@ -17,7 +17,7 @@ pkg_install_make() {
_pim_subdir="";
fi;
- ex_pkg_run_make \
+ ex_rtl_run_make \
"${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \
"${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${_pim_ranlib}" \
-- \
diff --git a/subr.pkg/pkg_install_rpm.subr b/subr.pkg/pkg_install_rpm.subr
index fccdc7f0..ac3d4407 100644
--- a/subr.pkg/pkg_install_rpm.subr
+++ b/subr.pkg/pkg_install_rpm.subr
@@ -5,63 +5,27 @@
pkg_install_rpm() {
local _pir_group_name="${1}" _pir_pkg_name="${2}" _pir_restart_at="${3}" \
- _pir_pkg_url="" _pir_pkg_version_full="" _pir_pkg_version_rpm="" \
- _pir_rc=0;
+ _pir_rc=0 _pir_url="" _pir_version="" _pir_version_rpm="";
if rtl_lmatch \$ARG_DIST "rpm" ","\
&& [ "${PKG_RPM_DISABLE:-0}" -eq 0 ]\
&& command which rpmbuild >/dev/null 2>&1;
then
- if [ "${PKG_URL:+1}" = 1 ]; then
- _pir_pkg_url="${PKG_URL%% *}"; _pir_pkg_version_full="${PKG_VERSION}"; _pir_pkg_version_rpm="${PKG_VERSION%%-*}";
- elif [ "${PKG_URLS_GIT:+1}" = 1 ]; then
- _pir_pkg_version_rpm="$(cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && git rev-parse HEAD)";
- _pir_pkg_version_full="${_pir_pkg_version_rpm} ($(cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && git rev-parse --abbrev-ref HEAD))";
- _pir_pkg_url="${PKG_URLS_GIT%% *}"; _pir_pkg_url="${_pir_pkg_url##*=}"; _pir_pkg_url="${_pir_pkg_url%%@*}";
-
- if [ "${_pir_pkg_url#${DEFAULT_GITROOT_HEAD}}" != "${_pir_pkg_url}" ]; then
- _pir_pkg_url="Unknown";
- fi;
- fi;
-
- if ! rtl_fileop cp "${MIDIPIX_BUILD_PWD}/etc/package.spec" \
- "${PKG_BASE_DIR}/${PKG_NAME}-${_pir_pkg_version_rpm}.spec";
- then
- return 1;
- else
- while true; do
- rpmbuild \
- -bb \
- \
- --define "_binary_payload w2T16.xzdio" \
- \
- --define="_tmppath ${BUILD_WORKDIR}" \
- --define="_topdir ${PREFIX_RPM}/${PKG_NAME}-${_pir_pkg_version_rpm}" \
- --define="pkg_destdir ${PKG_DESTDIR}" \
- --define="pkg_name ${PKG_NAME}" \
- --define="pkg_url ${_pir_pkg_url}" \
- --define="pkg_version_full ${_pir_pkg_version_full}" \
- --define="pkg_version_rpm ${_pir_pkg_version_rpm}" \
- --nodeps "${PKG_BASE_DIR}/${PKG_NAME}-${_pir_pkg_version_rpm}.spec";
- _pir_rc="${?}";
-
- if [ "${_pir_rc}" -eq 0 ]; then
- break;
- elif [ "${_pir_rc}" -eq 141 ]; then
- continue;
- else
- return "${_pir_rc}";
- fi;
- done;
-
- if ! find "${PREFIX_RPM}/${PKG_NAME}-${_pir_pkg_version_rpm}/RPMS" \
- -iname \*.rpm -exec cp -pP {} "${PREFIX_RPM}/" \; \
- || ! rtl_fileop rm "${PREFIX_RPM}/${PKG_NAME}-${_pir_pkg_version_rpm}" \
- || ! rtl_fileop cp "${PKG_BASE_DIR}/${PKG_NAME}-${_pir_pkg_version_rpm}.spec" "${PREFIX_RPM}/";
- then
- return 1;
- fi;
- fi;
+ ex_rtl_expand_rpm_version \
+ \$_pir_url \$_pir_version \$_pir_version_rpm \
+ "${PKG_BASE_DIR}/${PKG_SUBDIR}" \
+ "${PKG_URL:-}" "${DEFAULT_GITROOT_HEAD}" "${PKG_URLS_GIT:-}" \
+ "${PKG_VERSION:-}" || return 1;
+ ex_rtl_build_rpm \
+ "${PKG_DESTDIR}" \
+ "${PKG_NAME}" \
+ "${PREFIX_RPM}" \
+ "${MIDIPIX_BUILD_PWD}/etc/package.spec" \
+ "${PKG_BASE_DIR}/${PKG_NAME}-${_pir_version_rpm}.spec" \
+ "${BUILD_WORKDIR}" \
+ "${PREFIX_RPM}/${PKG_NAME}-${_pir_version_rpm}" \
+ "${_pir_url}" \
+ "${_pir_version}" "${_pir_version_rpm}" || return 1;
fi;
return 0;