Hi all.
As a result of private email correspondance I have recently received, I
became aware that the current system of identifying the versions of the
various subsystems required to support any particular kernel version is
inadequate, and decided to do something about it. The enclosed patch is
my offering to rectify this.
The problems identified are:
1. Different subsystems are identified in Documentation/Changes and in
scripts/ver_linux, probably due to the difficulty of maintaining two
files in sync with each other. As a result, it is not clear what the
required versions of some subsystems are.
2. The existing script does not make it clear which subsystems need to
be updated. The user is expected to decide by cross-referencing the
details it provides with those provided elsewhere.
3. The command to perform this analysis is not immediately obvious.
My offering (developed against the 2.4.2 kernel source tree) does away
with all three of these problems by:
A. Making Documentation/Changes the sole source of information on the
subsystems required. The script I have developed then reads the
table in this file, and uses commands listed therein to determine
the installed versions of the relevant subsystems. The format of
this table had to be changed slightly to accommodate the script,
but this was done without impairing the readability thereof.
B. Adding lines to Documentation/Changes to document those subsystems
listed by scripts/ver_linux that were not already in the table in
Documentation/Changes so that all relevant subsystems are considered.
This was done by adding a separate table formatted identically to the
existing one, but indicating that the subsystems therein may not be
required.
Note that the "required versions" listed in this new table are those
installed on my system, with the exception of the Linux C++ library
which is apparently not installed here. These versions need to be
tweaked to reflect the actual requirements for that kernel.
C. Comparing the installed and required versions of each subsystem, and
indicating the results of that comparison in the displayed results
by colouring the name of the subsystem. A facility to disable this
is also included, and is activated by providing a parameter to the
script. Any parameter will serve this function.
D. Inserting lines in the primary Makefile to allow `make vsn` to run
the relevant command to generate the results with colouring, and
`make vsnbw` to do so without colours. Both change the permissions
of the script to make it an executable.
There is ONE problem with this method, which I have not been able to
solve. This is that the command used by scripts/ver_linux to determine
the installed version of the Gnu C Library can't be replicated using
the method this script is based on, and I have had to replace it with a
simpler script which may produce different results in some cases. If this
is a problem, it is open to others to solve as I have licensed this under
version 2 (only) of the Gnu General Public Licence.
Best wishes from Riley.
This archive was generated by hypermail 2b29 : Thu Mar 15 2001 - 21:00:16 EST