diff options
author | Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de> | 2023-02-17 19:29:28 +0100 |
---|---|---|
committer | Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de> | 2023-02-17 19:29:28 +0100 |
commit | e9fa0774ed2e7e030a68f5b0ae51fe6dd69fe492 (patch) | |
tree | 37e46c2578bd8f4f435073db01abc514976da8a8 /etc | |
parent | 56495632fc8bf612766a9c431e37ff27a903e8c6 (diff) | |
download | midipix_build-e9fa0774ed2e7e030a68f5b0ae51fe6dd69fe492.tar.bz2 midipix_build-e9fa0774ed2e7e030a68f5b0ae51fe6dd69fe492.tar.xz |
Make everything a bit faster.
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
Diffstat (limited to 'etc')
-rw-r--r-- | etc/README.md | 65 | ||||
-rw-r--r-- | etc/build.msgs.en | 2 | ||||
-rw-r--r-- | etc/build.theme | 5 | ||||
-rw-r--r-- | etc/build.usage | 6 | ||||
-rw-r--r-- | etc/build.usage.short | 2 | ||||
-rw-r--r-- | etc/pkgtool.msgs.en | 6 | ||||
-rw-r--r-- | etc/pkgtool.usage | 8 |
7 files changed, 19 insertions, 75 deletions
diff --git a/etc/README.md b/etc/README.md index 784373ad..0dabff4e 100644 --- a/etc/README.md +++ b/etc/README.md @@ -25,9 +25,8 @@ into account when deploying and using Midipix distributions. 3.2. [Adding a package](#32-adding-a-package)
3.3. [Addressing build failure](#33-addressing-build-failure)
3.4. [Package archive files and Git repositories](#34-package-archive-files-and-git-repositories)
- 3.5. [``-s``: package build shell environment](#35--s-package-build-shell-environment)
- 3.6. [Package-package and {package,group}-group relationships](#36-package-package-and-packagegroup-group-relationships)
- 3.7. [Patches and ``vars`` files](#37-patches-and-vars-files)
+ 3.5. [Package-package and {package,group}-group relationships](#35-package-package-and-packagegroup-group-relationships)
+ 3.6. [Patches and ``vars`` files](#36-patches-and-vars-files)
4. [Units reference](#4-units-reference)
4.1. [Build steps](#41-build-steps)
4.2. [Build variables](#42-build-variables)
@@ -326,7 +325,7 @@ which are specified in this order. Pick a build group according to the criteria mentioned, add the package to the
build group's list of contained packages in its corresponding file, and add the
set of package variables required (see above and section [4.5](#45-package-variables).)
-Consult section [3.7](#37-patches-and-vars-files) if the package to be added
+Consult section [3.6](#36-patches-and-vars-files) if the package to be added
requires patches or additional code amending or replacing package build steps
or the entire package build. Consult section [4.1](#41-build-steps) for a list
of package build steps and how they are overriden.
@@ -344,11 +343,6 @@ output. If ``-V xtrace`` was specified, ``xtrace`` will be set during package bu rudimentary debugging purposes. Additionally, packages using GNU autotools will, if
package configuration failed or appears relevant, log the configuration process in detail
in, most usually, ``${PKG_BUILD_DIR}/config.log``.
-
-If ``--dump-on-abort`` was specified, a subset of the variables set and environment
-variables exported will be written to ``${BUILD_WORKDIR}/${PKG_NAME}.dump``, which may
-subsequently be used in order to obtain a package build shell environment with the
-``pkgtool.sh`` script (see sections [4.6](#46-pkgtoolsh), [3.5](#35--s-package-build-shell-environment).)
[Back to top](#table-of-contents)
@@ -376,37 +370,8 @@ A list of pertinent package variables and their formats follows: [Back to top](#table-of-contents)
[//]: # "}}}"
-[//]: # "{{{ 3.5. -s: package build shell environment"
-### 3.5. -s: package build shell environment
-
-When ``build.sh`` is executed with the ``--dump-on-abort`` option, a subset of the
-variables set and environment variables exported will be written to ``${BUILD_WORKDIR}/${PKG_NAME}.dump``
-on build failure, which may subsequently be used in order to obtain a package build shell
-environment with the ``pkgtool.sh`` script, e.g.:
-
-```
-midipix_build@sandbox:(src/midipix_build)> $ ./pkgtool.sh -a nt64 -b debug -s mc
-==> 2020/03/11 15:46:28 Launching shell `/usr/bin/zsh' within package environment and `/home/midipix_build/midipix/nt64/debug/tmp'.
-==> 2020/03/11 15:46:28 Run $R to rebuild `mc'.
-==> 2020/03/11 15:46:28 Run $RS <step> to restart the specified build step of `mc'
-==> 2020/03/11 15:46:28 Run $D to automatically regenerate the patch for `mc'.
-midipix_build@sandbox:(mc-native-x86_64-nt64-midipix/obj)> $
-```
-
-If a package build shell environment is desired for a package that has either not been
-built at all or built successfully, ``pkgshell.sh`` will attempt to rebuild the package
-at build steps up until, by default, ``build``, and then forcibly abort the build and
-write ``${BUILD_WORKDIR}/${PKG_NAME}.dump`` as above prior to entering the shell.
-
-Consult sections [3.2](#32-adding-a-package), [3.7](#37-patches-and-vars-files), [4.2](#42-build-variables),
-[4.1](#41-build-steps), and [4.5](#45-package-variables) for further information
-concerning the package build process.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.6. Package-package and {package,group}-group relationships"
-### 3.6. Package-package and {package,group}-group relationships
+[//]: # "{{{ 3.5. Package-package and {package,group}-group relationships"
+### 3.5. Package-package and {package,group}-group relationships
Packages, as well as groups, are interrelated through implicit as well as explicit parametrised,
typed relationships and form namespaces correspondingly.
@@ -433,8 +398,8 @@ A list of relationship types follows: [Back to top](#table-of-contents)
[//]: # "}}}"
-[//]: # "{{{ 3.7. Patches and ``vars`` files"
-## 3.7. Patches and ``vars`` files
+[//]: # "{{{ 3.6. Patches and ``vars`` files"
+## 3.6. Patches and ``vars`` files
Package patches are applied prior and/or subsequent to (GNU autotools or similar) package
configuration during the ``configure_patch_pre`` and/or ``configure_patch`` build steps,
@@ -546,7 +511,7 @@ usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[ [-r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]] [-R]
[-v] [-V [+]tag|pat[,..]]
- [--as-needed] [--debug-minipix] [--dump-on-abort] [--reset-state]
+ [--as-needed] [--debug-minipix] [--reset-state]
[--roar] [[=]<group>|<variable name>=<variable override>[ ..]]
-a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
@@ -621,13 +586,11 @@ usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[ build_*.....: general build messages (viz.: begin, finish, finish_time, vars,)
group_*.....: build group messages (viz.: begin, finish,)
- pkg_*.......: package build messages (viz.: begin, faildump, finish, msg, skip, step, strip.)
+ pkg_*.......: package build messages (viz.: begin, finish, msg, skip, step, strip.)
--as-needed Don't build unless the midipix_build repository has received
new commits.
--debug-minipix Don't strip(1) minipix binaries to facilitate debugging minipix.
- --dump-on-abort Produce package environment dump files on build failure to be
- used in conjuction with pkg_shell.sh script (excludes -R.)
--reset-state Reset package build step state on exit.
<group>[ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
@@ -857,7 +820,7 @@ VERSION`` and/or ``URLS_GIT``, respectively. | FlagLine | String of {SP,VT}-separated flags, arguments, options, etc. pp. to a command |
| List(<sep>[,<sep\|type>..]) | \<sep\>-separated list, optionally recursively and/or sub-typing, e.g.: ``List(:,=,String)`` and ``"name=value:name2=value"`` |
| PkgName | Single name of package |
-| PkgRelation | Single, possibly parametrised, package-package relation; see section [3.6](#36-package-package-and-packagegroup-group-relationships) |
+| PkgRelation | Single, possibly parametrised, package-package relation; see section [3.5](#35-package-package-and-packagegroup-group-relationships) |
| PkgVersion | Single version of package |
| Set(<type>) | Set of alternatives of <type>, e.g. one of ``cross``, ``host``, ``native`` |
| String | Semantically generic string |
@@ -963,7 +926,7 @@ VERSION`` and/or ``URLS_GIT``, respectively. ## 4.6. ``pkgtool.sh``
```
-usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-i|-m <dname> -M <dname>|-r|-s|-t] [-v]
+usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-i|-m <dname> -M <dname>|-r|-R|-t] [-v]
[<variable name>=<variable override>[ ..]] name
-a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
@@ -972,11 +935,7 @@ usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-i|-m <dname> -M <dname>| -m <dname> Setup package archives mirror in <dname> and/or
-M <dname> Setup Git repositories mirror in <dname>
-r List reverse dependencies of single named package.
- -s Enter interactive package build shell environment for single
- named package; requires a package dump file. If the package
- has not been built yet or built successfully, it will be rebuilt
- at build steps up until, by default, the `build' build step and
- forcibly aborted and dumped prior to enterting the shell.
+ -R List full reverse dependencies of single named package.
-t Produce tarball of package build root directory and build log
file for the purpose of distribution given build failure.
-v Increase verbosity.
diff --git a/etc/build.msgs.en b/etc/build.msgs.en index 59578e1a..2823ba8c 100644 --- a/etc/build.msgs.en +++ b/etc/build.msgs.en @@ -18,8 +18,6 @@ MSG_group_begin="4;[%3d%% ] [%03d/%03d] Starting \`%s' build group..."; MSG_group_finish="4;[%3d%% ] [%03d/%03d] Finished \`%s' build group."; MSG_pkg_begin="5;[%3d%%/%3d%%] [%03d/%03d] Starting \`%s' build..."; -MSG_pkg_faildump1="2;Logged environment dump for failed package \`%s' to \`%s'."; -MSG_pkg_faildump2="4;Enter an interactive package build shell w/ the command line: ./pkgtool.sh -a %s -b %s \"%s\" PREFIX=\"%s\""; MSG_pkg_fail_missing_vars="Error: \${PKG_SUBDIR} must be specified given both \${PKG_FNAME} and \${PKG_URLS_GIT}."; MSG_pkg_finish="5;[%3d%%/%3d%%] [%03d/%03d] Finished \`%s' build."; MSG_pkg_msg="3;%s/%s: %s"; diff --git a/etc/build.theme b/etc/build.theme index fb52fc3a..cc5d83f1 100644 --- a/etc/build.theme +++ b/etc/build.theme @@ -35,8 +35,8 @@ # # Tag sets # -LOG_TAGS_all="build,fileop,install,zipdist,xtrace,fatal,info,verbose,warning,build_begin,build_finish,build_finish_time,build_vars,group_begin,group_finish,pkg_begin,pkg_faildump,pkg_finish,pkg_msg,pkg_skip,pkg_step,pkg_strip"; -LOG_TAGS_normal="fatal,info,warning,build_begin,build_finish,build_finish_time,pkg_begin,pkg_faildump,pkg_finish,pkg_msg"; +LOG_TAGS_all="build,fileop,install,zipdist,xtrace,fatal,info,verbose,warning,build_begin,build_finish,build_finish_time,build_vars,group_begin,group_finish,pkg_begin,pkg_finish,pkg_msg,pkg_skip,pkg_step,pkg_strip"; +LOG_TAGS_normal="fatal,info,warning,build_begin,build_finish,build_finish_time,pkg_begin,pkg_finish,pkg_msg"; LOG_TAGS_verbose="${LOG_TAGS_normal:+${LOG_TAGS_normal},}zipdist,verbose,build_vars,group_begin,group_finish,pkg_skip,pkg_step,pkg_strip"; # @@ -74,7 +74,6 @@ LOG_TAG_group_finish="4;92"; # Underline; Bright green # Package build tags # LOG_TAG_pkg_begin=93; # Bright yellow -LOG_TAG_pkg_faildump=93; # Bright yellow LOG_TAG_pkg_finish=92; # Bright green LOG_TAG_pkg_msg=90; # Dark grey LOG_TAG_pkg_skip=36; # Cyan diff --git a/etc/build.usage b/etc/build.usage index 218343d7..0e2f14ff 100644 --- a/etc/build.usage +++ b/etc/build.usage @@ -3,7 +3,7 @@ [90m[[33m-[93mr [90m[[93m*[90m[[93m*[90m[[93m*[90m]]][93mname[90m[[93m,[90m..][[93m:ALL[90m|[93mLAST[90m|[[93m^[90m|[93m<[90m|[93m<=[90m|[93m>[90m|[93m>=[90m][93mstep,[90m..]] [[33m-[93mR[90m] [90m[[33m-[93mv[90m] [[33m-[93mV [90m[[93m+[90m][93mtag[90m|[93mpat[90m[[93m,[90m..][90m][0m - [90m[[33m--[93mas-needed[90m] [90m[[33m--[93mdebug-minipix[90m] [[33m--[93mdump-on-abort[90m] [90m[[33m--[93mreset-state[90m][0m + [90m[[33m--[93mas-needed[90m] [90m[[33m--[93mdebug-minipix[90m] [90m[[33m--[93mreset-state[90m][0m [90m[[33m--[93mroar[90m] [[[93m=[90m][90m<[93mgroup[90m>|<[93mvariable name[90m>[93m=[90m<[93mvariable override[90m>[ ..]][0m [33m-[93ma nt32[90m|[93mnt64[0m [96mSelects 32-bit or 64-bit architecture; defaults to [93mnt64[96m.[0m @@ -78,13 +78,11 @@ [93mbuild_*[90m.....: [96mgeneral build messages (viz.: [93mbegin[90m, [93mfinish[90m, [93mfinish_time[90m, [93mvars[90m,[96m)[0m [93mgroup_*[90m.....: [96mbuild group messages (viz.: [93mbegin[90m, [93mfinish[90m,[96m)[0m - [93mpkg_*[90m.......: [96mpackage build messages (viz.: [93mbegin[90m, [93mfaildump[90m, [93mfinish[90m, [93mmsg[90m, [93mskip[90m, [93mstep[90m, [93mstrip[90m.[96m)[0m + [93mpkg_*[90m.......: [96mpackage build messages (viz.: [93mbegin[90m, [93mfinish[90m, [93mmsg[90m, [93mskip[90m, [93mstep[90m, [93mstrip[90m.[96m)[0m [33m--[93mas-needed[0m [96mDon't build unless the midipix_build repository has received[0m [96mnew commits.[0m [33m--[93mdebug-minipix[0m [96mDon't [93mstrip(1)[96m minipix binaries to facilitate debugging minipix.[0m - [33m--[93mdump-on-abort[0m [96mProduce package environment dump files on build failure to be[0m - [96mused in conjuction with pkg_shell.sh script (excludes [33m-[93mR[96m.)[0m [33m--[93mreset-state[0m [96mReset package build step state on exit.[0m [90m<[93mgroup[90m>[ ..][96m One of: [93mdev_packages[90m,[93m dist[90m,[93m host_deps[90m,[93m host_deps_rpm[90m,[0m diff --git a/etc/build.usage.short b/etc/build.usage.short index 7e58f8b5..43b2ad1c 100644 --- a/etc/build.usage.short +++ b/etc/build.usage.short @@ -3,7 +3,7 @@ [90m[[33m-[93mr [90m[[93m*[90m[[93m*[90m[[93m*[90m]]][93mname[90m[[93m,[90m..][[93m:ALL[90m|[93mLAST[90m|[[93m^[90m|[93m<[90m|[93m<=[90m|[93m>[90m|[93m>=[90m][93mstep,[90m..]] [[33m-[93mR[90m] [90m[[33m-[93mv[90m] [[33m-[93mV [90m[[93m+[90m][93mtag[90m|[93mpat[90m[[93m,[90m..][90m][0m - [90m[[33m--[93mas-needed[90m] [90m[[33m--[93mdebug-minipix[90m] [[33m--[93mdump-on-abort[90m] [90m[[33m--[93mreset-state[90m][0m + [90m[[33m--[93mas-needed[90m] [90m[[33m--[93mdebug-minipix[90m] [90m[[33m--[93mreset-state[90m][0m [90m[[33m--[93mroar[90m] [[[93m=[90m][90m<[93mgroup[90m>|<[93mvariable name[90m>[93m=[90m<[93mvariable override[90m>[ ..]][0m [33m-[93ma nt32[90m|[93mnt64[0m [96mSelects 32-bit or 64-bit architecture; defaults to [93mnt64[96m.[0m diff --git a/etc/pkgtool.msgs.en b/etc/pkgtool.msgs.en index 55b1206e..95deb0f8 100644 --- a/etc/pkgtool.msgs.en +++ b/etc/pkgtool.msgs.en @@ -3,7 +3,6 @@ # MSG_pkgtool_build_group="1;Build group: %s"; -MSG_pkgtool_no_env_dump="2;Warning: failed to locate environment dump for package \`%s' in \`%s'."; MSG_pkgtool_pkg_archive_mirroring="2;Mirroring package \`%s', archive URL(s): \`%s'..."; MSG_pkgtool_pkg_archive_mirroring_parent="3;Mirroring package \`%s' (parent package: \`%s'), archive URL(s): \`%s'..."; MSG_pkgtool_pkg_deps_fail="1;Warning: failed to unfold dependency-expanded package name list for \`%s'."; @@ -23,11 +22,6 @@ MSG_pkgtool_pkg_skip_archive_mirror="1;Archive URL(s) mirroring disabled, skippi MSG_pkgtool_pkg_skip_git_mirror_disabled="1;Package \`%s' specifies to skip Git URL(s) mirroring, skipping."; MSG_pkgtool_pkg_skip_git_mirror="1;Git URL(s) mirroring disabled, skipping \`%s'."; MSG_pkgtool_pkg_skip_no_urls="1;Package \`%s' has neither archive nor Git URL(s), skipping."; -MSG_pkgtool_rebuilding_pkg="1;Rebuilding package \`%s' w/ --dump-in build..."; -MSG_pkgtool_shell_env1="2;Launching shell \`%s' within package environment and \`%s'."; -MSG_pkgtool_shell_env2="1;Run \$R to rebuild \`%s'."; -MSG_pkgtool_shell_env3="1;Run \$RS <step> to restart the specified build step of \`%s'"; -MSG_pkgtool_shell_env4="1;Run \$D to automatically regenerate the patch for \`%s'."; MSG_pkgtool_tarball_created="2;Created compressed tarball of \`%s' and \`%s_stderrout.log'."; MSG_pkgtool_tarball_creating="2;Creating compressed tarball of \`%s' and \`%s_stderrout.log'..."; MSG_pkgtool_updated_patches="2;Updated \`%s/patches/%s'."; diff --git a/etc/pkgtool.usage b/etc/pkgtool.usage index 48126908..6c86e86d 100644 --- a/etc/pkgtool.usage +++ b/etc/pkgtool.usage @@ -1,4 +1,4 @@ -[97musage[90m: [33m./[93mpkgtool.sh [90m[[33m-[93ma nt32[90m|[93mnt64[90m] [[33m-[93mb [93mdebug[90m|[93mrelease[90m] [[33m-[93mi[90m|[33m-[93mm [90m<[93mdname[90m> [33m-[93mM [90m<[93mdname[90m>|[33m-[93mr[90m|[33m-[93ms[90m|[33m-[93mt[90m] [[33m-[93mv[90m][0m +[97musage[90m: [33m./[93mpkgtool.sh [90m[[33m-[93ma nt32[90m|[93mnt64[90m] [[33m-[93mb [93mdebug[90m|[93mrelease[90m] [[33m-[93mi[90m|[33m-[93mm [90m<[93mdname[90m> [33m-[93mM [90m<[93mdname[90m>|[33m-[93mr[90m|[33m-[93mR[90m|[33m-[93mt[90m] [[33m-[93mv[90m][0m [90m[<[93mvariable name[90m>[93m=[90m<[93mvariable override[90m>[ ..]] [93mname[90m [33m-[93ma nt32[90m|[93mnt64[0m [96mSelects 32-bit or 64-bit architecture; defaults to [93mnt64[96m.[0m @@ -7,11 +7,7 @@ [33m-[93mm [90m<[93mdname[90m> [96mSetup package archives mirror in [90m<[93mdname[90m>[96m and/or[0m [33m-[93mM [90m<[93mdname[90m> [96mSetup Git repositories mirror in [90m<[93mdname[90m>[0m [33m-[93mr [96mList reverse dependencies of single named package.[0m - [33m-[93ms [96mEnter interactive package build shell environment for single[0m - [96mnamed package; requires a package dump file. If the package[0m - [96mhas not been built yet or built successfully, it will be rebuilt[0m - [96mat build steps up until, by default, the [90m`[93mbuild[90m'[96m build step and[0m - [96mforcibly aborted and dumped prior to enterting the shell.[0m + [33m-[93mR [96mList recursive reverse dependencies of single named package.[0m [33m-[93mt [96mProduce tarball of package build root directory and build log[0m [96mfile for the purpose of distribution given build failure.[0m [33m-[93mv [96mIncrease verbosity.[0m |