summaryrefslogtreecommitdiffhomepage
path: root/subr
diff options
context:
space:
mode:
Diffstat (limited to 'subr')
-rw-r--r--subr/build_init.subr319
-rw-r--r--subr/ex_pkg.subr286
-rw-r--r--subr/ex_pkg_dispatch.subr255
-rw-r--r--subr/ex_pkg_env.subr157
-rw-r--r--subr/ex_pkg_exec.subr136
-rw-r--r--subr/ex_pkg_restart.subr293
-rw-r--r--subr/pkg_build.subr54
-rw-r--r--subr/pkg_build_clean.subr33
-rw-r--r--subr/pkg_clean.subr28
-rw-r--r--subr/pkg_configure.subr184
-rw-r--r--subr/pkg_configure_autotools.subr99
-rw-r--r--subr/pkg_configure_clean.subr20
-rw-r--r--subr/pkg_configure_patch.subr33
-rw-r--r--subr/pkg_configure_patch_pre.subr38
-rw-r--r--subr/pkg_fetch_clean.subr21
-rw-r--r--subr/pkg_fetch_download.subr67
-rw-r--r--subr/pkg_fetch_extract.subr37
-rw-r--r--subr/pkg_install.subr35
-rw-r--r--subr/pkg_install_clean.subr12
-rw-r--r--subr/pkg_install_files.subr115
-rw-r--r--subr/pkg_install_libs.subr66
-rw-r--r--subr/pkg_install_make.subr37
-rw-r--r--subr/pkg_install_rpm.subr52
-rw-r--r--subr/pkg_install_subdirs.subr21
-rw-r--r--subr/pkgtool_init.subr153
25 files changed, 0 insertions, 2551 deletions
diff --git a/subr/build_init.subr b/subr/build_init.subr
deleted file mode 100644
index e6459a86..00000000
--- a/subr/build_init.subr
+++ /dev/null
@@ -1,319 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-buildp_init_args() {
- local _foundfl=0 _group="" _pkg_names_unknown="" _rc=0 \
- EX_PKG_BUILD_GROUPS EX_PKG_BUILD_GROUPS_NOAUTO; _status="";
-
- case "${ARG_FETCH_FORCE}" in
- ipv4) DEFAULT_GIT_ARGS="$(rtl_lconcat "-4" "${DEFAULT_GIT_ARGS}")";
- DEFAULT_WGET_ARGS="$(rtl_lconcat "-4" "${DEFAULT_WGET_ARGS}")"; ;;
- ipv6) DEFAULT_GIT_ARGS="$(rtl_lconcat "-6" "${DEFAULT_GIT_ARGS}")";
- DEFAULT_WGET_ARGS="$(rtl_lconcat "-6" "${DEFAULT_WGET_ARGS}")"; ;;
- esac;
- if [ "${BUILD_HNAME:+1}" != 1 ]\
- && ! BUILD_HNAME="$(hostname)"; then
- _rc=1; _status="failed to obtain hostname.";
- elif [ "${ARG_DUMP_ON_ABORT:-0}" -eq 1 ]\
- && [ "${ARG_RELAXED:-0}" -eq 1 ]; then
- _rc=1; _status="--dump-on-abort excludes -R.";
- elif [ "${ARG_AS_NEEDED:-0}" -eq 1 ]\
- && [ -e "${PREFIX}/build.gitref" ]\
- && [ "$(git rev-parse HEAD)" = "$(cat "${PREFIX}/build.gitref")" ]; then
- _rc=0; _status="Git repository has not changed since last build and --as-needed was specified.";
- elif ! ex_pkg_process_restart_spec \$ARG_RESTART \$ARG_RESTART_AT \$ARG_RESTART_RECURSIVE; then
- _rc=1; _status="failed to process -r specification: ${_status}.";
- elif ! ex_pkg_load_groups; then
- _rc=1; _status="failed to load build groups.";
- else if ! rtl_lmatch "${ARG_DIST:-}" "rpm" ","\
- && [ "${ARG_DUMP_IN:+1}" != 1 ]\
- && [ "${ARG_DUMP_ON_ABORT:-0}" -eq 0 ]; then
- EX_PKG_BUILD_GROUPS="$(rtl_lfilter "${EX_PKG_BUILD_GROUPS}" "host_deps_rpm")";
- fi;
- if [ "${BUILD_GROUPS:+1}" != 1 ]; then
- BUILD_GROUPS="${EX_PKG_BUILD_GROUPS}";
- else _foundfl=0; for _group in ${BUILD_GROUPS}; do
- if rtl_lmatch "${EX_PKG_BUILD_GROUPS}" "${_group}"; then
- _foundfl=1; break;
- fi;
- done;
- if [ "${_foundfl}" -eq 0 ]; then
- _foundfl=0; for _group in ${BUILD_GROUPS}; do
- if rtl_lmatch "${EX_PKG_BUILD_GROUPS}" "${_group}"; then
- _rc=1; _status="unknown build group \`${_group}'."; break;
- fi;
- done;
- fi;
- fi;
- if [ "${_rc:-0}" -eq 0 ]; then
- if [ "${ARG_DIST:+1}" = 1 ]; then
- BUILD_GROUPS="$(rtl_lconcat "$(rtl_lfilter "${BUILD_GROUPS}" "dist")" "dist")";
- fi;
- if [ "${ARG_RESTART:+1}" = 1 ]\
- && ! rtl_lmatch "${ARG_RESTART}" "ALL LAST"; then
- for _pkg_name in ${ARG_RESTART}; do
- if ! ex_pkg_find_package "${BUILD_GROUPS}" "${_pkg_name}" >/dev/null; then
- _pkg_names_unknown="$(rtl_lconcat "${_pkg_names_unknown}" "${_pkg_name}")";
- fi;
- done;
- case "$(rtl_llength "${_pkg_names_unknown}")" in
- 0) ;;
- 1) _rc=1; _status="unknown package \`${_pkg_names_unknown}'."; ;;
- *) _rc=1; _status="unknown packages: $(rtl_subst "${_pkg_names_unknown}" " " ", ")"; ;;
- esac;
- fi;
- fi;
- fi; return "${_rc}";
-};
-
-buildp_init_env() {
- local _fname="" _lang="${LANG:-C}" _lang_="" _name="" _rc=0; _status=""; _lang="${_lang%%_*}";
-
- if ! cd "${0%/*}"; then
- printf "Error: failed to change working directory to \`${0%/*}'." >&2; exit 1;
- elif ! umask 022; then
- printf "Error: failed to set umask(2).\n" >&2; exit 1;
- elif ! BUILD_USER="$(id -nu)"; then
- printf "Error: failed to obtain username." >&2; exit 1;
- else for _fname in \
- $(find subr.rtl -name *.subr) \
- $(find subr -name *.subr) \
- etc/build.theme \
- ;
- do
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- done;
- if [ -e "etc/build.theme.local" ]; then
- if ! . "etc/build.theme.local"; then
- printf "Error: failed to source \`%s'.\n" "etc/build.theme.local" >&2; exit 1;
- fi;
- fi;
- for _name in build rtl; do
- for _lang_ in ${_lang} C; do
- _fname="etc/${_name}.msgs.${_lang_}";
- if [ -e "${_fname}" ]; then
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- if [ -e "${_fname}.local" ]; then
- if ! . "${_fname}.local"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}.local" >&2; exit 1;
- fi;
- fi; break;
- fi;
- done;
- done;
- fi; export LANG=C LC_ALL=C; return "${_rc}";
-};
-
-buildp_init_files() {
- local _log_last_fname="" _log_last_num=1 _rc=0; _status=""
-
- if ! rtl_fileop mkdir "${BUILD_DLCACHEDIR}" "${BUILD_WORKDIR}"\
- || rtl_lmatch "${ARG_DIST}" "rpm" ","\
- && ! rtl_fileop mkdir "${PREFIX_RPM}"; then
- _rc=1; _status="cannot create build directories.";
- elif [ -e "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}" ]; then
- _rc=1; _status="another build targeting this architecture and build type is currently in progress.";
- elif ! rtl_clean_env "${DEFAULT_CLEAR_ENV_VARS_EXCEPT}"; then
- _rc=1; _status="failed to clean environment.";
- elif ! rtl_check_path_vars "${DEFAULT_CHECK_PATH_VARS}"; then
- _rc=1; _status="${_status}";
- else export TMP="${BUILD_WORKDIR}" TMPDIR="${BUILD_WORKDIR}";
- touch "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}";
- if [ -e "${DEFAULT_BUILD_LOG_FNAME}" ]; then
- while [ -e "${DEFAULT_BUILD_LOG_FNAME}.${_log_last_num}" ]; do
- : $((_log_last_num+=1));
- done;
- _log_last_fname="${DEFAULT_BUILD_LOG_FNAME}.${_log_last_num}";
- rtl_fileop mv "${DEFAULT_BUILD_LOG_FNAME}" "${_log_last_fname}";
- rtl_fileop ln_symbolic "${_log_last_fname}" "${DEFAULT_BUILD_LOG_LAST_FNAME}";
- fi;
- rtl_fileop touch "${DEFAULT_BUILD_LOG_FNAME}"; rtl_log_set_fname "${DEFAULT_BUILD_LOG_FNAME}";
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "prefix" ","; then
- trap "rm -f \"${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}\" 2>/dev/null; rtl_log_msg \"fatalexit\" \"${MSG_build_aborted}\"" HUP INT TERM USR1 USR2;
- rtl_log_msg "info" "${MSG_build_clean_prefix}";
- for _pname in ${DEFAULT_CLEAR_PREFIX_PATHS}; do
- if ! rtl_fileop rm "${PREFIX}/${_pname}"; then
- _rc=1; _status="failed to remove \`${PREFIX}/${_pname}'."; break;
- fi;
- done;
- trap - HUP INT TERM USR1 USR2;
- fi;
- export PATH="${PREFIX}/bin${PATH:+:${PATH}}";
- fi;
- return "${_rc}";
-};
-
-buildp_init_getopts() {
- local _arg="" _opt="" _rc=0 _shiftfl=0 OPTIND=0; _status="";
-
- : ${ARCH:="nt64"}; : ${BUILD_KIND:="debug"};
- ARG_AS_NEEDED=0; ARG_CLEAN_BUILDS=""; ARG_DEBUG_MINIPIX=0; ARG_DIST=""; ARG_DUMP_IN="";
- ARG_DUMP_ON_ABORT=0; ARG_FETCH_FORCE=""; ARG_PARALLEL=1; ARG_RELAXED=0; ARG_RESET_PKG=0;
- ARG_RESTART=""; ARG_RESTART_AT=""; ARG_RESTART_RECURSIVE=""; ARG_VERBOSE=0; ARG_VERBOSE_TAGS="";
-
- while [ "${#}" -gt 0 ]; do
- case "${1}" in
- --as-needed) ARG_AS_NEEDED=1; _shiftfl=1; ;;
- --dump-in) if [ "${#}" -ge 2 ]; then
- ARG_DUMP_IN="${2}"; ARG_DUMP_ON_ABORT=1; _shiftfl=2;
- else
- _rc=1; _status="missing argument to option --dump-in.";
- fi; ;;
- --dump-on-abort)
- ARG_DUMP_ON_ABORT=1; _shiftfl=1; ;;
- --debug-minipx) ARG_DEBUG_MINIPIX=1; _shiftfl=1; ;;
- --help)
- if [ -t 1 ]; then
- cat etc/build.usage;
- else
- sed 's/\[[0-9]\+m//g' etc/build.usage;
- fi; exit 0; ;;
- --reset-state) ARG_RESET_PKG=1; _shiftfl=1; ;;
- -v*) _opt="${1#-}"; while [ -n "${_opt}" ]; do
- : $((ARG_VERBOSE+=1)); _opt="${_opt#?}";
- done; _shiftfl=1; ;;
- # {{{ --roar
- --roar) printf "%s\n" '
-   
-   
-%.  /\  /\  ROAR!
-`%%.    """    / 
- `%%   o _ o   / 
- // ;  (__Y__)    
-(( /   `\_/   
- \\ .'\''     
- \\ /   
- \\/  \ | | 
- \ )___| | 
- (_____/__))))))) '; exit 0; ;;
- # }}}
- *) _shiftfl=0; ;;
- esac;
- if [ "${_rc}" -ne 0 ]; then
- break;
- elif [ "${_shiftfl}" -gt 0 ]; then
- shift "${_shiftfl}"; continue;
- elif getopts a:b:C:D:F:hp:Pr:RxV: _opt; then
- case "${_opt}" in
- a) ARCH="${OPTARG}"; ;;
- b) BUILD_KIND="${OPTARG}"; ;;
- C) ARG_CLEAN_BUILDS="${OPTARG}"; ;;
- D) ARG_DIST="${OPTARG}"; ;;
- F) ARG_FETCH_FORCE="${OPTARG}"; ;;
- h)
- if [ -t 1 ]; then
- cat etc/build.usage.short;
- else
- sed 's/\[[0-9]\+m//g' etc/build.usage.short;
- fi; exit 0; ;;
- p) ARG_PARALLEL="${OPTARG}"; ;;
- P) ARG_PARALLEL="auto";
- if [ -n "${2:-}" ]\
- && rtl_isnumber "${2}"; then
- _rc=1; _status="maximum parallelisation job count is set with the \`-p jobs' option."; break
- fi; ;;
- r) ARG_RESTART="${OPTARG}"; ;;
- R) ARG_RELAXED=1; ;;
- x) ARG_VERBOSE_TAGS="${ARG_VERBOSE_TAGS:+${ARG_VERBOSE_TAGS},}xtrace"; ;;
- V) ARG_VERBOSE_TAGS="${OPTARG}"; ;;
- *) cat etc/build.usage.short; exit 1; ;;
- esac; shift $((${OPTIND}-1)); OPTIND=1;
- else if rtl_match "${1}" "=*"; then
- BUILD_GROUPS_INHIBIT_DEPS=1; _arg="${1#=}";
- else
- _arg="${1}";
- fi;
- case "${_arg}" in
- *=*) rtl_set_var_unsafe "${_arg%%=*}" "${_arg#*=}"; ;;
- [!a-zA-Z]*) _rc=1; _status="build group names must start with [a-zA-Z] (in argument \`${_arg}'.)"; ;;
- *[!_a-zA-Z]*) _rc=1; _status="build group names must not contain [!_a-zA-Z] (in argument \`${_arg}'.)"; ;;
- *) BUILD_GROUPS="$(rtl_lconcat "${BUILD_GROUPS}" "${_arg}")"; ;;
- esac; shift;
- fi;
- done;
- if [ "${_rc:-0}" -eq 0 ]; then
- case "${ARG_PARALLEL}" in
- auto) if ! ARG_PARALLEL="$(rtl_get_cpu_count)"; then
- _rc=1; _status="failed to get CPU count.";
- else
- ARG_PARALLEL=$((${ARG_PARALLEL}/2));
- fi; ;;
- max) if ! ARG_PARALLEL="$(rtl_get_cpu_count)"; then
- _rc=1; _status="failed to get CPU count.";
- fi; ;;
- "") ARG_PARALLEL=1; ;;
- *) if ! rtl_isnumber "${ARG_PARALLEL}"; then
- _rc=1; _status="invalid jobs count \`${ARG_PARALLEL}'.";
- fi; ;;
- esac;
- if [ "${_rc:-0}" -eq 0 ]; then
- DEFAULT_BUILD_CPUS="${ARG_PARALLEL}";
- fi;
- fi;
- return "${_rc}";
-};
-
-buildp_init_logging() {
- local _tag="" _tags="" _rc=0; _status="";
-
- rtl_log_clear_tags;
- case "${ARG_VERBOSE}" in
- 0) [ "${#ARG_VERBOSE_TAGS}" -eq 0 ] && rtl_log_enable_tags "${LOG_TAGS_normal}"; ;;
- 1) rtl_log_enable_tags "${LOG_TAGS_verbose}"; ;;
- *) _rc=1; _status="invalid verbosity level (max. -v)"; ;;
- esac;
- if [ "${_rc}" -eq 0 ]; then
- case "${ARG_VERBOSE_TAGS}" in
- +*) rtl_log_enable_tags "${LOG_TAGS_normal}";
- ARG_VERBOSE_TAGS="${ARG_VERBOSE_TAGS#+}"; ;;
- *) ;;
- esac;
- for _tag in $(rtl_llift "${ARG_VERBOSE_TAGS}" "," " "); do
- case "${_tag}" in
- all) rtl_log_enable_tags "${LOG_TAGS_all}"; ;;
- clear|none) rtl_log_clear_tags; ;;
- normal) rtl_log_enable_tags "${LOG_TAGS_normal}"; ;;
- verbose) rtl_log_enable_tags "${LOG_TAGS_verbose}"; ;;
- *)
- _tags="$(rtl_lsearch_patternl "${LOG_TAGS_all}" "${_tag}" ",")";
- if [ "${#_tags}" -gt 0 ]; then
- rtl_log_enable_tags "${_tags}";
- else
- _rc=1; _status="invalid log tag or tag pattern \`${_tag}'"; break;
- fi; ;;
- esac;
- done;
- fi;
- return "${_rc}";
-};
-
-buildp_init_prereqs() {
- if ! rtl_check_prereqs ${DEFAULT_PREREQS}; then
- printf "%s\n" "${_status}" >&2; exit 1;
- elif ! awk -V 2>/dev/null | grep -q "^GNU Awk "; then
- printf "Error: awk(1) in \$PATH must be GNU Awk." >&2; exit 1;
- elif ! (FNAME="$(mktemp)" && { trap "rm -f \"\${FNAME}\"" EXIT; \
- sed -i'' -e '' "${FNAME}" >/dev/null 2>&1; }); then
- printf "Error: sed(1) in \${PATH} does not support the \`-i' option.\n" >&2; exit 1;
- fi;
-};
-
-build_init() {
- local _rc=0; _status="";
- if ! buildp_init_env \
- || ! buildp_init_getopts "${@}" \
- || ! buildp_init_logging \
- || ! ex_pkg_load_vars \
- || ! buildp_init_prereqs \
- || ! buildp_init_args \
- || ! buildp_init_files; then
- _rc=1; _status="${_status}";
- fi; return "${_rc}";
-};
-
-# vim:filetype=sh foldmethod=marker
diff --git a/subr/ex_pkg.subr b/subr/ex_pkg.subr
deleted file mode 100644
index e8e3ecb4..00000000
--- a/subr/ex_pkg.subr
+++ /dev/null
@@ -1,286 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# ex_pkg_check_depends() - check single named package for unsatisfied dependencies
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_pkg_disabled: list of disabled packages
-# @_pkg_finished: list of finished packages
-# @_pkg_name: single package name
-# @_pkg_names: list of package names
-#
-# Return: zero (0) given no outstanding dependencies, non-zero (>0) otherwise
-#
-ex_pkg_check_depends() {
- local _checkfl="${1}" _pkg_disabled="${2}" _pkg_finished="${3}" _pkg_name="${4}" _pkg_names="${5}"\
- _dependfl=0 _pkg_depends="" _pkg_name_depend="";
- if [ "${_checkfl:-0}" -eq 1 ]\
- && _pkg_depends="$(rtl_uniq $(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS")))"; then
- for _pkg_name_depend in $(rtl_uniq ${_pkg_depends}); do
- if ! rtl_lmatch "${_pkg_disabled}" "${_pkg_name_depend}"\
- && ! rtl_lmatch "${_pkg_finished}" "${_pkg_name_depend}"; then
- if ! rtl_lmatch "${_pkg_names}" "${_pkg_name_depend}"; then
- rtl_log_msg "fatalexit" "${MSG_build_unknown_dep}" "${_pkg_name_depend}" "${_pkg_name}";
- else
- _dependfl=1; break;
- fi;
- fi;
- done;
- fi;
- return "${_dependfl}";
-};
-
-#
-# ex_pkg_find_package() - find build group a single named package belongs to
-# @_group_names: build group names
-# @_pkg_name: single named package
-#
-# Return: zero (0) on success, non-zero (>0) if package not found, group name on stdout if package was found.
-#
-ex_pkg_find_package() {
- local _group_names="${1}" _pkg_name="${2}" _foundfl=0 _group_name="" _pkg_names="";
- for _group_name in ${_group_names}; do
- if _pkg_names="$(rtl_get_var_unsafe -u "${_group_name}_PACKAGES")"\
- && [ -n "${_pkg_names}" ]\
- && rtl_lmatch "${_pkg_names}" "${_pkg_name}"; then
- _foundfl=1; break;
- fi;
- done;
- case "${_foundfl:-0}" in
- 0) return 1; ;;
- 1) printf "%s" "${_group_name}"; return 0; ;;
- esac;
-};
-
-#
-# ex_pkg_get_packages() - get list of packages belonging to single named build group
-# @_group_name: build group name
-#
-# Return: zero (0) on success, non-zero (>0) on failure, list of package names on stdout on success.
-#
-ex_pkg_get_packages() {
- local _group_name="${1}" _pkg_names="";
- if _pkg_names="$(rtl_get_var_unsafe -u "${_group_name}_PACKAGES")"\
- && [ -n "${_pkg_names}" ]; then
- printf "%s" "${_pkg_names}"; return 0;
- else
- return 1;
- fi;
-};
-
-#
-# ex_pkg_load_dump() - load package dump
-# @_pkg_name: package name
-#
-# Return: zero (0) on success, non-zero (>0) on failure, package dump post-return on success.
-#
-ex_pkg_load_dump() {
- local _pkg_name="${1}" _workdir="${2}" _rc=0; _status="";
- if [ ! -e "${_workdir}/${_pkg_name}.dump" ]; then
- rtl_log_msg "warning" "${MSG_pkgtool_no_env_dump}" "${_pkg_name}" "${_workdir}";
- rtl_log_msg "info" "${MSG_pkgtool_rebuilding_pkg}" "${_pkg_name}";
- (export ARCH BUILD_KIND BUILD_DLCACHEDIR BUILD_WORKDIR \
- PREFIX PREFIX_CROSS PREFIX_MINGW32 PREFIX_MINIPIX \
- PREFIX_NATIVE PREFIX_ROOT PREFIX_RPM;
- ./build.sh --dump-in _build -P -r "${_pkg_name}" -v);
- if [ ! -e "${_workdir}/${_pkg_name}.dump" ]; then
- _rc=1; _status="Error: failed to locate environment dump for package \`${_pkg_name}' in \`${_workdir}'.";
- fi;
- else
- _rc=0;
- fi;
- if [ "${_rc:-0}" -eq 0 ]\
- && ! . "${_workdir}/${_pkg_name}.dump"; then
- _rc=1; _status="Error: failed to source environment dump for package \`${_pkg_name}' from \`${_workdir}'.";
- elif [ "${_rc:-0}" -eq 0 ]\
- && ! rtl_fileop cd "${PKG_BUILD_DIR}"; then
- _rc=1; _status="Error: failed to change working directory to \`${PKG_BUILD_DIR}'.";
- fi; return "${_rc}";
-};
-
-#
-# ex_pkg_load_vars() - load build variables
-#
-# Return: zero (0) on success, non-zero (>0) on failure, build variables post-return on success.
-#
-ex_pkg_load_vars() {
- local _rc=0 _fname=""; _status="";
- if ! rtl_lmatch "${ARCH}" "nt32 nt64"; then
- _rc=1; _status="Error: invalid architecture \`${ARCH}'.";
- elif ! rtl_lmatch "${BUILD_KIND}" "debug release"; then
- _rc=1; _status="Error: unknown build type \`${BUILD_KIND}'.";
- else case "${ARCH}" in
- nt32) DEFAULT_TARGET="i686-nt32-midipix"; ;;
- nt64) DEFAULT_TARGET="x86_64-nt64-midipix"; ;;
- esac;
- for _fname in \
- "${HOME}/midipix_build.vars" \
- "${HOME}/.midipix_build.vars" \
- ../midipix_build.vars \
- ./midipix.env; do
- if [ -r "${_fname}" ]; then
- rtl_fileop source "${_fname}";
- fi;
- done;
- if [ -z "${PREFIX}" ]; then
- _rc=1; _status="Error: \${PREFIX} empty or unset.";
- fi;
- fi; return "${_rc}";
-};
-
-#
-# ex_pkg_load_groups() - load all available build groups
-#
-# Return: zero (0) on success, non-zero (>0) on failure, build groups loaded and ${EX_PKG_BUILD_GROUPS} and ${EX_PKG_BUILD_GROUPS_NOAUTO} set post-return.
-#
-ex_pkg_load_groups() {
- local _build_groups="" _build_groups_noauto="" _fname="" _group="" _groups="";
- for _fname in $(find ./groups -name *.group | sort); do
- rtl_fileop source_opt "${_fname}";
- if [ -n "${GROUP_TARGET:-}" ]; then
- _group="${GROUP_TARGET}"; unset GROUP_TARGET;
- else
- _group="${_fname##*/}"; _group="${_group%.group}"; _group="${_group#*.}";
- fi;
- if ! rtl_lmatch "${_groups}" "${_group}"; then
- _groups="$(rtl_lconcat "${_groups}" "${_group}")";
- if [ -n "${GROUP_AUTO:-}" ]; then
- if [ "${GROUP_AUTO:-0}" -ne 0 ]; then
- _build_groups="$(rtl_lconcat "${_build_groups}" "${_group}")";
- else
- _build_groups_noauto="$(rtl_lconcat "${_build_groups_noauto}" "${_group}")";
- fi;
- unset GROUP_AUTO;
- else
- _build_groups="$(rtl_lconcat "${_build_groups}" "${_group}")";
- fi;
- fi;
- done;
- EX_PKG_BUILD_GROUPS="$(rtl_uniq "${_build_groups}")";
- EX_PKG_BUILD_GROUPS_NOAUTO="$(rtl_uniq "${_build_groups_noauto}")";
-};
-
-#
-# ex_pkg_unfold_depends() - unfold list of package names into dependency-expanded set of complete, disabled, finished, and outstanding package names
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
-# @_group_name: build group name
-# @_pkg_names: list of package names
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_test_finished: only exclude disabled packages from ${EX_PKG_NAMES} (0,) split finished packages into ${EX_PKG_FINISHED}
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED}, ${EX_PKG_FINISHED}, and ${EX_PKG_NAMES} set post-return.
-#
-ex_pkg_unfold_depends() {
- local _checkfl="${1}" _forcefl="${2}" _group_name="${3}" _pkg_names="${4}" _restart="${5}" _test_finished="${6}"\
- _pkg_name="" _restartfl=0;
- if [ -n "${_restart}" ] && ! rtl_lmatch "${_restart}" "ALL LAST"; then
- _pkg_names="$(rtl_lsearch "${_pkg_names}" "${_restart}")";
- fi;
- if [ -n "${_restart}" ] && [ "${_checkfl:-0}" -eq 1 ]; then
- _pkg_names="$(rtl_uniq $(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' ${_pkg_names}))";
- fi;
- for _pkg_name in ${_pkg_names}; do
- if [ "${_restart}" = "ALL" ]\
- || rtl_lmatch "${_restart}" "${_pkg_name}"; then
- _restartfl=1;
- else
- _restartfl=0;
- fi;
- if [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DISABLED")" = "x1" ]; then
- EX_PKG_DISABLED="$(rtl_lconcat "${EX_PKG_DISABLED}" "${_pkg_name}")";
- _pkg_names="$(rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
- elif [ "${_test_finished:-1}" -eq 1 ]\
- && ex_pkg_state_test "${_pkg_name}" finish\
- && [ "${_restartfl:-0}" -eq 0 ]\
- && [ "${_forcefl:-0}" -ne 1 ]\
- && [ "x$(rtl_get_var_unsafe -u "${_group_name}_FORCE")" != "x1" ]; then
- EX_PKG_FINISHED="$(rtl_lconcat "${EX_PKG_FINISHED}" "${_pkg_name}")";
- _pkg_names="$(rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
- fi;
- done;
- EX_PKG_DISABLED="$(rtl_uniq ${EX_PKG_DISABLED})";
- EX_PKG_FINISHED="$(rtl_uniq ${EX_PKG_FINISHED})";
- EX_PKG_NAMES="$(rtl_uniq ${_pkg_names})";
-};
-
-#
-# ex_pkg_unfold_rdepends() - unfold list of package names into reverse dependency-expanded set of complete, disabled, finished, and outstanding package names
-# @_group_name: build group name
-# @_pkg_names: list of package names
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_test_finished: only exclude disabled packages from ${EX_PKG_NAMES} (0,) split finished packages into ${EX_PKG_FINISHED}
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED}, ${EX_PKG_FINISHED}, and ${EX_PKG_NAMES} set post-return.
-#
-ex_pkg_unfold_rdepends() {
- local _group_name="${1}" _pkg_names="${2}" _restart="${3}" _test_finished="${4}"\
- _pkg_depends="" _pkg_name="" _pkg_name_depend="" _pkg_rdepends="";
- for _pkg_name_depend in ${_restart}; do
- for _pkg_name in ${_pkg_names}; do
- if [ "${_pkg_name}" != "${_pkg_name_depend}" ]\
- && [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DISABLED")" != "x1" ]\
- && _pkg_depends="$(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS"))"\
- && [ -n "${_pkg_depends}" ]\
- && rtl_lmatch "${_pkg_depends}" "${_pkg_name_depend}"; then
- _pkg_rdepends="$(rtl_lconcat "${_pkg_rdepends}" "${_pkg_name}")";
- fi;
- done;
- done;
- _pkg_names="";
- for _pkg_name in ${_pkg_rdepends}; do
- if _pkg_depends="$(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS"))"\
- && [ -n "${_pkg_depends}" ]; then
- for _pkg_name_depend in ${_pkg_depends}; do
- if [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name_depend}_DISABLED")" = "x1" ]; then
- EX_PKG_DISABLED="$(rtl_lconcat "${EX_PKG_DISABLED}" "${_pkg_name_depend}")";
- elif [ "${_test_finished:-1}" -eq 1 ]\
- && ex_pkg_state_test "${_pkg_name_depend}" finish\
- && [ "x$(rtl_get_var_unsafe -u "${_group_name}_FORCE")" != "x1" ]\
- && ! rtl_lmatch "${_pkg_rdepends}" "${_pkg_name_depend}"; then
- EX_PKG_FINISHED="$(rtl_lconcat "${EX_PKG_FINISHED}" "${_pkg_name_depend}")";
- elif [ "${_test_finished:-1}" -eq 0 ]\
- || ! ex_pkg_state_test "${_pkg_name_depend}" finish\
- || [ "x$(rtl_get_var_unsafe -u "${_group_name}_FORCE")" = "x1" ]; then
- _pkg_names="$(rtl_lconcat "${_pkg_names}" "${_pkg_name_depend}")";
- fi;
- done;
- fi;
- _pkg_names="$(rtl_lconcat "${_pkg_names}" "${_pkg_name}")";
- done;
- EX_PKG_DISABLED="$(rtl_uniq ${EX_PKG_DISABLED})";
- EX_PKG_FINISHED="$(rtl_uniq ${EX_PKG_FINISHED})";
- EX_PKG_NAMES="$(rtl_uniq ${_pkg_names})";
-};
-
-#
-# ex_pkg_unfold_rdepends_direct() - unfold list of package names into direct reverse dependency-expanded set of disabled and outstanding package names
-# @_group_name: build group name
-# @_pkg_names: list of package names
-# @_restart: optional whitespace-separated list of package names to rebuild
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED} and ${EX_PKG_RDEPENDS_DIRECT} set post-return.
-#
-ex_pkg_unfold_rdepends_direct() {
- local _group_name="${1}" _pkg_names="${2}" _restart="${3}"\
- _pkg_depends="" _pkg_disabled="" _pkg_name="" _pkg_name_depend="" _pkg_rdepends="";
- for _pkg_name_depend in ${_restart}; do
- for _pkg_name in ${_pkg_names}; do
- if [ "${_pkg_name}" != "${_pkg_name_depend}" ]\
- && _pkg_depends="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DEPENDS")"\
- && [ -n "${_pkg_depends}" ]\
- && rtl_lmatch "${_pkg_depends}" "${_pkg_name_depend}"; then
- if [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DISABLED")" != "x1" ]; then
- _pkg_rdepends="$(rtl_lconcat "${_pkg_rdepends}" "${_pkg_name}")";
- else
- _pkg_disabled="$(rtl_lconcat "${_pkg_disabled}" "${_pkg_name}")";
- fi;
- fi;
- done;
- done;
- EX_PKG_DISABLED="$(rtl_uniq ${_pkg_disabled})";
- EX_PKG_RDEPENDS_DIRECT="$(rtl_uniq ${_pkg_rdepends})";
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
deleted file mode 100644
index 139cf94e..00000000
--- a/subr/ex_pkg_dispatch.subr
+++ /dev/null
@@ -1,255 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# exp_pkg_dispatch_complete() - XXX
-# @_dispatch_fn: top-level dispatch function name
-# @_group_names: build group name(s)
-# @_pkg_disabled: list of disabled packages
-# @_pkg_finished: list of finished packages
-#
-# Return: zero (0) on success, non-zero (>0) on failure.
-#
-exp_pkg_dispatch_complete() {
- local _dispatch_fn="${1}" _group_name="${2}" _pkg_disabled="${3}" _pkg_finished="${4}" _pkg_name="";
- for _pkg_name in ${_pkg_disabled}; do
- "${_dispatch_fn}" disabled_pkg "${_group_name}" "${_pkg_name}";
- done;
- for _pkg_name in ${_pkg_finished}; do
- "${_dispatch_fn}" skipped_pkg "${_group_name}" "${_pkg_name}";
- done;
-};
-
-#
-# exp_pkg_dispatch_expand_packages() - expand build group name to list of packages ordered and filtered according to dependency and restart constraints
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
-# @_group_name: build group name
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_reversefl: unfold reverse dependencies (1) or dependencies (0)
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED}, ${EX_PKG_FINISHED}, and ${EX_PKG_NAMES} set post-return.
-#
-exp_pkg_dispatch_expand_packages() {
- local _checkfl="${1}" _forcefl="${2}" _group_name="${3}" _restart="${4}" _reversefl="${5}"\
- _pkg_names=""; EX_PKG_DISABLED=""; EX_PKG_FINISHED=""; EX_PKG_NAMES="";
- if _pkg_names="$(rtl_get_var_unsafe -u "${_group_name}_PACKAGES")"\
- && [ -n "${_pkg_names}" ]; then
- if [ "${_reversefl:-0}" -eq 0 ]; then
- ex_pkg_unfold_depends "${_checkfl}" "${_forcefl}" "${_group_name}" "${_pkg_names}" "${_restart}" 1;
- else ex_pkg_unfold_rdepends "${_group_name}" "${_pkg_names}" "${_restart}" 1;
- fi;
- fi;
- return 0;
-};
-
-#
-# exp_pkg_dispatch_group() - dispatch a single build group
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_njobs_max: maximum count of simultaneous jobs
-# @_pipe_path: pathname to build FIFO
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_DISPATCH_COUNT_CUR} may be mutated post-return.
-#
-exp_pkg_dispatch_group() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _checkfl="${3}"\
- _dispatch_fn="${4}" _group_name="${5}" _njobs_max="${6}" _pipe_path="${7}"\
- _restart_at="${8}" _workdir="${9}" _perc_group=0 _perc_pkg=0 _pipe_msg=""\
- _pkg_name="" _rc=0;
- rtl_fileop mkfifo "${_pipe_path}";
- while true; do
- while [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -gt 0 ] && read _pipe_msg; do
- case "${_pipe_msg%% *}" in
- done) _pkg_name="${_pipe_msg#done * }"; : $((EXP_PKG_DISPATCH_COUNT_CUR+=1)); : $((EXP_PKG_DISPATCH_NJOBS-=1));
- EX_PKG_FINISHED="$(rtl_lconcat "${EX_PKG_FINISHED}" "${_pkg_name}")";
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- _perc_pkg="$(rtl_percentage "${EXP_PKG_DISPATCH_COUNT_CUR}" "${EXP_PKG_DISPATCH_COUNT_MAX}")";
- "${_dispatch_fn}" finish_pkg ${_pipe_msg#done } "${EXP_PKG_DISPATCH_COUNT_MAX}" "${_perc_group}" "${_perc_pkg}";
- EX_PKG_NAMES="$(rtl_lfilter "${EX_PKG_NAMES}" "${_pkg_name}")";
- EX_PKG_DISPATCH_WAIT="$(rtl_lfilter "${EX_PKG_DISPATCH_WAIT}" "${_pkg_name}")";
- if [ -n "${EX_PKG_NAMES}" ] && [ "${_rc}" -eq 0 ]; then
- if [ "${EXP_PKG_DISPATCH_NJOBS}" -ne "${_njobs_max}" ]; then
- exp_pkg_dispatch_packages "${_build_steps_default}" \
- "${_build_vars_default}" "${_checkfl}" \
- "${_dispatch_fn}" "${_group_name}" \
- "${_njobs_max}" "${_pipe_path}" \
- "${EX_PKG_DISABLED}" "${EX_PKG_FINISHED}" \
- "${_restart_at}" "${_workdir}";
- fi;
- elif [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -eq 0 ]; then
- break;
- fi; ;;
- fail) : $((EXP_PKG_DISPATCH_NJOBS-=1)); _rc=1;
- "${_dispatch_fn}" fail_pkg ${_pipe_msg#fail } "${EXP_PKG_DISPATCH_COUNT_MAX}"; ;;
- msg_pkg)
- "${_dispatch_fn}" msg_pkg ${_pipe_msg#msg_pkg }; ;;
- step) "${_dispatch_fn}" step_pkg ${_pipe_msg#step }; ;;
- esac; done <>"${_pipe_path}";
- if [ -n "${EX_PKG_NAMES}" ] && [ "${_rc}" -eq 0 ]; then
- if [ "${EXP_PKG_DISPATCH_NJOBS}" -ne "${_njobs_max}" ]; then
- exp_pkg_dispatch_packages "${_build_steps_default}" \
- "${_build_vars_default}" "${_checkfl}" \
- "${_dispatch_fn}" "${_group_name}" \
- "${_njobs_max}" "${_pipe_path}" \
- "${EX_PKG_DISABLED}" "${EX_PKG_FINISHED}" \
- "${_restart_at}" "${_workdir}";
- fi;
- elif [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -eq 0 ]; then
- break;
- fi;
- done;
- rtl_fileop rm "${_pipe_path}";
- return "${_rc}";
-};
-
-#
-# exp_pkg_dispatch_package() - dispatch single named packages
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_DISPATCH_NJOBS}, ${EXP_PKG_DISPATCH_COUNT}, ${EX_PKG_NAMES}, and ${EX_PKG_DISPATCH_WAIT} may be mutated post-return.
-#
-exp_pkg_dispatch_package() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _dispatch_fn="${3}"\
- _group_name="${4}" _pkg_name="${5}" _restart_at="${6}" _workdir="${7}"\
- _perc_group=0 _perc_pkg=0;
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- _perc_pkg="$(rtl_percentage "${EXP_PKG_DISPATCH_COUNT_CUR}" "${EXP_PKG_DISPATCH_COUNT_MAX}")";
- if "${_dispatch_fn}" start_pkg "${_group_name}" "${_pkg_name}" "$((${EXP_PKG_DISPATCH_COUNT}+1))" "${EXP_PKG_DISPATCH_COUNT_MAX}" "${_perc_group}" "${_perc_pkg}"; then
- : $((EXP_PKG_DISPATCH_NJOBS+=1)); : $((EXP_PKG_DISPATCH_COUNT+=1)); EX_PKG_DISPATCH_WAIT="$(rtl_lconcat "${EX_PKG_DISPATCH_WAIT}" "${_pkg_name}")";
- (trap "if [ \${?} -eq 0 ]; then \
- printf \"done %s %s %d\n\" \"${_group_name}\" \"${_pkg_name}\" \"${EXP_PKG_DISPATCH_COUNT}\" >&3; \
- else \
- printf \"fail %s %s %d\n\" \"${_group_name}\" \"${_pkg_name}\" \"${EXP_PKG_DISPATCH_COUNT}\" >&3; \
- pkill -U "${$}"; \
- fi;" EXIT HUP INT TERM USR1 USR2;
- set +o errexit -o noglob -o nounset; BUILD_IS_PARENT=0; rtl_log_set_fname ""; rtl_log_set_no_attr 1;
- if ex_pkg_env "${_build_steps_default}" "${_build_vars_default}" \
- "${_group_name}" 0 "${_pkg_name}" "${_restart_at}" "${_workdir}"; then
- ex_pkg_exec "${_dispatch_fn}" "${_group_name}" "${_pkg_name}" "${_restart_at}";
- else
- return 1;
- fi;) 1>"${_workdir}/${_pkg_name}_stderrout.log" 2>&1 3>"${_pipe_path}" &
- else
- return 1;
- fi;
-};
-
-#
-# exp_pkg_dispatch_packages() - dispatch set of packages
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_njobs_max: maximum count of simultaneous jobs
-# @_pipe_path: pathname to parent-child process FIFO
-# @_pkg_disabled: list of disabled packages
-# @_pkg_finished: list of finished packages
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_DISPATCH_NJOBS}, ${EXP_PKG_DISPATCH_COUNT}, ${EX_PKG_NAMES}, and ${EX_PKG_DISPATCH_WAIT} may be mutated post-return.
-#
-exp_pkg_dispatch_packages() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _checkfl="${3}"\
- _dispatch_fn="${4}" _group_name="${5}" _njobs_max="${6}" _pipe_path="${7}"\
- _pkg_disabled="${8}" _pkg_finished="${9}" _restart_at="${10}" _workdir="${11}"\
- _foundfl=0 _njob=0 _pkg_depends="" _pkg_name="";
- while [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -lt "${_njobs_max}" ]; do
- _foundfl=0;
- for _pkg_name in ${EX_PKG_NAMES}; do
- if ! rtl_lmatch "${_pkg_disabled}" "${_pkg_name}"\
- && ! rtl_lmatch "${_pkg_finished}" "${_pkg_name}"\
- && ! rtl_lmatch "${EX_PKG_DISPATCH_WAIT}" "${_pkg_name}"\
- && ex_pkg_check_depends "${_checkfl}" "${_pkg_disabled}" "${_pkg_finished}" \
- "${_pkg_name}" "${EX_PKG_NAMES}"; then
- exp_pkg_dispatch_package "${_build_steps_default}" \
- "${_build_vars_default}" "${_dispatch_fn}" \
- "${_group_name}" "${_pkg_name}" "${_restart_at}" \
- "${_workdir}"; _foundfl=1; break;
- fi;
- done;
- if [ "${_foundfl:-0}" -eq 0 ]; then
- break;
- fi;
- done;
-};
-
-#
-# ex_pkg_dispatch() - dispatch a set of build group
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_dispatch_fn: top-level dispatch function name
-# @_group_names: build group name(s)
-# @_groups_inhibit_deps: inhibit group-group dependency expansion
-# @_njobs_max: maximum count of simultaneous jobs
-# @_pipe_path: pathname to build FIFO
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_restart_recursive: optional flag specifiying either no dependency expansion (0,) dependency expansion (1,) dependency expansion and forcibly rebuild (2,) forcibly rebuild reverse dependencies (3.)
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISPATCH_WAIT} mutated post-return.
-#
-ex_pkg_dispatch() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _dispatch_fn="${3}" \
- _group_names="${4}" _groups_inhibit_deps="${5}" _njobs_max="${6}" _pipe_path="${7}" \
- _restart="${8}" _restart_at="${9}" _restart_recursive="${10}" _workdir="${11}" \
- _checkfl=1 _forcefl=0 _perc_group=0 _pkg_name="" _pkg_names="" _rc=0 _reversefl=0 \
- EX_PKG_DISABLED EX_PKG_FINISHED EX_PKG_NAMES EXP_PKG_DISPATCH_COUNT \
- EXP_PKG_DISPATCH_COUNT_CUR EXP_PKG_DISPATCH_COUNT_MAX EXP_PKG_DISPATCH_GROUP_CUR \
- EXP_PKG_DISPATCH_GROUP_MAX EXP_PKG_DISPATCH_NJOBS; EX_PKG_DISPATCH_WAIT="";
- case "${_groups_inhibit_deps:-0}" in
- 0) _group_names="$(rtl_uniq $(rtl_lunfold_depends '${_name}_GROUP_DEPENDS' ${_group_names}))";
- esac;
- if [ -n "${_restart}" ]; then
- case "${_restart_recursive:-0}" in
- 0) _checkfl=0; _forcefl=0; _reversefl=0; ;;
- 1) _checkfl=1; _forcefl=0; _reversefl=0; ;;
- 2) _checkfl=1; _forcefl=1; _reversefl=0; ;;
- 3) _checkfl=1; _forcefl=1; _reversefl=1; ;;
- esac;
- fi;
- EXP_PKG_DISPATCH_GROUP_CUR=0; EXP_PKG_DISPATCH_GROUP_MAX="$(rtl_llength "${_group_names}")";
- for _group_name in ${_group_names}; do
- EX_PKG_DISABLED=""; EX_PKG_DISPATCH_WAIT=""; EX_PKG_FINISHED=""; EX_PKG_NAMES="";
- EXP_PKG_DISPATCH_COUNT=0; EXP_PKG_DISPATCH_COUNT_CUR=0; EXP_PKG_DISPATCH_COUNT_MAX=0; EXP_PKG_DISPATCH_NJOBS=0;
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- if "${_dispatch_fn}" start_group "${_group_name}" "" "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}" "${_perc_group}"; then
- if rtl_fileop mkdir "${_workdir}"\
- && rtl_log_msg "verbose" "${MSG_build_resolving_deps}" "${_group_name}"\
- && exp_pkg_dispatch_expand_packages "${_checkfl}" "${_forcefl}" "${_group_name}" "${_restart}" "${_reversefl}"\
- && exp_pkg_dispatch_complete "${_dispatch_fn}" "${_group_name}" "${EX_PKG_DISABLED}" "${EX_PKG_FINISHED}"\
- && rtl_log_msg "verbose" "${MSG_build_resolved_deps}" "${_group_name}"\
- && EXP_PKG_DISPATCH_COUNT_MAX="$(rtl_llength "${EX_PKG_NAMES}")"\
- && [ "${EXP_PKG_DISPATCH_COUNT_MAX}" -gt 0 ]; then
- _pkg_names="$(rtl_lconcat "${_pkg_names}" "${EX_PKG_NAMES}")";
- exp_pkg_dispatch_group "${_build_steps_default}" \
- "${_build_vars_default}" "${_checkfl}" "${_dispatch_fn}" \
- "${_group_name}" "${_njobs_max}" "${_pipe_path}" \
- "${_restart_at}" "${_workdir}"; _rc="${?}";
- fi;
- : $((EXP_PKG_DISPATCH_GROUP_CUR+=1));
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- "${_dispatch_fn}" finish_group "${_group_name}" "" "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}" "${_perc_group}";
- if [ "${_rc}" -ne 0 ]; then
- break;
- fi;
- fi;
- done; return "${_rc}";
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr/ex_pkg_env.subr b/subr/ex_pkg_env.subr
deleted file mode 100644
index c13cfdfc..00000000
--- a/subr/ex_pkg_env.subr
+++ /dev/null
@@ -1,157 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# exp_pkg_env_defaults() - set package variable defaults for single named package
-# @_build_steps_default: list of default build steps
-# @_pkg_name: single package name
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_env_defaults() {
- local _build_steps_default="${1}" _pkg_name="${2}" _workdir="${3}";
- : ${PKG_NAME:="${_pkg_name}"};
- : ${MIDIPIX_BUILD_PWD:="$(pwd)"};
- : ${PKG_BASE_DIR:="${_workdir}/${_pkg_name}-${PKG_BUILD_TYPE}-${PKG_TARGET}"};
- if [ -n "${PKG_BUILD_STEPS_DISABLE:-}" ]; then
- : ${PKG_BUILD_STEPS:="$(rtl_lfilter "${_build_steps_default}" "${PKG_BUILD_STEPS_DISABLE:-}")"};
- else
- : ${PKG_BUILD_STEPS:="${_build_steps_default}"};
- fi;
- if [ -n "${PKG_URL:-}" ]; then
- : ${PKG_FNAME:="${PKG_URL##*/}"};
- fi;
- if [ -z "${PKG_SUBDIR:-}" ]; then
- if [ -n "${PKG_URLS_GIT:-}" ]\
- && [ -n "${PKG_FNAME:-}" ]; then
- rtl_log_msg "fatalexit" "${MSG_pkg_fail_missing_vars}";
- elif [ -n "${PKG_URLS_GIT:-}" ]; then
- PKG_SUBDIR="${PKG_URLS_GIT%%=*}";
- else case "${PKG_FNAME:-}" in
- *.t*) PKG_SUBDIR="${PKG_FNAME%%.t*}"; ;;
- *) PKG_SUBDIR="${_pkg_name}"; ;;
- esac; fi;
- fi;
- if [ -z "${PKG_BUILD_DIR:-}" ]; then
- case "${PKG_IN_TREE:-0}" in
- 0) PKG_BUILD_DIR="obj"; ;;
- 1) PKG_BUILD_DIR="${PKG_SUBDIR}"; ;;
- esac;
- fi;
- PKG_BUILD_DIR="${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
- PKG_CONFIGURE="${PKG_BASE_DIR}/${PKG_CONFIGURE:-${PKG_SUBDIR}/configure}";
- PKG_DESTDIR="${PKG_BASE_DIR}/${PKG_DESTDIR:-destdir}";
- PKG_DESTDIR_HOST="${PKG_BASE_DIR}/${PKG_DESTDIR_HOST:-destdir_host}";
-};
-
-#
-# exp_pkg_env_set() - set package variables for single named package
-# @_build_vars_default: list of default build variables
-# @_group_name: build group name
-# @_nounset: don't clear package variable namespace
-# @_pkg_name: single package name
-#
-# Sets package variables from either defaults, defaults specific to build type,
-# build group, package to inherit from if any, or package for a single named
-# package, exports variables optionally named in ${PKG_ENV_VARS_EXTRA}, and
-# clears the package variable namespace.
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_env_set() {
- local _build_vars_default="${1}" _group_name="${2}" _nounset="${3}" \
- _pkg_name="${4}" _cmd_name="" _var_prefixes="" _vars_set="" \
- _vname="" IFS IFS0;
-
- rtl_set_vars _vars_set BUILD_TYPE "DEFAULT ${_group_name} PKG_${_pkg_name}";
- rtl_set_vars _vars_set INHERIT_FROM "PKG_${_pkg_name}";
- _var_prefixes="$(rtl_toupper "DEFAULT DEFAULT_${PKG_BUILD_TYPE} ${_group_name}")";
- for _vname in $(rtl_lfilter "${_build_vars_default}" BUILD_TYPE); do
- if [ -n "${PKG_INHERIT_FROM:-}" ]; then
- rtl_set_vars _vars_set "${_vname}" \
- "$(rtl_lconcat "${_var_prefixes}" \
- "$(rtl_toupper "PKG_${PKG_INHERIT_FROM} PKG_${PKG_INHERIT_FROM}_${BUILD_KIND} PKG_${_pkg_name} PKG_${_pkg_name}_${BUILD_KIND}")")";
- else
- rtl_set_vars _vars_set "${_vname}" \
- "$(rtl_lconcat "${_var_prefixes}" \
- "$(rtl_toupper "PKG_${_pkg_name} PKG_${_pkg_name}_${BUILD_KIND}")")";
- fi;
- done;
- IFS0="${IFS:- }"; IFS=":"; for _vname in ${PKG_ENV_VARS_EXTRA:-}; do
- export "${_vname}";
- done; IFS="${IFS0}";
- if [ "${_nounset:-0}" -eq 0 ]; then
- rtl_unset_vars $(rtl_lfilter \
- "$(set | sed -ne '/^PKG_[^=]*=/s/=.*$//p' | paste -s -d " ")" \
- "${_vars_set}");
- fi;
-
- for _vname in AR CC CXX PKG_CONFIG RANLIB; do
- if eval [ '"${PKG_'"${_vname}"':+1}"' = 1 ]\
- && eval [ '"${PKG_'"${_vname}"'#/}"' = '"${_cmd_name:=${PKG_'"${_vname}"'}}"' ]; then
- eval PKG_${_vname}='$(which "${_cmd_name}")';
- fi; _cmd_name="";
- done;
-};
-
-#
-# ex_pkg_env() - set package variables for single named package
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_group_name: build group name
-# @_nounset: don't clear package variable namespace
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_env() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _group_name="${3}" \
- _nounset="${4}" _pkg_name="${5}" _restart_at="${6}" _workdir="${7}" \
- _inherit_from="" _vars_file="" _vname="";
-
- if _inherit_from="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_INHERIT_FROM")"\
- && [ "${#_inherit_from}" -gt 0 ]; then
- _vars_file="$(rtl_get_var_unsafe -u "PKG_${_inherit_from}_VARS_FILE")";
- else
- _vars_file="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_VARS_FILE")";
- fi;
- if [ "${#_vars_file}" -eq 0 ]; then
- _vars_file="vars/${_pkg_name}.vars";
- fi;
-
- rtl_fileop source_opt "${_vars_file}" "${_group_name}/${_pkg_name}.${_group_name}";
- if ! exp_pkg_env_set "${_build_vars_default}" "${_group_name}" "${_nounset}" "${_pkg_name}"\
- || ! exp_pkg_env_defaults "${_build_steps_default}" "${_pkg_name}" "${_workdir}"; then
- return 1;
- fi;
-};
-
-#
-# ex_pkg_state_set() - update build step status for single named package
-# @_pkg_name: single package name
-# @_build_step: build step set status of
-# [@${@}]: optional list of build steps to invalidate status of
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_state_set() {
- rtl_state_set "${_workdir}" "${@}";
-};
-
-#
-# ex_pkg_state_test() - test build step status of single named package
-# @_pkg_name: single package name
-# @_build_step: build step to test status of
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_state_test() {
- rtl_state_test "${_workdir}" "${@}";
-};
-
-# vim:filetype=sh
diff --git a/subr/ex_pkg_exec.subr b/subr/ex_pkg_exec.subr
deleted file mode 100644
index cd82756c..00000000
--- a/subr/ex_pkg_exec.subr
+++ /dev/null
@@ -1,136 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-exp_pkg_exec_filter_vars_fn() {
- local _vname="${1}";
- case "${_vname}" in
- DEFAULT|PKG_*)
- return 0; ;;
- BUILD_DLCACHEDIR|BUILD_WORKDIR|MIDIPIX_BUILD_PWD)
- return 0; ;;
- CONFIG_CACHE_GNULIB)
- return 0; ;;
- PREFIX|PREFIX_CROSS|PREFIX_MINGW32|PREFIX_MINIPIX|PREFIX_NATIVE|PREFIX_RPM)
- return 0; ;;
- *) return 1; ;;
- esac;
-};
-
-#
-# exp_pkg_exec_pre() - XXX
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_exec_pre() {
- local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}";
- if [ -z "${PKG_URL:-}" ]\
- && [ -z "${PKG_URLS_GIT:-}" ]\
- && [ -z "${PKG_VERSION:-}" ]\
- && [ -z "${PKG_INSTALL_FILES:-}" ]\
- && [ -z "${PKG_INSTALL_FILES_V2:-}" ]\
- && ! rtl_test_cmd "pkg_${_pkg_name}_all"; then
- "${_dispatch_fn}" missing_pkg "${_group_name}" "${_pkg_name}";
- return 1;
- elif ! ex_pkg_state_test "${_pkg_name}" "start" "${_restart_at}"; then
- if [ "${PKG_NO_CLEAN_BASE_DIR:-0}" -eq 0 ]\
- && ! rtl_fileop rm "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"\
- || ! rtl_fileop mkdir "${PKG_BASE_DIR}"; then
- return 1;
- fi;
- if ! rtl_fileop mkdir "${PKG_BUILD_DIR}" "${PKG_DESTDIR}"\
- || ! ex_pkg_state_set "${_pkg_name}" "start"; then
- return 1;
- fi;
- elif ! rtl_exists_any "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"\
- && ! rtl_fileop mkdir "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"; then
- return 1
- fi;
- rtl_fileop cd "${PKG_BUILD_DIR}";
-};
-
-#
-# exp_pkg_exec_step() - XXX
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_step: build step to execute
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_exec_step() {
- local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" _step="${4}" \
- _fn_name="" _pkg_step_fn="" _rc=0;
- if rtl_test_cmd "pkg_${_pkg_name}_${_step}"; then
- _pkg_step_fn="pkg_${_pkg_name}_${_step}";
- else
- _pkg_step_fn="pkg_${_step}";
- fi;
- for _fn_name in \
- "pkg_${_pkg_name}_${_step}_pre" \
- "${_pkg_step_fn}" \
- "pkg_${_pkg_name}_${_step}_post"; do
- if rtl_test_cmd "${_fn_name}"\
- && ! "${_fn_name}" "${_group_name}" "${_pkg_name}" "${_restart_at}"; then
- _rc=1; break;
- fi;
- done;
- return "${_rc}";
-};
-
-#
-# exp_pkg_exec() - XXX
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_exec() {
- local _dispatch_fn="${1}" _group_name="${2}" _pkg_name="${3}" _restart_at="${4}" \
- _build_step_last="" _rc=0 _step="";
-
- if ! exp_pkg_exec_pre "${_group_name}" "${_pkg_name}" "${_restart_at}"\
- || ! "${_dispatch_fn}" start_pkg_child "${_group_name}" "${_pkg_name}"; then
- _rc=1;
- elif rtl_test_cmd "pkg_${_pkg_name}_all"; then
- "pkg_${_pkg_name}_all" "${_restart_at}"; _rc="${?}";
- else set -- ${PKG_BUILD_STEPS};
- while [ ${#} -gt 0 ]; do
- _step="${1}"; shift;
- if [ "${#_restart_at}" -gt 0 ]\
- && [ "${_restart_at}" != "ALL" ]\
- && [ "${_restart_at}" != "LAST" ]\
- && ! rtl_lmatch "${_restart_at}" "${_step}" ","; then
- continue;
- fi;
- if [ "${_step}" = "${ARG_DUMP_IN}" ]; then
- printf "" > "${BUILD_WORKDIR}/${_pkg_name}.dump";
- rtl_filter_vars exp_pkg_exec_filter_vars_fn >> "${BUILD_WORKDIR}/${_pkg_name}.dump";
- export >> "${BUILD_WORKDIR}/${_pkg_name}.dump"; exit 1;
- elif [ "${_step}" = "finish" ]; then
- ex_pkg_state_set "${_pkg_name}" finish; break;
- elif [ "${PKG_FORCE:-0}" -eq 0 ]\
- && ex_pkg_state_test "${_pkg_name}" "${_step}" "${_restart_at}"; then
- continue;
- elif ! exp_pkg_exec_step "${_group_name}" "${_pkg_name}" "${_restart_at}" "${_step}"; then
- _rc=1; break;
- else printf "step %s %s %s\n" "${_group_name}" "${_pkg_name}" "${_step}" >&3;
- ex_pkg_state_set "${_pkg_name}" "${_step}" "${@}";
- fi;
- done;
- fi;
- if [ "${_rc:-0}" -ne 0 ]\
- && [ "${ARG_DUMP_ON_ABORT:-0}" -eq 1 ]; then
- printf "" > "${BUILD_WORKDIR}/${_pkg_name}.dump";
- rtl_filter_vars exp_pkg_exec_filter_vars_fn >> "${BUILD_WORKDIR}/${_pkg_name}.dump";
- export >> "${BUILD_WORKDIR}/${_pkg_name}.dump";
- fi;
- return "${_rc}";
-};
-
-# vim:filetype=sh
diff --git a/subr/ex_pkg_restart.subr b/subr/ex_pkg_restart.subr
deleted file mode 100644
index 9e51df8b..00000000
--- a/subr/ex_pkg_restart.subr
+++ /dev/null
@@ -1,293 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# exp_pkg_check_restart_at() - XXX
-# @_rspec_at: in reference to restart build step list
-#
-# Calling convention: in ref. @_rspec_at
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_check_restart_at() {
- local _epcra_rspec_at="${1#\$}" _epcra_len="" _epcra_rc=0 _epcra_spec_at=""; _status=""
-
- if ! rtl_llift2 "${_epcra_rspec_at}" \$_epcra_spec_at "," " "\
- || ! rtl_lfilter3 \$_epcra_spec_at "${DEFAULT_BUILD_STEPS} ALL LAST"\
- || ! rtl_llength2 \$_epcra_spec_at \$_epcra_len; then
- _epcra_rc=1;
- elif [ "${_epcra_len}" -gt 0 ]; then
- _status="unknown build step(s) \`${_epcra_spec_at}'"; _epcra_rc=1;
- fi; return "${_epcra_rc}";
-};
-
-#
-# exp_pkg_expand_restart_at_spec() - XXX
-# @_rset: in reference to restart virtual build step set
-# @_rspec_at: inout reference to restart build step list
-#
-# Calling convention: in ref. @_rset, inout ref. @_rspec_at
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_expand_restart_at_spec() {
- local _eperas_rset="${1#\$}" _eperas_rspec_at="${2#\$}" _eperas_at="" \
- _eperas_rc=0 _eperas_spec_at="" _eperas_spec_at_=""; _status="";
- eval _eperas_spec_at='${'"${_eperas_rspec_at}"'}';
-
- case "${_eperas_spec_at}" in
- ALL|LAST|"")
- ;;
-
- ^*)
- _eperas_spec_at="${_eperas_spec_at#^}";
- if exp_pkg_expand_restart_at_virtual \
- "${_eperas_spec_at}" \$_eperas_spec_at \
- "${_eperas_rset}" \
- && exp_pkg_check_restart_at \$_eperas_spec_at; then
- rtl_llift2 \$DEFAULT_BUILD_STEPS "${_eperas_rspec_at}" " " ",";
- rtl_llift2 \$_eperas_spec_at \$_eperas_spec_at_ "," " ";
- for _eperas_at in ${_eperas_spec_at_}; do
- rtl_lfilter3 "${_eperas_rspec_at}" "${_eperas_at}" ",";
- done; rtl_lfilter3 "${_eperas_rspec_at}" "finish" ",";
- else
- _eperas_rc=1;
- fi; ;;
-
- \<=*|\<*|\>=*|\>*)
- exp_pkg_expand_restart_at_spec_cmp \
- "${_eperas_rset}" "${_eperas_rspec_at}"; _eperas_rc="${?}"; ;;
-
- *)
- if ! exp_pkg_expand_restart_at_virtual \
- "${_eperas_spec_at}" "${_eperas_rspec_at}" \
- "${_eperas_rset}"; then
- _eperas_rc=1;
- fi; ;;
- esac;
-
- if [ "${_eperas_rc}" -eq 0 ]; then
- if ! exp_pkg_check_restart_at "${_eperas_rspec_at}"; then
- _epprs_rc=1;
- elif eval [ '"${'"${_eperas_rspec_at}"':+1}"' != 1 ]; then
- _status="zero-length build step list"; _epprs_rc=1;
- fi;
- fi;
- return "${_eperas_rc}";
-};
-
-#
-# exp_pkg_expand_restart_at_spec_cmp() - XXX
-# @_rset: in reference to restart virtual build step set
-# @_rspec_at: inout reference to restart build step list
-#
-# Calling convention: in ref. @_rset, inout ref. @_rspec_at
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_expand_restart_at_spec_cmp() {
- local _eperasc_rset="${1#\$}" _eperasc_rspec_at="${2#\$}" _eperasc_at="" \
- _eperasc_eqfl="" _eperasc_foundfl="" _eperasc_ltfl="" _eperasc_rc=0 \
- _eperasc_spec_at="" _eperasc_spec_at0="";
- eval _eperasc_spec_at0='${'"${_eperasc_rspec_at}"'}';
-
- [ "${_eperasc_spec_at0#<}" = "${_eperasc_spec_at0}" ]; _eperasc_ltfl="${?}";
- if [ "${_eperasc_spec_at0#[<>]=}" != "${_eperasc_spec_at0}" ]; then
- _eperasc_spec_at0="${_eperasc_spec_at0#[<>]=}"; _eperasc_eqfl=1;
- else
- _eperasc_spec_at0="${_eperasc_spec_at0#[<>]}"; _eperasc_eqfl=0;
- fi; _eperasc_spec_at="";
-
- if exp_pkg_expand_restart_at_virtual \
- "${_eperasc_spec_at0%%,*}" \$_eperasc_spec_at0 \
- "${_eperasc_rset}" \
- && exp_pkg_check_restart_at \$_eperasc_spec_at0; then
- if [ \( "${_eperasc_eqfl}" -eq 1 \) -a \( "${_eperasc_ltfl}" -eq 1 \) ]\
- || [ \( "${_eperasc_eqfl}" -eq 0 \) -a \( "${_eperasc_ltfl}" -eq 0 \) ]; then
- _eperasc_spec_at0="${_eperasc_spec_at0##*,}";
- elif [ \( "${_eperasc_eqfl}" -eq 1 \) -a \( "${_eperasc_ltfl}" -eq 0 \) ]\
- || [ \( "${_eperasc_eqfl}" -eq 0 \) -a \( "${_eperasc_ltfl}" -eq 1 \) ]; then
- _eperasc_spec_at0="${_eperasc_spec_at0%%,*}";
- fi;
-
- _eperasc_foundfl=0; for _eperasc_at in ${DEFAULT_BUILD_STEPS}; do
- if [ "${_eperasc_ltfl}" -eq 1 ]; then
- if [ "${_eperasc_at}" = "${_eperasc_spec_at0%%,*}" ]; then
- if [ "${_eperasc_eqfl}" -eq 1 ]; then
- _eperasc_spec_at="${_eperasc_spec_at:+${_eperasc_spec_at},}${_eperasc_at}";
- fi; break;
- fi;
- else
- if [ "${_eperasc_at}" = "${_eperasc_spec_at0%%,*}" ]; then
- _eperasc_foundfl=1; [ "${_eperasc_eqfl}" -eq 0 ] && continue;
- fi; [ "${_eperasc_foundfl}" -eq 0 ] && continue;
- fi;
- _eperasc_spec_at="${_eperasc_spec_at:+${_eperasc_spec_at},}${_eperasc_at}";
- done;
- else
- _eperasc_rc=1;
- fi;
-
- eval ${_eperasc_rspec_at}='${_eperasc_spec_at}';
- return "${_eperasc_rc}";
-};
-
-#
-# exp_pkg_expand_restart_at_virtual() - XXX
-# @_spec_at: restart build step list
-# @_rspec_at_new: out reference to new restart build step list
-# @_rset: inout reference to restart virtual build step set
-#
-# Calling convention: inout ref. @_rspec_recursive
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_expand_restart_at_virtual() {
- local _epera_spec_at="${1}" _epera_rspec_at_new="${2#\$}" _epera_rset="${3#\$}" \
- _epera_at="" _epera_IFS0="${IFS:- }" _epera_rc=0 _epera_spec_at_new="" \
- IFS; _status="";
-
- eval ${_epera_rspec_at_new}=;
- IFS=","; set -- ${_epera_spec_at}; IFS="${_epera_IFS0}";
- while [ "${#}" -gt 0 ]; do
- _epera_at="${1}"; shift;
- if [ "${_epera_at#@}" != "${_epera_at}" ]; then
- _epera_at="${_epera_at#@}";
- if [ "${_epera_at%[!0-9a-zA-Z_]*}" != "${_epera_at}" ]; then
- _status="invalid virtual build step \`${_epera_at}'"; _epera_rc=1;
- elif eval [ '"${'"${_epera_rset}${_epera_at}"':+1}"' = 1 ]; then
- eval _epera_at='${'"${_epera_rset}${_epera_at}"'}';
- else
- _status="unknown virtual build step \`${_epera_at}'"; _epera_rc=1;
- fi;
- fi;
- eval ${_epera_rspec_at_new}='${'"${_epera_rspec_at_new}"':+${'"${_epera_rspec_at_new}"'},}${_epera_at}';
- done;
- return "${_epera_rc}";
-};
-
-#
-# exp_pkg_expand_restart_recursive() - XXX
-# @_rspec: inout reference to restart {specification,package name list}
-# @_rrecursive: out reference to recursion flag
-#
-# Calling convention: inout ref. @_rspec, out ref. @_rrecursive
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_expand_restart_recursive() {
- local _eperr_rspec="${1#\$}" _eperr_rrecursive="${2#\$}" _eperr_spec=""; _status=""
- eval _eperr_spec='${'"${_eperr_rspec}"'}';
-
- case "${_eperr_spec}" in
- \*\*\*[a-zA-Z]*)
- eval ${_eperr_rspec}='${_eperr_spec#\*\*\*}' ${_eperr_rrecursive}=3; ;;
- \*\*[a-zA-Z]*) eval ${_eperr_rspec}='${_eperr_spec#\*\*}' ${_eperr_rrecursive}=2; ;;
- \*[a-zA-Z]*) eval ${_eperr_rspec}='${_eperr_spec#\*}' ${_eperr_rrecursive}=1; ;;
- ALL) eval ${_eperr_rrecursive}=2; ;;
- LAST) eval ${_eperr_rrecursive}=0; ;;
- esac;
- return 0;
-};
-
-#
-# exp_pkg_expand_restart_spec() - XXX
-# @_rspec: inout reference to restart {specification,package name list}
-# @_rspec_at: out reference to restart build step list
-#
-# Calling convention: inout ref. @_rspec, out ref. @_rspec_at, out ref. @_rrecursive
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_expand_restart_spec() {
- local _epers_rspec="${1#\$}" _epers_rspec_at="${2#\$}" _epers_last_pkg="" \
- _epers_rc=0 _epers_spec="" _epers_spec_at="" _epers_spec_at0="";
- eval _epers_spec='${'"${_epers_rspec}"'}';
-
- case "${_epers_spec}" in
- "") eval ${_epers_rspec_at}=; ;;
- ALL) eval ${_epers_rspec_at}=ALL; ;;
- LAST|LAST:*)
- case "${_epers_spec}" in
- LAST) eval ${_epers_rspec_at}=LAST; ;;
- LAST:*) eval ${_epers_rspec_at}='${_epers_spec#LAST:}'; ;;
- esac;
- if [ "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME:+1}" = 1 ]\
- && [ -e "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}" ]; then
- if read -r _epers_last_pkg <"${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}"\
- && rtl_fileop rm "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}"; then
- eval ${_epers_rspec}='${_epers_last_pkg}';
- else
- _status="failed to read or clear status of last failed package \`${_epers_last_pkg}'"; _epers_rc=1;
- fi;
- else
- _status="cannot rebuild last failed package"; _epers_rc=1;
- fi; ;;
-
- *:*) eval ${_epers_rspec}='${_epers_spec%:*}' ${_epers_rspec_at}='${_epers_spec#*:}'; ;;
- *) eval ${_epers_rspec_at}= ${_epers_rspec_at}=ALL; ;;
- esac;
- return "${_epers_rc}";
-};
-
-#
-# exp_pkg_init_restart_at_virtual() - XXX
-# @_rset: out reference to restart virtual build step set
-#
-# Calling convention: out ref. @_rset
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_init_restart_at_virtual() {
- local _eperav_rset="${1#\$}" _eperav_step="" _eperav_step_virtual="" _epera_steps="";
-
- rtl_lfilter2 \$DEFAULT_BUILD_STEPS \$_epera_steps "finish";
- for _eperav_step in ${_epera_steps}; do
- _eperav_step_virtual="${_eperav_step%%_*}";
- if eval [ '"${'"${_eperav_rset}${_eperav_step_virtual}"':+1}"' != 1 ]; then
- eval ${_eperav_rset}='"${'"${_eperav_rset}"':+${'"${_eperav_rset}"'},}${_eperav_step_virtual}"';
- fi;
- eval ${_eperav_rset}${_eperav_step_virtual}='"${'"${_eperav_rset}${_eperav_step_virtual}"':+${'"${_eperav_rset}${_eperav_step_virtual}"'},}${_eperav_step}"';
- done; return 0;
-};
-
-#
-# ex_pkg_process_restart_spec() - XXX
-# @_rspec: inout reference to restart {specification,package name list}
-# @_rspec_at: out reference to restart build step list
-# @_rrecursive: out reference to restart recursion flag
-#
-# Calling convention: inout ref. @_rspec, out ref. @_rspec_at
-# Returns: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_process_restart_spec() {
- local _epprs_rspec="${1#\$}" _epprs_rspec_at="${2#\$}" _epprs_rrecursive="${3#\$}" \
- _epprs_at="" _epprs_rc=0 _epprs_spec_at_new="" _epprs_step="" _epprs_step1="" \
- _epprs_virtual_set=""; _status="";
-
- if eval [ '"${'"${_epprs_rspec}"':+1}"' = 1 ]; then
- if exp_pkg_init_restart_at_virtual \$_epprs_virtual_set \
- && exp_pkg_expand_restart_spec "${_epprs_rspec}" \$_epprs_spec_at_new \
- && exp_pkg_expand_restart_recursive "${_epprs_rspec}" "${_epprs_rrecursive}" \
- && exp_pkg_expand_restart_at_spec \$_epprs_virtual_set \$_epprs_spec_at_new; then
- eval ${_epprs_rspec_at}=;
- case "${_epprs_spec_at_new}" in
- ALL|LAST)
- eval ${_epprs_rspec_at}='${_epprs_spec_at_new}'; ;;
- *)
- for _epprs_at in ${DEFAULT_BUILD_STEPS}; do
- if rtl_lmatch "${_epprs_at}" "${_epprs_spec_at_new}" ","; then
- eval ${_epprs_rspec_at}='${'"${_epprs_rspec_at}"':+${'"${_epprs_rspec_at}"'},}${_epprs_at}';
- fi;
- done;
- if eval [ '"${'"${_epprs_rspec_at}"'##*,}"' != "finish" ]; then
- rtl_lfilter2 "${_epprs_rspec_at}" \$_epprs_step "clean,finish" ","; _epprs_step="${_epprs_step##*,}";
- rtl_lfilter2 \$DEFAULT_BUILD_STEPS \$_epprs_step1 "clean finish"; _epprs_step1="${_epprs_step1##* }";
- if [ "${_epprs_step}" = "${_epprs_step1}" ]; then
- eval ${_epprs_rspec_at}='${'"${_epprs_rspec_at}"':+${'"${_epprs_rspec_at}"'},}finish';
- fi;
- fi; ;;
- esac; rtl_llift3 "${_epprs_rspec}" "," " " || _epprs_rc=1;
- else
- _epprs_rc=1;
- fi;
- rtl_sunset \$_epprs_virtual_set;
- fi;
- return "${_epprs_rc}";
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_build.subr b/subr/pkg_build.subr
deleted file mode 100644
index 1c6712f7..00000000
--- a/subr/pkg_build.subr
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_build() {
- local _libtool="" _makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-none}" _no_autoconf="" _rc=0 _subdir="";
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
- if [ "${_makeflags_verbosity}" = "none" ]; then
- _makeflags_verbosity="";
- fi;
- if [ ! -x "${PKG_CONFIGURE:-}" ]; then
- _no_autoconf=1;
- fi;
- for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
- if [ "${_subdir}" = ":" ]; then
- _subdir="";
- fi;
- if [ "${#_libtool}" -gt 0 ]; then
- export MAKE="make LIBTOOL=${_libtool}";
- fi;
- # N.B. We only specify CC= here if the current package does not use GNU
- # autoconf as it often abuses it by appending -std={gnu99,...} to it
- # instead of amending CFLAGS.
- rtl_run_cmd_unsplit "${PKG_MAKE}" \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- "AR=${PKG_AR}" "${_no_autoconf:+CC=${PKG_CC}}" "RANLIB=${PKG_RANLIB}" \
- "${PKG_CFLAGS_BUILD:+CFLAGS=${PKG_CFLAGS_BUILD}}" \
- "${PKG_CFLAGS_BUILD_EXTRA:+CFLAGS+=${PKG_CFLAGS_BUILD_EXTRA}}" \
- "${PKG_CPPFLAGS_BUILD:+CPPFLAGS=${PKG_CPPFLAGS_BUILD}}" \
- "${PKG_CPPFLAGS_BUILD_EXTRA:+CPPFLAGS+=${PKG_CPPFLAGS_BUILD_EXTRA}}" \
- "${PKG_CXXFLAGS_BUILD:+CXXFLAGS=${PKG_CXXFLAGS_BUILD}}" \
- "${PKG_CXXFLAGS_BUILD_EXTRA:+CXXFLAGS+=${PKG_CXXFLAGS_BUILD_EXTRA}}" \
- "${PKG_LDFLAGS_BUILD:+LDFLAGS=${PKG_LDFLAGS_BUILD}}" \
- "${PKG_LDFLAGS_BUILD_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_BUILD_EXTRA}}" \
- "${PKG_PKG_CONFIG:+PKG_CONFIG=${PKG_PKG_CONFIG}}" \
- "${PKG_PKG_CONFIG_LIBDIR:+PKG_CONFIG_LIBDIR=${PKG_PKG_CONFIG_LIBDIR}}" \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- ${_makeflags_verbosity} \
- ${_subdir:+-C "${_subdir}"}; _rc="${?}";
- if [ "${#_libtool}" -gt 0 ]; then
- unset MAKE;
- fi;
- if [ "${_rc}" -ne 0 ]; then
- return 1;
- fi;
- done;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_build_clean.subr b/subr/pkg_build_clean.subr
deleted file mode 100644
index 55dc19c5..00000000
--- a/subr/pkg_build_clean.subr
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_build_clean() {
- local _libtool="" _makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-}" \
- _no_autoconf="" _rc=0 _subdir="";
-
- if ex_pkg_state_test "${_pkg_name}" "build" "${_restart_at}"; then
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
- [ ! -x "${PKG_CONFIGURE:-}" ] && _no_autoconf=1;
-
- for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
- [ "${_subdir}" = ":" ] && _subdir="";
- [ "${#_libtool}" -gt 0 ] && export MAKE="make LIBTOOL=${_libtool}";
- rtl_run_cmd_unsplit "${PKG_MAKE}" \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- ${_makeflags_verbosity} \
- ${_subdir:+-C "${_subdir}"} \
- clean; _rc="${?}";
- [ "${#_libtool}" -gt 0 ] && unset MAKE;
- [ "${_rc}" -ne 0 ] && return 1;
- done; return 0;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_clean.subr b/subr/pkg_clean.subr
deleted file mode 100644
index a4a70d63..00000000
--- a/subr/pkg_clean.subr
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_clean() {
- if [ "${PKG_NO_CLEAN:-0}" -eq 0 ]; then
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "build" ","; then
- if ! rtl_fileop rm "${PKG_BUILD_DIR}"; then
- return 1;
- fi;
- fi;
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "dest" ","; then
- if ! rtl_fileop rm "${PKG_DESTDIR}"; then
- return 1;
- elif [ -e "${PKG_DESTDIR_HOST}" ]\
- && ! rtl_fileop rm "${PKG_DESTDIR_HOST}"; then
- return 1;
- fi;
- fi;
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "src" ","; then
- if ! rtl_fileop rm "${PKG_BASE_DIR}/${PKG_SUBDIR}"; then
- return 1;
- fi;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure.subr b/subr/pkg_configure.subr
deleted file mode 100644
index ea265076..00000000
--- a/subr/pkg_configure.subr
+++ /dev/null
@@ -1,184 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_configure_autotools() {
- local _libtool="" _rc=0;
-
- if ! [ -x "${PKG_CONFIGURE:-}" ]; then
- return 2;
- elif [ -d "${PKG_BASE_DIR}/${PKG_SUBDIR}/sofort" ]\
- || [ "${PKG_CONFIGURE_TYPE:-}" = "sofort" ]; then
- return 2;
- else
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
-
- rtl_export_vars \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}" \
- ${_libtool:+MAKE} ${_libtool:+"make LIBTOOL=${_libtool}"};
-
- AR="${PKG_AR}" \
- CC="${PKG_CC}" \
- RANLIB="${PKG_RANLIB}" \
- CFLAGS="${PKG_CFLAGS_CONFIGURE:-}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}" \
- CPPFLAGS="${PKG_CFLAGS_CONFIGURE:-}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}" \
- CXXFLAGS="${PKG_CXXFLAGS_CONFIGURE:-}${PKG_CXXFLAGS_CONFIGURE_EXTRA:+ ${PKG_CXXFLAGS_CONFIGURE_EXTRA}}" \
- LDFLAGS="${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}" \
- "${PKG_CONFIGURE}" ${PKG_CONFIGURE_ARGS:-} ${PKG_CONFIGURE_ARGS_EXTRA:-} ${PKG_CONFIGURE_ARGS_EXTRA_DEBUG:-};
- _rc=$((${?} ? 1 : ${_rc}));
-
- rtl_export_vars -u \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}" \
- ${_libtool:+MAKE} ${_libtool:+"make LIBTOOL=${_libtool}"};
- return "${_rc}";
- fi;
-};
-
-pkgp_configure_cmake() {
- local _cmake_args_auto"" _build_type="" _IFS0="${IFS:- }" _rc=0 IFS;
-
- if [ "${PKG_CMAKE_LISTFILE:+1}" != 1 ]\
- || ! [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/${PKG_CMAKE_LISTFILE}" ]; then
- _rc=2;
- else
- rtl_fileop rm config.cache || return 1;
- rtl_export_vars \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}";
-
- case "${BUILD_KIND}" in
- debug) _build_type="debug"; ;;
- release|*) _build_type="release"; ;;
- esac;
-
- _cmake_args_auto="
- -DCMAKE_AR=${PKG_AR}
- -DCMAKE_BUILD_TYPE=${_build_type}
- -DCMAKE_C_COMPILER=${PKG_CC}
- -DCMAKE_C_FLAGS=${PKG_CFLAGS_CONFIGURE:-}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_CPP_FLAGS=${PKG_CPPFLAGS_CONFIGURE:-}${PKG_CPPFLAGS_CONFIGURE_EXTRA:+ ${PKG_CPPFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_CXX_COMPILER=${PKG_CXX}
- -DCMAKE_CXX_FLAGS=${PKG_CXXFLAGS_CONFIGURE:-}${PKG_CXXFLAGS_CONFIGURE_EXTRA:+ ${PKG_CXXFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_EXE_LINKER_FLAGS=${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_FIND_ROOT_PATH=${PKG_PREFIX}
- -DCMAKE_INSTALL_PREFIX=
- -DCMAKE_LINKER=$(which "ld")
- -DCMAKE_MODULE_LINKER_FLAGS=${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_RANLIB=${PKG_RANLIB}
- -DCMAKE_SHARED_LINKER_FLAGS=${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}
- -DPKG_CONFIG_EXECUTABLE=${PKG_PKG_CONFIG}" || return 1;
-
- case "${PKG_BUILD_TYPE}" in
- host|cross)
- ;;
- native)
- _cmake_args_auto="${_cmake_args_auto:+${_cmake_args_auto}}
- -DCMAKE_LINKER=$(which "${PKG_TARGET}-ld")
- -DCMAKE_SYSROOT=${PKG_PREFIX}
- -DCMAKE_SYSTEM_NAME=Midipix" || return 1;
-
- case "${ARCH}" in
- nt32) _cmake_args_auto="${_cmake_args_auto:+${_cmake_args_auto}}
- -DCMAKE_SYSTEM_PROCESSOR=i686"; ;;
- nt64) _cmake_args_auto="${_cmake_args_auto:+${_cmake_args_auto}}
- -DCMAKE_SYSTEM_PROCESSOR=x86_64"; ;;
- esac; ;;
- esac;
-
- IFS="
- "; "${PKG_CMAKE}" \
- ${_cmake_args_auto} \
- ${PKG_CMAKE_ARGS:-} \
- ${PKG_CMAKE_ARGS_EXTRA:-} \
- "${PKG_BASE_DIR}/${PKG_SUBDIR}";
- _rc=$((${?} ? ${?} : ${_rc})); IFS="${_IFS0}";
-
- rtl_export_vars -u \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}";
- fi;
- return "${_rc}";
-};
-
-pkgp_configure_sofort() {
- local _rc=0 _vname="" _vnames="" _vval="";
-
- if ! [ -x "${PKG_CONFIGURE:-}" ]; then
- return 2;
- elif ! [ -d "${PKG_BASE_DIR}/${PKG_SUBDIR}/sofort" ]\
- && ! [ "${PKG_CONFIGURE_TYPE:-}" = "sofort" ]; then
- return 2;
- else
- for _vname in AR CC CXX LD RANLIB; do
- if eval [ '"${PKG_'"${_vname}"':+1}"' = 1 ]; then
- _vnames="${_vnames:+${_vnames} }${_vname}";
- eval ${_vname}='${PKG_'"${_vname}"'}'; export ${_vname};
- fi;
- if eval [ '"${PKG_SOFORT_NATIVE_'"${_vname}"':+1}"' = 1 ]; then
- _vnames="${_vnames:+${_vnames} }NATIVE_${_vname}";
- eval NATIVE_${_vname}='${PKG_SOFORT_NATIVE_'"${_vname}"'}'; export NATIVE_${_vname};
- fi;
- done;
- for _vname in CFLAGS CPPFLAGS CXXFLAGS LDFLAGS; do
- if eval [ '"${PKG_'"${_vname}"'_CONFIGURE:+1}"' = 1 ]; then
- eval _vval='${PKG_'"${_vname}"'_CONFIGURE}';
- if eval [ '"${PKG_'"${_vname}"'_CONFIGURE_EXTRA:+1}"' = 1 ]; then
- eval _vval='${_vval:+${_vval} }${PKG_'"${_vname}"'_CONFIGURE_EXTRA}';
- fi;
- _vnames="${_vnames:+${_vnames} }${_vname} ${_vname}_SHARED ${_vname}_STATIC";
- eval ${_vname}='${_vval}'\; ${_vname}_SHARED='${_vval}'\; ${_vname}_STATIC='${_vval}';
- export ${_vname} ${_vname}_SHARED ${_vname}_STATIC;
- fi;
- if eval [ '"${PKG_SOFORT_NATIVE_'"${_vname}"':+1}"' = 1 ]; then
- eval _vval='${PKG_SOFORT_NATIVE_'"${_vname}"'}';
- if eval [ '"${PKG_SOFORT_NATIVE_'"${_vname}"'_EXTRA:+1}"' = 1 ]; then
- eval _vval='${_vval:+${_vval} }${PKG_SOFORT_NATIVE_'"${_vname}"'_EXTRA}';
- fi;
- _vnames="${_vnames:+${_vnames} }NATIVE_${_vname}";
- eval NATIVE_${_vname}='${_vval}'; export NATIVE_${_vname};
- fi;
- done;
-
- RANLIB="${PKG_RANLIB}" \
- "${PKG_CONFIGURE}" \
- ${PKG_CONFIGURE_ARGS:-} \
- ${PKG_CONFIGURE_ARGS_EXTRA:-} \
- ${PKG_CONFIGURE_ARGS_EXTRA_DEBUG:-};
- _rc=$((${?} ? 1 : ${_rc}));
-
- for _vname in ${_vnames}; do
- unset "${_vname}";
- done;
- return "${_rc}";
- fi;
-};
-
-pkg_configure() {
- local _rc=0 _type="";
-
- for _type in autotools sofort cmake; do
- if [ "${PKG_CONFIGURE_TYPE:+1}" = 1 ]\
- && [ "${PKG_CONFIGURE_TYPE}" != "${_type}" ]; then
- continue;
- else
- pkgp_configure_${_type} "${@}"; _rc="${?}";
- case "${_rc}" in
- 0|1) return "${_rc}"; ;;
- 2) _rc=0; continue; ;;
- esac;
- fi;
- done;
- return "${_rc}";
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr/pkg_configure_autotools.subr b/subr/pkg_configure_autotools.subr
deleted file mode 100644
index 15d76566..00000000
--- a/subr/pkg_configure_autotools.subr
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_configure_autotools() {
- local _config_cache="" _config_guest_fname="" _fname="" _subdir_tgt="";
-
- if [ "${PKG_CONFIGURE_TYPE:+1}" = 1 ]\
- && [ "${PKG_CONFIGURE_TYPE}" != "autotools" ]; then
- return 0;
- fi;
-
- if [ "${PKG_AUTOCONF_CONFIG_GUESS:-midipix}" = "midipix" ]; then
- _config_guest_fname="config.guess";
- else
- _config_guest_fname="";
- fi;
-
- if rtl_exists_any "${PKG_BASE_DIR}/${PKG_SUBDIR}" \
- ${_config_guest_fname:+"${_config_guest_fname}"} \
- "configure.ac" "configure.in" "configure";
- then rtl_export_vars PKG_CONFIG "${PKG_PKG_CONFIG:-}" PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}";
- if [ "${PKG_FORCE_AUTORECONF:-0}" -eq 1 ]\
- && ! (cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && autoreconf -fiv); then
- return 1;
- fi;
- if [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/configure.ac" ]\
- && [ ! -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/configure" ]; then
- for _fname in bootstrap bootstrap.sh autogen.sh; do
- if [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/${_fname}" ]; then
- for _subdir_tgt in \
- "${PKG_BASE_DIR}/${PKG_SUBDIR}/build-aux" \
- "${PKG_BASE_DIR}/${PKG_SUBDIR}";
- do if [ -e "${_subdir_tgt}" ]; then
- if ! rtl_fileop install -m 0700 \
- "${MIDIPIX_BUILD_PWD}/etc/config.sub" \
- "${_subdir_tgt}/config.sub"; then
- return 1;
- fi;
- if [ "${PKG_AUTOCONF_CONFIG_GUESS:-midipix}" = "midipix" ]; then
- if ! rtl_fileop install -m 0700 \
- "${MIDIPIX_BUILD_PWD}/etc/config.guess"\
- "${_subdir_tgt}/config.guess"; then
- return 1;
- else
- break;
- fi;
- fi;
- fi;
- done;
- if ! (rtl_fileop cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && \
- /bin/sh "${_fname}"); then
- return 1;
- else
- break;
- fi;
- fi;
- done;
- if ! (rtl_fileop cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && autoconf); then
- return 1;
- fi;
- fi;
- for _fname in $(find "${PKG_BASE_DIR}/${PKG_SUBDIR}" -name config.sub); do
- if ! rtl_fileop mv "${_fname}" "${_fname}.orig"\
- || ! rtl_fileop install -m 0700 "${MIDIPIX_BUILD_PWD}/etc/config.sub" "${_fname}"; then
- return 1;
- fi;
- done;
- if [ "${PKG_AUTOCONF_CONFIG_GUESS:-midipix}" = "midipix" ]; then
- for _fname in $(find "${PKG_BASE_DIR}/${PKG_SUBDIR}" -name config.guess); do
- if ! rtl_fileop mv "${_fname}" "${_fname}.orig"\
- || ! rtl_fileop install -m 0700 "${MIDIPIX_BUILD_PWD}/etc/config.guess" "${_fname}"; then
- return 1;
- fi;
- done;
- fi;
- if [ "${PKG_BUILD_TYPE}" != host ]; then
- if ! rtl_fileop touch "${PKG_BUILD_DIR}/config.cache"; then
- return 1;
- else for _config_cache in \
- "${PKG_CONFIG_CACHE:-}" \
- "${PKG_CONFIG_CACHE_LOCAL:-}" \
- "${PKG_CONFIG_CACHE_EXTRA:-}";
- do if [ -n "${_config_cache}" ]\
- && ! printf "%s\n" "${_config_cache}" |\
- tr " " "\n" >> "${PKG_BUILD_DIR}/config.cache"; then
- return 1;
- fi;
- done;
- if ! sed -i"" "s,%PREFIX%,${PKG_PREFIX},g" "${PKG_BUILD_DIR}/config.cache"; then
- return 1;
- fi;
- fi;
- fi;
- rtl_export_vars -u PKG_CONFIG "${PKG_PKG_CONFIG:-}" PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}";
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure_clean.subr b/subr/pkg_configure_clean.subr
deleted file mode 100644
index 48549a90..00000000
--- a/subr/pkg_configure_clean.subr
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_configure_clean() {
- local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}";
-
- if ex_pkg_state_test \
- "${_pkg_name}" \
- "configure_patch_pre,configure_autotools,configure_patch,configure" \
- "${_restart_at}"; then
- if [ "${PKG_BUILD_DIR:-}" != "${PKG_SUBDIR:-}" ]; then
- rtl_fileop rm "${PKG_BUILD_DIR}" || return 1;
- rtl_fileop mkdir "${PKG_BUILD_DIR}" || return 1;
- rtl_fileop cd "${PKG_BUILD_DIR}" || return 1;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure_patch.subr b/subr/pkg_configure_patch.subr
deleted file mode 100644
index d7c84011..00000000
--- a/subr/pkg_configure_patch.subr
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_configure_patch() {
- local _patch_cwd="" _patch_dir="${MIDIPIX_BUILD_PWD}/patches" _patch_fname=""\
- _patches_done="" _pkg_name_full="${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}"\
- _strip_count=0;
-
- if [ -n "${PKG_FNAME:-}" ]\
- && [ -n "${PKG_URLS_GIT:-}" ]; then
- _patch_cwd="${PKG_BASE_DIR}"; _strip_count=0;
- else
- _patch_cwd="${PKG_BASE_DIR}/${PKG_SUBDIR}"; _strip_count=1;
- fi;
- set +o noglob;
- for _patch_fname in \
- "${_patch_dir}/${_pkg_name}/"*.patch \
- "${_patch_dir}/${_pkg_name_full}.local.patch" \
- "${_patch_dir}/${_pkg_name_full}.local@${BUILD_HNAME}.patch" \
- ${PKG_PATCHES_EXTRA:-}; do
- if [ -r "${_patch_fname}" ]\
- && ! rtl_lmatch "${_patches_done}" "${_patch_fname}"; then
- if ! patch -b -d "${_patch_cwd}" "-p${_strip_count}" < "${_patch_fname}"; then
- set -o noglob; return 1;
- else
- _patches_done="$(rtl_lconcat "${_patches_done}" "${_patch_fname}")";
- fi;
- fi;
- done; set -o noglob;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure_patch_pre.subr b/subr/pkg_configure_patch_pre.subr
deleted file mode 100644
index c78b65b2..00000000
--- a/subr/pkg_configure_patch_pre.subr
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_configure_patch_pre() {
- local _patch_path="";
- for _patch_path in \
- "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}_pre.local.patch" \
- "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}_pre.local@${BUILD_HNAME}.patch"; do
- if [ -r "${_patch_path}" ]\
- && ! patch -b -d "${PKG_BASE_DIR}/${PKG_SUBDIR}" -p1 < "${_patch_path}"; then
- return 1;
- fi;
- done;
-};
-
-pkgp_configure_patch_pre_chainport() {
- local _chainport_patch_dname="" _chainport_patch_fname="" _oldpwd="";
- _chainport_patch_dname="${PKG_BASE_DIR}/${PKG_SUBDIR}/patches/${PKG_NAME%%_*}";
- if [ -n "${PKG_VERSION:-}" ]; then
- _chainport_patch_fname="${BUILD_WORKDIR}/chainport/patches/${PKG_NAME%%_*}/${PKG_NAME%%_*}-${PKG_VERSION}.midipix.patch";
- fi;
- if [ -e "${_chainport_patch_fname}" ]; then
- if ! rtl_fileop mkdir "${_chainport_patch_dname}"\
- || ! rtl_fileop cp "${_chainport_patch_fname}" "${_chainport_patch_dname}"; then
- return 1;
- fi;
- fi;
-};
-
-pkg_configure_patch_pre() {
- if ! pkgp_configure_patch_pre_chainport\
- || ! pkgp_configure_patch_pre; then
- return 1;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_fetch_clean.subr b/subr/pkg_fetch_clean.subr
deleted file mode 100644
index 52797068..00000000
--- a/subr/pkg_fetch_clean.subr
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_fetch_clean() {
- local _dname="";
-
- if [ -n "${PKG_URLS_GIT:-}" ]; then
- if [ -n "${PKG_SUBDIR:-}" ]\
- && [ "${PKG_SUBDIR}" != "${PKG_URLS_GIT%%=*}" ]; then
- rtl_fileop rm "${PKG_SUBDIR}";
- fi;
- for _dname in ${PKG_URLS_GIT}; do
- _dname="${_dname%%=*}"; rtl_fileop rm "${_dname}";
- done;
- elif [ -n "${PKG_SUBDIR}" ]; then
- rtl_fileop rm "${PKG_SUBDIR}";
- fi; return 0;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_fetch_download.subr b/subr/pkg_fetch_download.subr
deleted file mode 100644
index 7a333947..00000000
--- a/subr/pkg_fetch_download.subr
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_fetch_download_clean_dlcache() {
- local _dlcachedir="${1}" _pkg_name="${2}" _pkg_fname="${3}" _pkg_urls_git="${4}"\
- _fname="" _skipfl=0 _url_spec="" _url_subdir="";
-
- for _fname in $(cd "${_dlcachedir}/${_pkg_name}" 2>/dev/null && find \
- -maxdepth 1 \
- -mindepth 1 \
- ${_pkg_fname:+-not -name "${_pkg_fname}"} \
- ${_pkg_fname:+-not -name "${_pkg_fname}.fetched"}); do
- _fname="${_fname#./}"; _skipfl=0;
- for _url_spec in ${_pkg_urls_git}; do
- _url_subdir="${_url_spec%%=*}"; _url_subdir="${_url_subdir##*/}";
- if [ "${_fname%.git}" = "${_url_subdir}" ]; then
- _skipfl=1; break;
- fi;
- done;
- if [ "${_skipfl}" -eq 0 ]; then
- _fname="${_dlcachedir}/${_pkg_name}/${_fname}";
- rtl_log_msg "verbose" "${MSG_rtl_fetch_rm_redundant}" "${_fname}" "${_pkg_name}";
- rtl_fileop rm "${_fname}";
- fi;
- done;
-};
-
-pkg_fetch_download_dlcache_subdir() {
- if [ -n "${PKG_INHERIT_FROM:-}" ]\
- && ! [ -e "${BUILD_DLCACHEDIR}/${PKG_NAME}" ]\
- && ! rtl_fileop ln_symbolic "${PKG_INHERIT_FROM}" "${BUILD_DLCACHEDIR}/${PKG_NAME}"; then
- return 1;
- elif [ -z "${PKG_INHERIT_FROM:-}" ]\
- && ! [ -e "${BUILD_DLCACHEDIR}/${PKG_NAME}" ]\
- && ! rtl_fileop mkdir "${BUILD_DLCACHEDIR}/${PKG_NAME}"; then
- return 1;
- else
- return 0;
- fi;
-};
-
-pkg_fetch_download() {
- if [ "${ARG_FETCH_FORCE:-}" != "offline" ]; then
- if [ -n "${PKG_URL:-}" ]; then
- if ! pkg_fetch_download_dlcache_subdir; then
- return 1;
- elif ! rtl_fetch_url_wget \
- "${PKG_URL}" "${PKG_SHA256SUM}" "${BUILD_DLCACHEDIR}/${PKG_NAME}"\
- "${PKG_FNAME}" "${PKG_NAME}" "${PKG_MIRRORS:-}"; then
- return 1;
- fi;
- fi;
- if [ -n "${PKG_URLS_GIT:-}" ]; then
- if ! pkg_fetch_download_dlcache_subdir; then
- return 1;
- elif ! rtl_fetch_urls_git \
- "${BUILD_DLCACHEDIR}/${PKG_NAME}" "${DEFAULT_GIT_ARGS}" "${PKG_BASE_DIR}"\
- "${PKG_NAME}" "${PKG_MIRRORS_GIT:-}" ${PKG_URLS_GIT}; then
- return 1;
- fi;
- fi;
- pkg_fetch_download_clean_dlcache "${BUILD_DLCACHEDIR}" "${PKG_NAME}" "${PKG_FNAME:-}" "${PKG_URLS_GIT:-}";
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_fetch_extract.subr b/subr/pkg_fetch_extract.subr
deleted file mode 100644
index b86c490a..00000000
--- a/subr/pkg_fetch_extract.subr
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_fetch_extract_type() {
- local _fname="${1}";
- if [ "${1##*.tar.}" != "${1}" ]; then
- printf "%s" "${1##*.tar.}";
- elif [ "${1##*.t}" != "${1}" ]; then
- printf "%s" "${1##*.t}";
- fi;
-};
-
-pkg_fetch_extract() {
- if [ -n "${PKG_URL:-}" ]; then
- _oldpwd="${PWD}";
- if ! rtl_fileop cd "${PKG_BASE_DIR}"\
- || ! rtl_fileop rm "${PKG_BASE_DIR}/${PKG_SUBDIR}"; then
- rtl_fileop cd "${_oldpwd}"; return 1;
- else
- case "$(pkgp_fetch_extract_type "${PKG_NAME}")" in
- bz2) bunzip2 -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
- gz) gunzip -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
- lz) lzip -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
- xz) xz -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
- *) tar -C "${PKG_BASE_DIR}" -xf "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}"; ;;
- esac;
- if [ "${?}" -ne 0 ]; then
- rtl_fileop cd "${_oldpwd}"; return 1;
- else
- rtl_fileop cd "${_oldpwd}";
- fi;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install.subr b/subr/pkg_install.subr
deleted file mode 100644
index e6e2497e..00000000
--- a/subr/pkg_install.subr
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install() {
- local _destdir="" _destdir_prefix="" _pkglist_name="";
- if ! rtl_fileop mkdir "${PKG_PREFIX}"; then
- return 1;
- else for _destdir in "${PKG_DESTDIR}:${PKG_PREFIX}" "${PKG_DESTDIR_HOST}:${PREFIX}"; do
- rtl_lassign "_destdir _destdir_prefix" ":" "${_destdir}";
- if [ -e "${_destdir}" ]; then
- (set +o errexit -o noglob; rtl_flock_acquire 4 || exit "${?}";
- trap "rm -f \"${BUILD_WORKDIR}/install.lock\"" EXIT;
- if ! tar -C "${_destdir}" -cpf - . | tar -C "${_destdir_prefix}" --overwrite -xpf -; then
- exit 1;
- fi) 4<>"${BUILD_WORKDIR}/install.lock";
- fi;
- done;
- if [ "${?}" -ne 0 ]; then
- return 1;
- elif [ "${PKG_PKGLIST_DISABLE:-0}" -eq 0 ]; then
- if [ ! -e "${PREFIX}/pkglist.${PKG_BUILD_TYPE}" ]\
- && ! touch "${PREFIX}/pkglist.${PKG_BUILD_TYPE}"; then
- return 1;
- else
- _pkglist_name="${PKG_BASE_DIR##*/}"; _pkglist_name="${_pkglist_name%%-*}";
- if ! printf "%s\n" "${_pkglist_name}" >> "${PREFIX}/pkglist.${PKG_BUILD_TYPE}"; then
- return 1;
- fi;
- fi;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_clean.subr b/subr/pkg_install_clean.subr
deleted file mode 100644
index 3d99f321..00000000
--- a/subr/pkg_install_clean.subr
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_clean() {
- if [ -n "${PKG_DESTDIR:-}" ]; then
- rtl_fileop rm "${PKG_DESTDIR}" || return 1;
- rtl_fileop mkdir "${PKG_DESTDIR}" || return 1;
- fi; return 0;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_files.subr b/subr/pkg_install_files.subr
deleted file mode 100644
index 0cd03e43..00000000
--- a/subr/pkg_install_files.subr
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_install_files() {
- if [ -n "${PKG_INSTALL_FILES:-}" ]; then
- if ! rtl_install -v "${PKG_DESTDIR}" ${PKG_INSTALL_FILES}; then
- return 1;
- fi;
- fi;
-};
-
-pkgp_install_files_v2() {
- local _vflag=""; _status="";
-
- if [ -n "${PKG_INSTALL_FILES_V2:-}" ]; then
- if rtl_lmatch "${ARG_VERBOSE_TAGS}" "install" ","; then
- _vflag="-v";
- fi;
- if ! rtl_install_v2 \
- -p "_builddir=${PKG_BUILD_DIR}" \
- -p "_destdir=${PKG_BASE_DIR}/${PKG_DESTDIR}" \
- -p "_destdir_host=${PKG_BASE_DIR}/${PKG_DESTDIR_HOST}" \
- -p "_files=${MIDIPIX_BUILD_PWD}/files/${PKG_NAME}" \
- -p "_name=${PKG_NAME}" \
- -p "_prefix=${PKG_PREFIX}" \
- -p "_prefix_host=${PREFIX}" \
- -p "_prefix_native=${PREFIX_NATIVE}" \
- -p "_subdir=${PKG_BASE_DIR}/${PKG_SUBDIR}" \
- -p "_target=${PKG_TARGET}" \
- -p "_version=${PKG_VERSION:-}" \
- -p "_workdir=${BUILD_WORKDIR}" \
- ${_vflag} -- "${PKG_DESTDIR}" \
- "${PKG_INSTALL_FILES_V2}"; then
- return 1;
- fi;
- fi;
-};
-
-pkgp_install_files_perms() {
- local _destdir="" _fname="" IFS;
- for _destdir in "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"; do
- if [ -e "${_destdir}" ]; then
- rtl_set_IFS_nl;
- for _fname in $(find "${_destdir}" -type d); do
- if ! rtl_fileop chmod 0755 "${_fname}"; then
- return 1;
- fi;
- done;
- for _fname in $(find "${_destdir}" \( -not -perm /0111 \) -type f); do
- if ! rtl_fileop chmod 0644 "${_fname}"; then
- return 1;
- fi;
- done;
- for _fname in $(find "${_destdir}" -perm /0111 -type f); do
- if ! rtl_fileop chmod 0755 "${_fname}"; then
- return 1;
- fi;
- done;
- fi;
- done;
-};
-
-pkgp_install_files_pkgconfig() {
- local _pc_path="";
- for _pc_path in $(find "${PKG_DESTDIR}" -name \*.pc); do
- if [ -n "$(sed -ne '/^libdir=[^$]*$/p' "${_pc_path}")" ] \
- && ! sed -i"" -e '/^libdir=[^$]*$/s/^libdir=\(.*\)$/libdir=${exec_prefix}\1/' \
- -e '/^exec_prefix=$/s/^.*$/exec_prefix=${prefix}/' \
- "${_pc_path}"; then
- return 1;
- fi;
- if [ -n "$(sed -ne '/^includedir=[^$]*$/p' "${_pc_path}")" ] \
- && ! sed -i"" -e '/^includedir=[^$]*$/s/^includedir=\(.*\)$/includedir=${prefix}\1/' \
- "${_pc_path}"; then
- return 1;
- fi;
- done;
-};
-
-pkgp_install_files_strip() {
- local _bin_path="" _stripfl=0 _tree_root="${PKG_DESTDIR}";
- if [ -e "${_tree_root}" ]; then
- if rtl_match "${PKG_NAME}" "*_minipix"; then
- : $((_stripfl=(${ARG_DEBUG_MINIPIX:-0} ? 0 : 1)));
- elif [ "${BUILD_KIND}" = release ]\
- && [ "${PKG_BUILD_TYPE}" = native ]; then
- _stripfl=1;
- else
- _stripfl=0;
- fi;
- if [ "${_stripfl:-0}" -eq 1 ]; then
- for _bin_path in $(find "${_tree_root}" -perm /a=x -type f); do
- if objdump -sj .debug_frame -j .debug_info "${_bin_path}" >/dev/null 2>&1; then
- rtl_log_msg "pkg_strip" "${MSG_pkg_strip}" "${_bin_path}";
- if ! "${PKG_TARGET}-strip" "${_bin_path}"; then
- return 1;
- fi;
- fi;
- done;
- fi;
- fi;
-};
-
-pkg_install_files() {
- if ! pkgp_install_files\
- || ! pkgp_install_files_v2\
- || ! pkgp_install_files_perms\
- || ! pkgp_install_files_pkgconfig\
- || ! pkgp_install_files_strip; then
- return 1;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_libs.subr b/subr/pkg_install_libs.subr
deleted file mode 100644
index 3dcc0ac2..00000000
--- a/subr/pkg_install_libs.subr
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_install_libs_purge_la() {
- local _la_path="";
- for _la_path in $(find "${PKG_DESTDIR}" -type f -name \*.la); do
- if ! rtl_fileop rm "${_la_path}"; then
- return 1;
- fi;
- done;
-};
-
-pkgp_install_libs_shared_link() {
- local _lib_name="${1}" _so_dir="${2}" _so_path="${3}" _lib_link_path="${3%.so*}.lib.a" _lib_link_tgt="";
- if _lib_link_tgt="$(find "${_so_dir}" -name "${_lib_name%%.*}.*.lib.a" | sort | tail -1)"\
- && [ -n "${_lib_link_tgt}" ]\
- && [ "${_lib_link_tgt}" != "${_lib_link_path}" ]; then
- if ! rtl_fileop rm "${_lib_link_path}"\
- || ! rtl_fileop ln_symbolic "$(rtl_basename "${_lib_link_tgt}")" "${_lib_link_path}"; then
- return 1;
- fi;
- fi;
-};
-
-pkgp_install_libs_shared() {
- local _lib_dst_path="" _lib_name="" _lib_src_path="" _so_dst_dir="" _so_src_path="";
- if [ "${PKG_BUILD_TYPE}" != "host" ]; then
- for _so_src_path in \
- $(find "${PKG_DESTDIR}" \
- \( -name "*.so" -or -name "*.so.*" \) -print);
- do if [ "$(readlink -f "${_so_src_path}")" != "/dev/null" ]\
- && [ -z "$(rtl_head "[0-9.]" "${_so_src_path##*.so}")" ]; then
- case "${_so_src_path}" in
- *.so) _lib_src_path="${_so_src_path%%.so}.lib.a"; ;;
- *.so.*) _lib_src_path="${_so_src_path%%.so.*}.${_so_src_path##*.so.}.lib.a"; ;;
- esac;
- _so_dst_dir="${_so_src_path%/*}";
- _lib_name="$(rtl_basename "${_lib_src_path}")";
- _lib_dst_path="${_so_dst_dir}/${_lib_name}";
- if [ ! -L "${_lib_src_path}" ]\
- && [ ! -e "${_lib_dst_path}" ]; then
- if ! (rtl_fileop cd "$(rtl_dirname "${_so_src_path}")" && \
- perk -e "$(rtl_basename "${_so_src_path}")" |\
- "${PKG_TARGET}-mdso" \
- -i "$(rtl_basename "${_lib_dst_path}")" \
- -n "$(rtl_basename "${_so_src_path}")" -); then
- return 1;
- fi;
- fi;
- if ! pkgp_install_libs_shared_link "${_lib_name}" "${_so_dst_dir}" "${_so_src_path}"; then
- return 1;
- fi;
- fi;
- done;
- fi;
-};
-
-pkg_install_libs() {
- if ! pkgp_install_libs_purge_la\
- || ! pkgp_install_libs_shared; then
- return 1;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_make.subr b/subr/pkg_install_make.subr
deleted file mode 100644
index f7ac4640..00000000
--- a/subr/pkg_install_make.subr
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_make() {
- local _libtool="" _rc=0 _subdir="";
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
- for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
- if [ "${_subdir}" = ":" ]; then
- _subdir="";
- fi;
- if [ "${#_libtool}" -gt 0 ]; then
- export MAKE="make LIBTOOL=${_libtool}";
- fi;
- rtl_run_cmd_unsplit "${PKG_MAKE}" \
- ${PKG_MAKEFLAGS_INSTALL:-} \
- ${PKG_MAKEFLAGS_INSTALL_EXTRA:-} \
- AR="${PKG_AR}" CC="${PKG_CC}" RANLIB="${PKG_RANLIB}" \
- "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- "${PKG_MAKE_INSTALL_VNAME:-DESTDIR}=${PKG_DESTDIR}/" \
- ${PKG_INSTALL_TARGET:-install} \
- ${_subdir:+-C "${_subdir}"}; _rc="${?}";
- if [ "${#_libtool}" -gt 0 ]; then
- unset MAKE;
- fi;
- if [ "${_rc}" -ne 0 ]; then
- return 1;
- fi;
- done;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_rpm.subr b/subr/pkg_install_rpm.subr
deleted file mode 100644
index 776034b2..00000000
--- a/subr/pkg_install_rpm.subr
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_rpm() {
- local _pkg_url="" _pkg_version_full="" _pkg_version_rpm="" _rc=0;
- if rtl_lmatch "${ARG_DIST}" "rpm" ","\
- && [ "${PKG_RPM_DISABLE:-0}" -eq 0 ]\
- && [ -x "$(which rpmbuild 2>/dev/null)" ]; then
- if [ -n "${PKG_URL:-}" ]; then
- _pkg_url="${PKG_URL%% *}"; _pkg_version_full="${PKG_VERSION}"; _pkg_version_rpm="${PKG_VERSION%%-*}";
- elif [ -n "${PKG_URLS_GIT:-}" ]; then
- _pkg_version_rpm="$(cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && git rev-parse HEAD)";
- _pkg_version_full="${_pkg_version_rpm} ($(cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && git rev-parse --abbrev-ref HEAD))";
- _pkg_url="${PKG_URLS_GIT%% *}"; _pkg_url="${_pkg_url##*=}"; _pkg_url="${_pkg_url%%@*}";
- if [ "${_pkg_url#${DEFAULT_GITROOT_HEAD}}" != "${_pkg_url}" ]; then
- _pkg_url="Unknown";
- fi;
- fi;
- if ! rtl_fileop cp "${MIDIPIX_BUILD_PWD}/etc/package.spec" \
- "${PKG_BASE_DIR}/${PKG_NAME}-${_pkg_version_rpm}.spec"; then
- return 1;
- else while true; do
- rpmbuild \
- -bb \
- --define="_tmppath ${BUILD_WORKDIR}" \
- --define="_topdir ${PREFIX_RPM}/${PKG_NAME}-${_pkg_version_rpm}" \
- --define="pkg_destdir ${PKG_DESTDIR}" \
- --define="pkg_name ${PKG_NAME}" \
- --define="pkg_url ${_pkg_url}" \
- --define="pkg_version_full ${_pkg_version_full}" \
- --define="pkg_version_rpm ${_pkg_version_rpm}" \
- --nodeps "${PKG_BASE_DIR}/${PKG_NAME}-${_pkg_version_rpm}.spec"; _rc="${?}";
- if [ "${_rc}" -eq 0 ]; then
- break;
- elif [ "${_rc}" -eq 141 ]; then
- continue;
- else
- return "${_rc}";
- fi;
- done;
- if ! find "${PREFIX_RPM}/${PKG_NAME}-${_pkg_version_rpm}/RPMS" \
- -iname \*.rpm -exec cp -pP {} "${PREFIX_RPM}/" \; \
- || ! rtl_fileop rm "${PREFIX_RPM}/${PKG_NAME}-${_pkg_version_rpm}" \
- || ! rtl_fileop cp "${PKG_BASE_DIR}/${PKG_NAME}-${_pkg_version_rpm}.spec" "${PREFIX_RPM}/"; then
- return 1;
- fi;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_subdirs.subr b/subr/pkg_install_subdirs.subr
deleted file mode 100644
index c9e4cd39..00000000
--- a/subr/pkg_install_subdirs.subr
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_subdirs() {
- local _spec="";
- for _spec in \
- "${PKG_INSTALL_FILES_DESTDIR:-}" \
- "${PKG_INSTALL_FILES_DESTDIR_EXTRA:-}"; do
- if ! rtl_install "${PKG_DESTDIR}" ${_spec}; then
- return 1;
- fi;
- done;
- if [ "${PKG_PREFIX%/}" = "${PREFIX_NATIVE%/}" ]; then
- if ! rtl_install "${PKG_DESTDIR}/${DEFAULT_TARGET}" ${PKG_INSTALL_FILES_DESTDIR}; then
- return 1;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkgtool_init.subr b/subr/pkgtool_init.subr
deleted file mode 100644
index 9d77d8d9..00000000
--- a/subr/pkgtool_init.subr
+++ /dev/null
@@ -1,153 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgtoolp_init_args() {
- local _rc=0; _status="";
- if [ "$((${ARG_INFO:-0} + ${ARG_MIRROR:-0} + ${ARG_RDEPENDS:-0} + ${ARG_SHELL:-0} + ${ARG_TARBALL:-0}))" -gt 1 ]; then
- cat etc/pkgtool.usage; _rc=1; _status="Error: only one of -i, -m and/or -M, -r, -s, or -t must be specified.";
- elif [ "$((${ARG_INFO:-0} + ${ARG_MIRROR:-0} + ${ARG_RDEPENDS:-0} + ${ARG_SHELL:-0} + ${ARG_TARBALL:-0}))" -eq 0 ]\
- && [ -z "${ARG_RESTART_AT}" ]\
- && [ "${ARG_UPDATE_DIFF:-0}" -eq 0 ]; then
- cat etc/pkgtool.usage; _rc=1; _status="Error: one of -i, -m and/or -M, -r, -s, or -t must be specified.";
- elif [ "${BUILD_HNAME:+1}" != 1 ]\
- && ! BUILD_HNAME="$(hostname)"; then
- _rc=1; _status="failed to obtain hostname.";
- else _rc=0; export TMP="${BUILD_WORKDIR}" TMPDIR="${BUILD_WORKDIR}";
- fi; return "${_rc}";
-};
-
-pkgtoolp_init_env() {
- local _fname="" _lang="${LANG:-C}" _name="" _rc=0; _status=""; _lang="${_lang%%_*}";
-
- if ! cd "${0%/*}"; then
- printf "Error: failed to change working directory to \`${0%/*}'." >&2; exit 1;
- elif ! umask 022; then
- printf "Error: failed to set umask(2).\n" >&2; exit 1;
- else for _fname in \
- $(find subr.rtl -name *.subr) \
- $(find subr -name *.subr) \
- etc/pkgtool.theme \
- ;
- do
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- done;
- if [ -e "etc/pkgtool.theme.local" ]; then
- if ! . "etc/pkgtool.theme.local"; then
- printf "Error: failed to source \`%s'.\n" "etc/pkgtool.theme.local" >&2; exit 1;
- fi;
- fi;
- for _name in pkgtool rtl; do
- for _lang_ in ${_lang} C; do
- _fname="etc/${_name}.msgs.${_lang_}";
- if [ -e "${_fname}" ]; then
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- if [ -e "${_fname}.local" ]; then
- if ! . "${_fname}.local"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}.local" >&2; exit 1;
- fi;
- fi; break;
- fi;
- done;
- done;
-
- fi; export LANG=C LC_ALL=C; return "${_rc}";
-};
-
-pkgtoolp_init_getopts() {
- local _opt="" _shiftfl=0 _rc=0 OPTIND=0; _status=""; : ${ARCH:="nt64"}; : ${BUILD_KIND:="debug"};
- ARG_INFO=0; ARG_MIRROR=0; ARG_MIRROR_DNAME=""; ARG_MIRROR_DNAME_GIT=""; ARG_RESTART_AT="";
- ARG_RDEPENDS=0; ARG_UPDATE_DIFF=0; ARG_SHELL=0; ARG_TARBALL=0; ARG_VERBOSE=0;
- while [ "${#}" -gt 0 ]; do
- case "${1}" in
- --update-diff)
- ARG_UPDATE_DIFF=1; _shiftfl=1; ;;
- --restart-at)
- if [ "${#}" -lt 2 ]\
- || [ -z "${2}" ]; then
- _rc=1; _status="Error: missing argument for option --restart-at.";
- else
- ARG_RESTART_AT="${2}"; _shiftfl=2;
- fi; ;;
- *) _shiftfl=0; ;;
- esac;
- if [ "${_rc:-0}" -ne 0 ]; then
- break;
- elif [ "${_shiftfl:-0}" -gt 0 ]; then
- shift "${_shiftfl}"; continue;
- elif getopts a:b:him:M:rstv _opt; then
- case "${_opt}" in
- a) ARCH="${OPTARG}"; ;;
- b) BUILD_KIND="${OPTARG}"; ;;
- h) cat etc/pkgtool.usage; exit 0; ;;
- i) ARG_INFO=1; ;;
- m) ARG_MIRROR=1; ARG_MIRROR_DNAME="${OPTARG}"; ;;
- M) ARG_MIRROR=1; ARG_MIRROR_DNAME_GIT="${OPTARG}"; ;;
- r) ARG_RDEPENDS=1; ;;
- s) ARG_SHELL=1; ;;
- t) ARG_TARBALL=1; ;;
- v) ARG_VERBOSE=1; ;;
- *) cat etc/pkgtool.usage; exit 1; ;;
- esac; shift $((${OPTIND}-1)); OPTIND=1;
- else case "${1}" in
- *=*) rtl_set_var_unsafe "${1%%=*}" "${1#*=}"; ;;
- *) PKGTOOL_PKG_NAME="${1}"; ;;
- esac; shift;
- fi;
- done;
- if [ "${_rc}" -eq 0 ]; then
- if [ -z "${PKGTOOL_PKG_NAME:-}" ]\
- && [ "${ARG_MIRROR:-0}" -eq 0 ]; then
- _rc=1; _status="Error: missing package name.";
- else export PKGTOOL_PKG_NAME;
- case "${ARG_VERBOSE:-0}" in
- 0) rtl_log_enable_tags "${LOG_TAGS_normal}"; ;;
- 1) rtl_log_enable_tags "${LOG_TAGS_verbose}"; ;;
- *) _rc=1; _status="Error: invalid verbosity level (max. -v)"; ;;
- esac;
- fi;
- fi; return "${_rc}";
-};
-
-pkgtoolp_init_getopts_help() {
- local _opt="";
- while getopts a:b:hirst _opt 2>/dev/null; do
- case "${_opt}" in
- h)
- if [ -t 1 ]; then
- cat etc/pkgtool.usage;
- else
- sed 's/\[[0-9]\+m//g' etc/pkgtool.usage;
- fi; exit 0; ;;
- esac; done; shift $((${OPTIND}-1));
-};
-
-pkgtoolp_init_prereqs() {
- if ! rtl_check_prereqs \
- awk bzip2 cat chmod cp date find grep hostname mkdir \
- mktemp mv paste printf readlink rm sed sort tar test \
- touch tr uniq; then
- printf "%s\n" "${_status}" >&2; exit 1;
- elif ! (FNAME="$(mktemp)" && { trap "rm -f \"\${FNAME}\"" EXIT; \
- sed -i'' -e '' "${FNAME}" >/dev/null 2>&1; }); then
- printf "Error: sed(1) in \${PATH} does not support the \`-i' option.\n" >&2; exit 1;
- fi;
-};
-
-pkgtool_init() {
- local _fname="" _rc=0; _status="";
- if ! pkgtoolp_init_env \
- || ! pkgtoolp_init_getopts_help "${@}" \
- || ! pkgtoolp_init_prereqs \
- || ! pkgtoolp_init_getopts "${@}" \
- || ! ex_pkg_load_vars \
- || ! pkgtoolp_init_args; then
- _rc=1; _status="${_status}";
- fi; return "${_rc}";
-};
-
-# vim:filetype=sh