today I'd like to write a bit about the packages in the target-finish
repository. They have been in trunk for a while but so far haven't been used
in any target by default.
In ROCK Linux, targets can perform additional actions after all packages have
been built (by adapting target/*/build.sh). The bootdisk, crystal and livecd
targets extensively use this to e.g. prepare files for boot media and create
target-finish packages are intended to provide the same feature but avoid code
duplication between targets. The current implementation consists of slightly
modified code from the bootdisk, crystal and livecd targets grouped by
functionality into seven packages, e.g. bootloader, initramfs or packagedb.
These packages can be used in any target to e.g. create files for a bootable
install or live CD. It is noteworthy that this implementation does not
require any changes to the build scripts.
target-finish packages have a few things in common:
- no binary packages are created for these. This simply follows from the fact
that these packages do not (or shouldn't) touch any files in the directories
considered for binary package creation (as defined by the flistroot
variable); target-finish packages create files below the directory
- they are build after other packages and in a separate stage (currently stage
8). Atm. stage 9 is the rebuild stage, but it should really be the other way
round (which would require a few changes to the build scripts).
- target-finish packages can only be built using Build-Target since they are
only useful when building complete targets.