[Imported from Trac: page BuildSystemTheory, version 1]
parent
fdda165858
commit
6dbc72795e
22
BuildSystemTheory.md
Normal file
22
BuildSystemTheory.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# Build Types and Goals
|
||||||
|
|
||||||
|
## Novice User
|
||||||
|
|
||||||
|
In this build type, a user downloads the tahoe source and everything is as automatic as possible. Internet access is assumed, and there is nothing wrong with using it.
|
||||||
|
|
||||||
|
## Developer
|
||||||
|
|
||||||
|
In this build type, someone would like to make changes to tahoe, and gets source from darcs/git or from a tarball. TODO
|
||||||
|
|
||||||
|
## Packaging System
|
||||||
|
|
||||||
|
In this build type, the build user is a packager of rpms/debs or pkgsrc. Rather than convenience, the concern is a stable and repeatable build that produces exactly the same output bits regardless of which prereqs were already installed. Using the network is not acceptable.
|
||||||
|
|
||||||
|
Within a packaging system, there are typically build phases, loosely derived from how autoconf works.
|
||||||
|
|
||||||
|
* fetch: obtain the "distfiles" (tarballs published by e.g. the tahoe project)
|
||||||
|
* patch: apply OS-local/pkgsrc-local changes (goal is to drive these to zero)
|
||||||
|
* configure: search for dependencies and configure paths
|
||||||
|
* build: compile sources to object form, run nroff to make man pages, etc.
|
||||||
|
* install: place bits either in the running system or in a destdir, suitable for running
|
||||||
|
* package: create a binary package from the installed bits
|
Loading…
Reference in a new issue