ROCK3

From RockWiki

Jump to: navigation, search

ROCK 3 was released on 26th of July, 2006.


Contents

Getting the Release

Grab the source (torrent), the crystal ISO (torrent) or the network install ISO (torrent). For a network install, be sure to read the regarding Howto.

The gem repository URL for this release is: https://gems.rocklinux.org/repo/ROCK3


Upgrading from ROCK3 Crystal RCs

assure your /etc/rocket.conf contains the line

archive https://gems.rocklinux.org/repo/ROCK3/TRUNK-x86-pentium-mmx-32-crystal/pkgs

then run rocket update and rocket upgrade. To also upgrade the source tree, run rocket updsrc.


Addon Packages

add the following to /etc/rocket.conf:

archive https://gems.rocklinux.org/repo/ROCK3/TRUNK-x86-pentium-mmx-32-crystal-addons/pkgs

and run rocket update. then you can use rocket search and rocket install to install the addon packages. Note, however, that these packages are not officially supported, and are only provided for your convinience.


Please insert any questions, clarifications and other information about the ROCK3 release here.


Changelog

Many things have changed since 2.0:

Forked Packages

Forked packages allow for grouping of different versions of a package in one logical, code-sharing unit in the build source tree, for example gcc, glibc or linux. gcc is there in the flavors gcc=gcc2, gcc=gcc32, gcc=gcc33, gcc=gcc34, gcc=gcc40 and gcc=gcc41, each containing the latest version of that branch. the same goes for glibc=glibc22, glibc=glibc23 and glibc=glibc24, and linux with the linux=linux24 and linux=linux26 package forks. This does not affect the binary packages, there are still separate packages for all of these, of course.

Package Splits

To better allow for separation of distinct parts of binary packages, the possibility to do rule-based package splits has been introduced. Using package splits, it's possible to clearly separate, for example, the subversion server from the subversion client, by adding splitreg rules to the subversion.conf file. By default, documentation files are inserted into the 'doc' package split, and development files (headers, static libraries) are added to a 'dev' package split. The name of a split is appended to the package name, separated by a colon, so for binary package containing the subversion server part, this is subversion:server. To take action on all splits of a package including the base package, a new '-s' option was added to mine, the default ROCK package manager.

Post Install Scripts

Instead of relying on a cron job for post-package-installation work, like re-creating the font cache for X11, postinstall hooks have been added to the build system, executed by, for example, rocket, after a package installation or a succesful package build. The "API" is flexible and simple, and is completely documented in package/base/sysfiles/sbin_postinstall.sh.

Legacy Packages

Whenever a package is updated, the possibility exists that files that were part of the previous version no longer are part of the new version. In this case, the package manager now creates a split package by the name 'legacy', where each of these files is contained. The files can be reviewed by the user after an update, or explicitly purged by a postinstall script.

Extended Help Texts

Extended help texts were added to the -help switches of the build tools, giving in-detail information about the available options and their proper use. In this process, a LOT of typos were fixed, too - very importand ;-)

Output Plugins

The output system was rewritten to use plugins for reporting build states. There is now the possibility to generate HTML, mail, or even speech output of the build process. As a proof-of-concept, a MythTV on-screen display output plugin is also shipped.

Rocket

An example tool for managing gem package pools for distributions was added to mine, the default package manager of ROCK. It allows for updating packages from a package pool using HTTP, FTP or even NFS if you like. The usage is much like the well-known 'apt-get' tool from debian, with the added capability to build packages from source using the ROCK sources in /usr/src/rock-src. To reflect changes in packages affecting the binary result of a package build, a new version tag was added to the desc files called 'extraversion', which is appended to the desc file's [V] tag separated by a space.

Udev

As devfs is no longer available, we now use udev as the device filesystem, defaulting to a devfs-like layout.

Rock Initrd

The previous minimalistic, bash-generated-C initrd has been replaced by a full-fledged, highly customizable bash-based initrd with support for udev, encrypted filesystems, device-mapper and much more.

Updated Toolchain

The default gcc version has been updated to 4.0.1, the default glibc version to 2.3.6 and default binutils to version 2.16.91.0.7. The support for ARM, HPPA, MIPS, Sparc and PowerPC has been extended, and first patches and tests have been applied to support x86_64.

Package Preselection Sets

It's now much easier to define your own package selection, using pre-defined sets of packages to be found in misc/pkgsel/sets. More sets can be added if required.

New Targets

New default targets have found their way into the source tree, most notably the 'generic purpose distribution' Crystal, a generic KDE desktop LiveCD distribution with support for x86, PowerPC and Sparc, and the Linux Video Project (LVP). The bootdisk target's support for booting off a CD on PowerPC and Sparc has been fixed, and support for booting on old world Macs with MacOS installed was added using BootX. The Rescue target was updated and adopted to ROCK3.

General Build System Enhancements
  • Cluster Builds on SMP machines have been made easier to set up using the -tasks switch to scripts/Build-Target
  • Pseudonative Builds are now supported
  • A script to create a UML root filesystem from a ROCK Build was added
  • A script to resolve the build-time dependencies of a package, scripts/Create-DepList, was added
  • The usability of scripts/Config was improved by using a custom bash module where available
  • A Package's "crossbuildability" is now an available information in the .desc file
  • Support to build (almost) all binaries statically was added
  • Support for on-demand package downloading was added to scripts/Build-Pkg
  • Support for Subversion checkouts was added to scripts/Download
  • scripts/Update-Src now recognizes svn checkouts and Submaster trees
  • support for building arbitrary cross-toolchains was added
  • md5sums are now embedded into the ISOs, and checkable in the installer initrd
  • support for creating .desktop files for applications programmatically was added
  • probably all 1600 or so packages were updated to a newer version
Personal tools