Build process flowchart

Here’s an overview of Fink’s build process and its five phases. The build process always refers to one package description or, if the description has variants, to one of those variants. If a package description (or one variant) yields different packages (e.g. the php5.info package description yields the php5, php5-cgi, php5-cli, … packages) then all of these packages, called split-offs, are built in the same run of the build process.

Build process flowchart

Build process flowchart

Assuming that all the necessary source files are located under /sw/src or FetchAltDir (fink.conf), they are unpacked, patched if needed, and compiled under the build directory. Files are ‘installed’ under the install directory, a temporary directory used by the following phase, Build, to create one or more (split-off) .deb package files based on the contents of the install directory.

The fink command has two options that let you inspect the contents of the build and install directories: -k or –keep-build-dir will keep the build directory after the build process ends, and -K or –keep-root-dir will keep the install (root) directory after the build process ends.

There are equivalent configuration options that can be used in fink.conf: KeepBuildDir and KeepRootDir. Be careful, though: keeping every build and install directory can fill your hard disk quickly!

2 responses to “Build process flowchart

  1. It’d be good to add a step to the graphic indicating how some files are moved from root-base-pkg after ‘make install’ to root-splitoffN.

  2. True. I’m thinking of writing another post covering split-offs and variants. Well, maybe two posts.🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s