aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKylie McClain <kylie@somas.is>2020-07-07 09:29:53 -0400
committerKylie McClain <kylie@somas.is>2020-07-07 09:33:53 -0400
commiteb6de55426c3cfa26f4ade3d9caa92a94f101de6 (patch)
tree73af43e30f5ca23a80051fd7ce7deb2f6381a076
parent21ae49ab996ffd256c570afa0056c8ddf32cc0da (diff)
downloadpraxis-eb6de55426c3cfa26f4ade3d9caa92a94f101de6.tar.gz
praxis-eb6de55426c3cfa26f4ade3d9caa92a94f101de6.tar.xz
praxis-eb6de55426c3cfa26f4ade3d9caa92a94f101de6.zip
theory(5): initial further organizing of "Building" section
-rw-r--r--theory.5.adoc18
1 files changed, 11 insertions, 7 deletions
diff --git a/theory.5.adoc b/theory.5.adoc
index 811bb12..cec85fd 100644
--- a/theory.5.adoc
+++ b/theory.5.adoc
@@ -158,16 +158,20 @@ some fashion to be more specific.
`action` files are really just shell scripts. These files should adhere to shell syntax as defined
in {url-posix2016}[POSIX 2016].
+[#build]
+== Building
-== Build environment
+This section is about the environment a package is built in.
When referring to a "build environment", this document is referring to the literal shell environment
which the shell process is running in. This means it consists of things such as variables,
-functions, and current working directory.
+functions, and the current working directory.
+[#build-phases]
=== Phases
-Everything in this section is *required* of any package manager implementation.
+Everything in this section is *required* of any package manager implementation. If this isn't
+adhered to, we'll have issues with some packages building in one implementation but not another.
"By default" refers to a package which does not define any phases or import any libraries which
define phases.
@@ -177,8 +181,8 @@ defined, regardless of if they have any function; if a phase listed here is not
the package manager, or the package (or a library used by the package), the package manager *must*
error out and fail, because that is an invalid package.
-"Does nothing" would mean something like `pkg_init() { true; }`. "Not defined" would mean no
-definition of the function.
+"Does nothing" would mean something like `pkg_init() { true; }`.
+"Not defined" would mean no definition of the function.
(ex. Attempting to run function that is not defined would give an unknown command error)
==== `pkg_init()`
@@ -186,8 +190,8 @@ definition of the function.
This phase is ran when a build environment is created for a package building session. Normally
nothing is done, and this is a dummy function.
-Examples of other defintions could be creating a custom `PATH` and script wrappers to be used for
-build systems that are stubborn to cooperate with cross-compilation.
+Examples of other definitions could be creating a custom `PATH` and script wrappers to be used for
+build systems that are too stubborn to cooperate with cross-compilation.
==== `src_fetch()`