[X, B, C, D, unstable][PATCH] UBUNTU: [Packaging] config-check: allow overlay annotations files
Marcelo Henrique Cerri
marcelo.cerri at canonical.com
Thu Jan 31 15:46:17 UTC 2019
BugLink: http://bugs.launchpad.net/bugs/1752072
Update the config-check script to parse additional annotations files
that can overlay the original annotations on a config basis. The overlay
files are read from "$DEBIAN/config/*.annotations".
Since the overlay works on a config basis, any mention to a config in
the overlay file will cause the entry for that config on the original
file to be ignore.
For instance, the following line in the overlay file:
CONFIG_X note<some note>
Will cause any line related to CONFIG_X in the original annotations file
to be ignored.
Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri at canonical.com>
---
I intend to use this patch to better handle config annotations for
custom, and specially cloud, kernels. That way we can keep
"debian.$BRANCH/config/annotations" as a symlink to the base kernel
(usually "debian.master/config/annotations") and keep the
customizations for the custom kernel on a separate file (ie:
"debian.$BRANCH/config/$BRANCH.annotations").
With this patch applied I'm planning to extract all the configs
requirements for the cloud kernel on a separate file. That should help
us to have a clear perspect of the the customizations made to a kernel.
---
debian/scripts/config-check | 45 ++++++++++++++++++++-----------------
1 file changed, 25 insertions(+), 20 deletions(-)
diff --git a/debian/scripts/config-check b/debian/scripts/config-check
index 07958556e58e..e28d28153c4b 100755
--- a/debian/scripts/config-check
+++ b/debian/scripts/config-check
@@ -41,33 +41,38 @@ close(CONFIG);
# ANNOTATIONS: check any annotations marked for enforcement
my $pass = 0;
my $total = 0;
-my $annotations = "$commonconfig/annotations";
my ($config, $value, $options, $option, $value, $check, $policy);
-print "$P: $annotations loading annotations\n";
+
my %annot;
-my $form = 1;
-open(ANNOTATIONS, "<$annotations") || die "$P: $annotations: open failed -- $! -- aborting\n";
-while (<ANNOTATIONS>) {
- if (/^# FORMAT: (\S+)/) {
- die "$P: $1: unknown annotations format\n" if ($1 != 2);
- $form = $1;
- }
+my @annotations_list = ("$commonconfig/annotations", glob("$commonconfig/*.annotations"));
+for my $annotations (@annotations_list) {
+ print "$P: $annotations loading annotations\n";
+ my %current_annot;
+ my $form = 1;
+ open(ANNOTATIONS, "<$annotations") || die "$P: $annotations: open failed -- $! -- aborting\n";
+ while (<ANNOTATIONS>) {
+ if (/^# FORMAT: (\S+)/) {
+ die "$P: $1: unknown annotations format\n" if ($1 != 2);
+ $form = $1;
+ }
- /^#/ && next;
- chomp;
- /^$/ && next;
+ /^#/ && next;
+ chomp;
+ /^$/ && next;
- /^CONFIG_/ || next;
+ /^CONFIG_/ || next;
- if ($form == 1) {
- ($config, $value, $options) = split(' ', $_, 3);
- } elsif ($form == 2) {
- ($config, $options) = split(' ', $_, 2);
- }
+ if ($form == 1) {
+ ($config, $value, $options) = split(' ', $_, 3);
+ } elsif ($form == 2) {
+ ($config, $options) = split(' ', $_, 2);
+ }
- $annot{$config} = $annot{$config} . ' ' . $options;
+ $current_annot{$config} = $current_annot{$config} . ' ' . $options;
+ }
+ close(ANNOTATIONS);
+ %annot = ( %annot, %current_annot );
}
-close(ANNOTATIONS);
my $config;
for $config (keys %annot) {
--
2.17.1
More information about the kernel-team
mailing list