target-finish packages

Stefan Fiedler <e0155490-oe7qfRrRQffzPE21tAIdciO7C/[email protected]> Fri, 15 Feb 2008 16:29:38 +0100
Newsgroups gmane.linux.distributions.rock.devel
Message-ID <[email protected]>
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