summaryrefslogtreecommitdiffhomepage
path: root/pkgtool.sh
AgeCommit message (Collapse)AuthorFilesLines
2023-03-13Followup to <fd38dc025f5d31890abbf3d48c597114203b1421>.Lucía Andrea Illanes Albornoz1-5/+5
2023-03-13Move patches & vars pathname defaults handling into subr.ex/ex_pkg.subr.Lucía Andrea Illanes Albornoz1-13/+10
2023-03-13pkgtool.sh:pkgtoolp_info(): fix typo.Lucía Andrea Illanes Albornoz1-2/+2
2023-03-13pkgtool.sh: optionally source ${HOME}/pkgtool.vars to provide defaults for ↵Lucía Andrea Illanes Albornoz1-4/+20
-a, -b, -m, -M. etc/pkgtool.usage: updated. etc/README.md: updated.
2023-02-19subr.ex/ex_pkg.subr:ex_pkg_load_vars(): prepend ${PREFIX} w/ ${PWD%/}/ if ↵Lucía Andrea Illanes Albornoz1-1/+1
not absolute pathname.
2023-02-19Reject empty variables from the command line.Lucía Andrea Illanes Albornoz1-3/+10
2023-02-18pkgtool.sh: print list of failed packages when mirroring.Lucía Andrea Illanes Albornoz1-9/+16
2023-02-18pkgtool.sh: correctly set ${PKG_FNAME} if empty.Lucía Andrea Illanes Albornoz1-3/+15
2023-02-18pkgtool.sh: check ${PKG_{URL{,S},SHA256SUM}} are non-zero length.Lucía Andrea Illanes Albornoz1-2/+16
2023-02-18Update copyright legends.Lucía Andrea Illanes Albornoz1-1/+1
2023-02-17Make everything a bit faster.Lucía Andrea Illanes Albornoz1-233/+410
0) Issues several prayers and sacrifices to Enki under threat of a terrible deluge sent down by Ellil 1) Convert fork-write/read exprs to be non-forking 2) Pass mostly everything by reference 3) Don't bother cleaning the variable namespace because Bourne shell is an abomination 4) Removes broken ./pkgtool.sh -s, --restart-at, --update-diff & ./build.sh --dump-{in,on-abort} 5) Cleanup
2022-06-24{build,pkgtool}.sh, etc/LICENCE, midipix.env: update copyright legend.Lucía Andrea Illanes Albornoz1-1/+1
2021-08-27Implements localised message files, pt. II.Lucio Andrés Illanes Albornoz1-2/+2
2021-08-26Implements localised message files.Lucio Andrés Illanes Albornoz1-35/+37
2021-08-26Implements logging tags, tag sets, and themes.Lucio Andrés Illanes Albornoz1-33/+33
subr/pkgtool_init.subr:pkgtoolp_init_args(): set ${BUILD_HNAME}.
2021-08-26{build,pkgtool}.sh: log environment variables at "notice" level.Lucio Andrés Illanes Albornoz1-2/+2
subr.rtl/rtl_log.subr:${RTL_LOG_MSG_{NOTICE,VERBOSE}_COLOUR}: swap.
2021-08-25{build,pkgtool}.sh: export LANG=C LC_ALL=C during execution for performance ↵Lucio Andrés Illanes Albornoz1-1/+2
reasons.
2021-04-06pkgtool.sh:pkgtoolp_mirror_fetch(): call pkg_fetch_download_clean_dlcache() ↵Lucio Andrés Illanes Albornoz1-14/+14
post-{archive,Git} mirroring. pkgtool.sh:pkgtoolp_mirror_fetch(): mirror both archive as well as Git URL(s). subr/pkg_configure_patch.subr:pkg_configure_patch(): apply patches from within ${PKG_BASE_DIR} given both ${PKG_FNAME} and ${PKG_URLS_GIT}. subr.rtl/rtl_fetch.subr:rtl_fetch_mirror_urls_git(): ignore all but last component in ${_subdir}. subr.rtl/rtl_fetch.subr:rtl_fetch_mirror_urls_git(): create prerequisite directories. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): ignore all but last component in ${_subdir} wrt. ${_cache_dlname}. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): create prerequisite directories wrt. ${_tgtdir}. subr/ex_pkg_env.subr:exp_pkg_env_defaults(): reject absence of ${PKG_SUBDIR} given both ${PKG_FNAME} and ${PKG_URLS_GIT}. subr/pkg_fetch_download.subr:pkg_fetch_download_clean_dlcache(): initial implementation. subr/pkg_fetch_download.subr:pkg_fetch_download(): call pkg_fetch_download_clean_dlcache() post-{archive,Git} download.
2021-04-05{build,pkgtool}.sh: update copyright legend.Lucio Andrés Illanes Albornoz1-1/+1
etc/README.md: updated.
2021-04-05pkgtool.sh:pkgtoolp_mirror_fetch(), subr/pkgtool_init.subr: implement and ↵Lucio Andrés Illanes Albornoz1-7/+7
honour -v. etc/{pkgtool.usage,README.md}: updated.
2021-04-05pkgtool.sh:pkgtoolp_mirror_fetch(): clean up archive URL(s) mirror directory ↵Lucio Andrés Illanes Albornoz1-1/+10
post-successful mirroring.
2021-04-05pkgtool.sh:pkgtoolp_mirror(): substitute `~' in ${_mirror_dname{,_git}} w/ ↵Lucio Andrés Illanes Albornoz1-0/+2
${HOME} for convenience.
2021-04-05pkgtool.sh:pkgtool{,p_mirror}(): split -m <dname1>,<dname2> into -m <dname> ↵Lucio Andrés Illanes Albornoz1-8/+13
-M <dname> for convenience. subr/pkgtool_init.subr: split -m <dname1>,<dname2> into -m <dname> -M <dname> for convenience. etc/{pkgtool.usage,README.md}: updated.
2021-04-05pkgtool.sh:pkgtoolp_mirror_fetch(): honour and pass ${PKG_FNAME}, if present.Lucio Andrés Illanes Albornoz1-2/+5
2021-03-14pkgtool.sh:pkgtoolp_mirror_fetch(): skip mirroring of Git URL(s) if ↵Lucio Andrés Illanes Albornoz1-1/+3
${PKG_MIRRORS_GIT} specifies `skip'. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): skip attempting to use Git URL(s) mirror if ${_mirrors} specifies `skip'. groups/120.native_runtime.group:{ntctty,psxscl{,_strace}}:${PKG_MIRRORS_GIT}: skip mirroring.
2021-02-19pkgtool.sh:pkgtoolp_mirror_fetch(): don't fail given skipped package w/ no URLs.Lucio Andrés Illanes Albornoz1-1/+1
2021-01-24Reimplements Git repository mirroring because Git is a special snowflake.Lucio Andrés Illanes Albornoz1-16/+35
etc/{README.md,pkgtool.usage}: updated. groups/221.native_packages_dev.group:cparser:${PKG_DISABLED}: disabled due to repository unavailability. groups/251.native_packages_lib.group:libfirm:${PKG_DISABLED}: disabled due to repository unavailability. midipix.env:${DEFAULT_BUILD_VARS}: adds MIRRORS_GIT. midipix.env:${DEFAULT_MIRRORS{,_GIT}}: split; mirror Git repositories via https://midipix.lucioillanes.de/repos_git/. pkgtool.sh:pkgtoolp_mirror_fetch(): call rtl_fetch_mirror_urls_git() vs. rtl_fetch_urls_git(). pkgtool.sh:pkgtoolp_mirror_fetch(): symlink instead of downloading given package w/ parent package. pkgtool.sh:pkgtoolp_mirror{,_fetch}(): split archives vs. Git repositories directory name. subr.rtl/rtl_fetch.subr: factor out ${DEFAULT_GIT_ARGS}. subr.rtl/rtl_fetch.subr:rtl_fetch_mirror_urls_git(): initial implementation. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): always return on failure. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): correctly attempt to git-clone(1) from ${PKG_URL} and then via ${PKG_MIRRORS}. subr.rtl/rtl_fetch.subr:{rtlp_fetch_url_git,rtl_fetch_urls_git}(): cleanup. {subr/pkg_fetch_download.subr,vars/{gcc,python[23]{,_host}}.vars}: call rtl_fetch_urls_git() w/ ${PKG_NAME} and ${PKG_MIRRORS_GIT:-}.
2021-01-24pkgtool.sh:pkgtoolp_mirror_fetch(): skip disabled packages.Lucio Andrés Illanes Albornoz1-22/+27
2021-01-23Implements setting up & fetching from mirrors.Lucio Andrés Illanes Albornoz1-0/+43
etc/pkgtool.usage: updated. etc/README.md: updated. pkgtool.sh:pkgtoolp_mirror{,_fetch}(): initial implementation. subr/pkg_fetch_download.subr: default to empty ${PKG_MIRRORS}. subr/pkg_fetch_download.subr: factor out ${ARG_FETCH_FORCE} check and ${BUILD_DLCACHEDIR}. subr/pkgtool_init.subr: updated. subr.rtl/rtl_fetch.subr:rtl_fetch_urls_{git,wget}(): factor out ${ARG_FETCH_FORCE} check and ${BUILD_DLCACHEDIR}; minor cleanup. subr.rtl/rtl_fetch.subr:rtl_fetch_url_wget(): return vs. exit on fatal failure. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): copy only if ${_cache_dname} != ${_tgtdir}. subr.rtl/rtl_fetch.subr:rtlp_fetch_url_git(): return if unable to git-clone(1). subr.rtl/rtl_fetch.subr:{rtlp_fetch_url_git,rtl_fetch_urls_git}(): implement Git repository mirroring. vars/{gcc,python[23]{,_host}}.vars: updated.
2020-05-11pkgtool.sh:pkgtoolp_info(): additionally print SHA-256 message digests of ↵Lucio Andrés Illanes Albornoz1-3/+18
patch and/or variable files.
2020-04-29Designate {debug,release} build as build kind.Lucio Andrés Illanes Albornoz1-2/+2
2020-04-25pkgtool.sh:pkgtoolp_info(): additionally print build group.Lucio Andrés Illanes Albornoz1-0/+1
2020-04-25pkgtool.sh:pkgtoolp_rdepends(): print direct reverse dependencies in bright ↵Lucio Andrés Illanes Albornoz1-7/+13
yellow and their dependencies in dark yellow, if any. subr/ex_pkg.subr:ex_pkg_unfold_depends_direct(): initial implementation.
2020-03-15Set -o nounset in addition to +o errexit -o nounset.Lucio Andrés Illanes Albornoz1-2/+2
groups/000.host_tools.group:libtool_host:${PKG_LIBTOOL}: build w/ `none'. subr/build_init.subr:buildp_init_getopts(): set ${DEFAULT_BUILD_CPUS} prior to ex_pkg_load_vars() call. subr/pkg_{build,install_make}.subr: only pass `LIBTOOL=${PKG_LIBTOOL}' if set and not `none'. vars/libtool_host.vars: removes obsolete vars file.
2020-03-15General cleanup.Lucio Andrés Illanes Albornoz1-103/+135
2020-03-13Implements ./pkgtool.sh -[irt] options.Lucio Andrés Illanes Albornoz1-28/+86
etc/{README.md,pkgtool.usage}: updated. subr/ex_pkg.subr:ex_pkg_{find_package,get_packages}(): initial implementation. subr/ex_pkg.subr:ex_pkg_unfold_{,r}depends(): split from ex_pkg_expand_packages(). subr/ex_pkg{,_dispatch}.subr: removes ${EX_PKG_COMPLETE} scoped global. subr/ex_pkg_dispatch.subr:exp_pkg_dispatch_expand_packages(): split from subr/ex_pkg.subr. subr/rtl_list.subr:rtl_lsort(): initial implementation.
2020-03-11pkgtool.sh, subr/{build_init,ex_pkg_exec}.subr: rebuild package, dump & exit ↵Lucio Andrés Illanes Albornoz1-4/+25
if package dump is unavailable. build.sh:buildp_dispatch_fail_pkg(): log --dump-{in,on-abort} messages at `info' level.
2020-03-11Initial implementation of pkgtool.sh.Lucio Andrés Illanes Albornoz1-0/+80
build.sh:build(): move cd(1) to $(dirname "${0}"). etc/{build.usage,README.md}: updated. midipix.env:${DEFAULT_CLEAR_ENV_VARS_EXCEPT}: allow inheriting ARCH, BUILD, BUILD_DLCACHEDIR, BUILD_WORKDIR, and PREFIX* from the environment. pkgtool.sh: initial implementation. subr/build_init.subr:buildp_init_defaults(): allow inheriting ARCH, BUILD, BUILD_DLCACHEDIR, BUILD_WORKDIR, and PREFIX* from the environment. subr/build_init.subr:buildp_init_env(): move cd(1) to $(dirname "${0}"). subr/build_init.subr:buildp_init_files(): correctly pass ${_status} from rtl_check_path_vars(). subr/ex_pkg_exec.subr:ex_pkg_exec(): dump subset of variables and exported variables on build failure and --dump-on-abort. subr/pkgtool_init.subr: adapted from subr/build_init.subr. subr/rtl_complex.subr:rtl_filter_vars(): initial implementation. subr/rtl_string.subr:rtl_subst(): initial implementation.