With the configs in the new place, update the scripts to find
them and utilize the base-generic and generic heirarchy to apply
configs and overrides.
Implement new process_configs.sh script that post-process the
config changes in a simple script and remove those commands
from the spec file. Add option flags to preserve functionality.
config_generation is a simple rename of baseconfig -> generic and
debugconfig -> debug and arm64 -> aarach64.
build_configs.sh is modified to find configs in generic and base-generic and
then apply base-generic first and if any generic files, apply those next. The
generic directory is used as an overrides and is expected to be empty for
Fedora initially.
kernel.spec is modified to use process_configs.sh instead of all the
commands in the spec file. Enabled spec options are translated to
script options. The config manipulation is moved to be grouped
with all config manipulation commands. This makes 'cd configs/' simpler.
Now all config scripts and executiion are done in configs/ directory.
v1 -> v2:
* the scripts were not working with SUBARCH correctly
* checkoptions was using wrong comparison file
* passing wrong kernel version to process_configs in spec file
v2 -> v3:
(incorporate Laura A's feedback)
* update README.txt
* fix build_configs.sh warnings
* Output info message on listnewconfig failure
As part of the config re-organization, put the scripts needed to create
the config files in the configs/ directory. At the top level create
symlinks for those scripts. This allows the kernel.spec file to find
the scripts it needs and work correctly.
No code changes.
As part of an effort to foster better cross collaboration with
internal Red Hat kernels, align the configs layout to match
that kernel. This will allow Red Hat engineers to provide easier
guidance on how to set various config options.
In addition, the scripts that process the config options will migrate
to the configs/ directory too in later patches. Future config
workflows will stage all work in the configs/ area.
A simple diff between the kernels will easily expose which config
options are different. Reading the comments in the file provides
guidance to Fedora to determine if that kernel should make a
similar change or not.
Rename debugconfig -> configs/base-debug
Rename baseconfig -> configs/base-generic
Rename configs/base-generic/arm/arm64 -> configs/base-generic/arm/aarch64
No code changes made.
The existing method of managing configuration files gets unweildy.
Changing individual lines in text files gets difficult without
manual organization. Switch to a method of configuration generation
that's inspired from the method used inside Red Hat. Each configuration
option gets its own file which are then combined to form the
configuration files. This makes confirming what's actually enabled much
easier.