[rock-devel] target-finish packages

ROCK Mailing List Archives

Entire message
+ (text/plain)
Author: Stefan Fiedler
To: ROCK Development Mailing List
Subject: [rock-devel] target-finish packages
Hi all,

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
package selections.

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
build/<build-id>/ROCK/target-finish instead.
- 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.

In the related SubMaster journal
(https://www.rocklinux.net/submaster/index.websplb?mode=journal&id=52) I have
sucessfully replaced the build.sh scripts of the bootdisk, crystal and livecd
targets with target-finish packages. The journal is tested at build- and
run-time and unless there are any objections it is ready to be applied.

Have fun,
Stefan Fiedler
rock-devel mailing list