6.0 Changes

User visible

  • u/dev (and classic /dev support) - no devfs anymore
  • hotplug++
  • fully modular kernel with early userspace to allow booting on any box
  • created an own set of kernel preconfiguration not relying on the ever changing in-kernel defconfigs allowing more predictable configuration
  • revisited initrd / initramfs
  • modular X.Org X11R7
  • graphical network frontend
  • Live CD target
  • more flexible binary package creation - tar.bz2 as default, not mine/gem
  • support for PowerPC64
  • support for MIPS64
  • more packages got fixed to honor libdirs, such as lib64
  • target postprocessing, no need to build an additional target just for the installer
  • thousands of package updates and hundreds of new packages

Developer visible

  • C++ cross compiler and thus more to cross build
  • boot code in architecture/*/boot (not e.g. in the bootdisk target)
  • smarter target inheritance / code reuse
  • fixed Config options to allow targets to enforce the CPU and optimizations
  • package preselection code was moved to target/generic and improved to support inclusion so they are based on eachother
  • more automatic tweaks, such as libtool fixing for certain details such as lib64
  • new rootfs overlay mechanism, used e.g. in the embedded or live target to overlay additional FS content
  • automatic .zip extraction
  • shared target code in target/share (equivalent to architecture/share)
  • many flist (file list) wrapper library improvements, including performance, correctness and buffer overflow fixes
  • uname wrapper to ensure correct values (e.g. for 32bit builds on 64bit hosts or crossbuilds) - including warning so those can be removed in the long term
  • improved output processing to always use the output plugin code and not special case text output - aside revealing bugs it allows passing messages out of the chrooted sandbox environment (e.g. warnings and notes)
  • the .caches files got a cleanup and compatible format changes for future (depedency specification) improvements and the build time is now stored relative to binutils, being mostly identical amount architectures and compatible to LFS
  • allow filtering patches, e.g. the linux packages uses this feature to skip version change chunks to avoid conflicits
  • new arch2uname and uname2arch, hasflag and as well as an atstage helper, the later to avoid hardcoded stage numbers all over the packages and scripts
  • automatic source download, no longer stalled builds due forgotten scripts/Dowload run

Known issues

6.0.2

  • the console beep length setting was only partially merged, the configuration setting in STONE is missing - If this setting is of interest, this can be fixed either by emerging stone from branches/6.0 or by specifing the setting manually in /etc/conf/console:
  • con_blength="numeric-value"

6.0.0

  • on PAM based systems login will issue a warning due to a configuration entry in the default /etc/login.defs that is only recognized on systems without PAM:
    configuration error - unknown item 'ULIMIT' (notify administrator)
    The cure is as simple as commenting the ULIMIT line out in /etc/login.defs.
  • on SPARC64 (and only on SPARC64) the gcc package misses two symlinks to vital GCC support libraries. As a result complex program, such as all C++ programs, will not start. This can be fixed by creating those symlinks manually:
    ln -s /usr/lib64/gcc/sparc64-t2-linux-gnu/4.1.1/lib/libgcc_s.so /usr/lib/
    ln -s /usr/lib64/gcc/sparc64-t2-linux-gnu/4.1.1/lib/libgcc_s.so /usr/lib/libgcc_s.so.1