Build- And Other Scripts
From RockWiki
Build- And Other Scripts
Most scripts print a help text, containing a description of syntax and options, when started with the '-help
' option.
./scripts/Config
./scripts/Config
is the main configuration script. If no configuration name is specified via the option -cfg <config-name>
the name 'default
' is used. It parses the metaconfig files described in chapter 3 and creates the files in config/<config-name>/
. If a config-name is specified it also has to be passed to the other scripts, too.
./scripts/Download
The ./scripts/Download
script is the tool for downloading the package sources. Calling the script without any parameters prints out the help message.
You can download single files:
./scripts/Download download/mirror/l/linux-2.4.18.tar.bz2
All files for a single package:
./scripts/Download -package linux24
All files required for building the configured target:
./scripts/Download -required
Or simply everything:
./scripts/Download -all
If you don't specify a mirror using the -mirror
option, the script will contact www.rocklinux.org
and auto-detect the best mirror.
Downloading all files required from a local (mounted) cdrom:
./scripts/Download -mirror file:///mnt/cdrom/ -required
Scripts For Building Stuff
./scripts/Build-Target
Builds the configured target. Depending on your hardware and the configuration made with ./scripts/Config
this may take a few days (or a week or even longer) to complete.
./scripts/Build-Pkg
Builds a single package. Calling this script without any option prints out a usage message. In most cases the options are only needed by Build-Target
when building the entire distribution.
Building a single package:
./scripts/Build-Pkg gawk
Warning: Re-building a package might overwrite or remove config files - using the option -update
backups modified files and restores them after the package build.
./scripts/Build-Tools
This script creates the 'build/xxxxxx/ROCK/tools
' directory (where 'xxxxxx
' is the config id) which contains various helper applications needed by Build-Pkg
and other scripts.
When the script is called with the -cleanup
option, a rebuild of the files in the tools directory is forced. In most cases this script will be called by other scripts (and not by the user).
./scripts/Build-CrossCC
For cross-building !ROCK Linux you need a cross-compiler. This script creates the cross-compiler for you. The cross-compiler and cross-binutils will be installed in the build/
tree where the Build-Pkg
script expects them to be.
./scripts/Build-Job
This script is the client when you run ./scripts/Target
in parallel build (cluster) mode.
Various Small Helpers
./scripts/Cleanup
The Cleanup
script can be used to remove the src*
and build*
directories which are created by the build scripts. Never remove these directories manually!!!
On default ./scripts/Cleanup
only removes the src*
directories. the build*
directories are only removed when the -full
option is passed.
./scripts/Create-Links
This very simple script creates symlinks from you ROCK Linux base directory to another directory. This can be useful if you have the ROCK Linux sources on one harddisk (NFS Share, etc) and want to build somewhere else:
/disks/raid/archive/os/rock# mkdir -p /disks/fast/rock /disks/raid/archive/os/rock# ./scripts/Create-Links /disks/fast/rock
./scripts/Create-PkgList
Creates a list of all packages available. If an architecture name is passed as parameter, only the packages available on that architecture are listed.
This script is used by ./scripts/Config
in the process of creating the packages
file.
./scripts/Create-PkgQueue
Creates a list of packages which could be built next. The first parameter is the maximum number of packages to print (0=no limit) and the 2nd parameter is the root directory where the script can find the /var/adm/...
information it needs. E.g.:
# ./scripts/Create-PkgQueue 3 build/default-TRUNK-x86-generic/ 2 X --2------9 010.050 base strace 4.4 / development/tool 159 2 X --2------9 010.052 base ltrace 0.3.10 / development/tool 85 2 X --2-4----9 010.055 base perl5 5.6.1 / development/interpreter 125
The script is primarily used by ./scripts/Build-Target
.
./scripts/Create-SrcTar
Creates a .tar.bz2
file containing the ROCK Linux sources. This script is used by the ROCK Linux core developers when releasing snapshots or releases.
./scripts/Create-Diff
This script is the recommended tool for creating diff patches. (When you made a change to the ROCK Linux sources and want to share your work).
E.g.: ./scripts/Create-Diff ../rock-src.orig . > mychanges.diff
./scripts/Create-CkSumPatch
This script can be used by ROCK Linux developers to automatically create the download checksums in the .desc
files in one or more package repositories.
E.g.: ./scripts/Create-CkSumPatch glibc | patch -p1
./scripts/Create-DescPatch
This script can be used by ROCK Linux developers to automatically adopt the format of the package .desc
files.
E.g.: ./scripts/Create-DescPatch -repository base | patch -p1
./scripts/Create-PkgUpdPatch
This script can be used by !ROCK Linux developers to automatically create package update patches (after evaluating the output of the ./scripts/Check-PkgVersion
script). E.g.:
./scripts/Create-PkgUpdPatch | patch -p1 << EOT automake-1.6.1, bin86-0.16.3, bison-1.35, curl-7.9.6,
diffutils-2.8.1, dump-0.4b28, ifhp-3.5.7, net-snmp-4.2.4, ntp-4.1.1, pciutils-2.1.10, sendmail.8.12.3, silo-1.2.5, tree-1.4b2, util-linux-2.11q, whois_4.5.25
EOT
./scripts/Create-ErrList
Outputs the list of packages which failed to build (including the stage numbers) in the right order.
./scripts/Create-UpdList
Create a list of packages which are active in the current configuration and have changed since the binaries installed on the local system have been generated. The compare is done using the package source checksums stored in /var/adm/packages/<package-name>
.
./scripts/Update-System
Update (re-build) all packages on the local system for which newer versions are available. Create-UpdList
is used to generate the list of packages which do need an update.
./scripts/Help
This script expects the filename of a script in ./scripts/
and jumps to the right position in this document. It's a very simple wrapper for 'less
'.
./scripts/Internal
This script is used by Clifford Wolf to release snapshots and to keep the !FTP Mirrors up-to-date.
Scripts For Doing Checks
./scripts/Check-PkgVersion
This script is used by the !ROCK Linux developers to check for new package versions. The results of the last run are always stored in a directory called checkver/
and if there is a difference in the current run, a *.msg
file will be written to checkver/
. (read the script for details)
E.g.:
./scripts/Check-PkgVersion -repository base for x in checkver/*.new ; do mv -f $x ${x%.new}.txt ; done cat checkver/*.msg > todo.txt
Note: An old *.msg
file will automatically removed when you run Check-PkgVersion
the next time.
./scripts/Check-PkgFormat
This script does a few very simple tests to auto-detect errors in the package *.desc
and *.conf
files.
E.g.: ./scripts/Check-PkgFormat -repository base
./scripts/Check-System
This script does a very simple tests to auto-detect possible problems with the host linux system.
./scripts/Check-Deps
This command checks if the current package build order is ok for solving all package dependencies.
Scripts For Updating The Source Tree
./scripts/Update-Src
Update the source tree with rsync from www.rocklinux.org
. Warning: This will remove the changes you have made to the source tree.