kernel-ark CONFIG option scheme ------------------------------- The kernel-ark repository contains both Fedora and rhel (aka "RHEL next") CONFIGS. This repository is constantly rebased as the upstream kernel releases new kernel version. New configuration options are reviewed and set with each release, typically during the -rc1 to -rc3 releases. The kernel-ark configs are broken out into rhel, fedora, and common directories in which each directory provides a heirarchical layout of the configs starting with generic/CONFIG_* and debug/CONFIG_*, then generic//CONFIG_* and generic///CONFIG_*, debug//CONFIG_*, etc. Users should be aware that it may not necessarily be the case that architecture support is consistent between rhel and fedora. The config options are merged and properly layered according to the priority.* files in the same directory as this README to generate the final kernel-$VERSION--.config files we need for building the actual kernels. For example, the rhel variant priorities are found in priority.rhel, and in the case of x86_64 architecture, the specific information required is, ORDER=common rhel pending-rhel custom-overrides and x86_64=generic:generic-x86:generic-x86-x86_64 This indicates that for the x86_64 variant, the order that of inheritance would be: custom-overrides/generic/x86/x86_64 (highest override priority) custom-overrides/generic/x86 custom-overrides/generic pending-rhel/generic/x86/x86_64 pending-rhel/generic/x86 pending-rhel/generic rhel/generic/x86/x86_64 rhel/generic/x86 rhel/generic common/generic/x86/x86_64 common/generic/x86 common/generic (lowest override priority) A text-based graphical representation of a specific CONFIG can be viewed by using the evaluate_configs utility in this directory. ex) evaluate_configs -p priority.rhel -c CONFIG_PCI Directory Layout ---------------- The configuration is broken down into several directories: rhel - contains all configuration options that have been reviewed by kernel developers for the rhel kernel. common - contains all configuration options that are common between the fedora and rhel directories. In other words, these config settings apply to both fedora and rhel. custom-overrides - contains an empty set of the generic and debug arch-specific directory tree. Any config option set here is applied last and therefore will override anything set in the rhel, fedora, or pending directories. This feature was added to assist users executing custom builds to easily override a config option without altering the standard directories. Users can even maintain their own branch with a full set of custom configuration options that can be easily be rebased on top of os-build without worrying about conflicts. fedora - contains all configuration options that have been reviewed by kernel developers for the fedora kernel. pending-[rhel][common][fedora] - These directories contain configuration options that have not yet been fully reviewed for inclusion for rhel, fedora, and both (common) kernels. Due to the rate at which kernel options come out, the kernel maintainers cannot guarantee reviews of configs in these directories by the time a build occurs. In the interest of letting the build proceed for other testing, configuration options are staged in these pending directories. As pending-* configs are reviewed, they are moved into the matching non-pending directory (ie, pending-rhel -> rhel, etc.) and it is expected that these directories will be empty at branch time. Config files can be populated using the pending-* directories by using the "FLAVOR" Makefile variable; for example to build the fedora configs, users can execute "make FLAVOR=fedora dist-commit-configs".