Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
fi

patch -p1 -i ../patches-debian/disable-secureboot-config-checks.patch
patch -p1 -i ../patches-debian/verify-local-configs-are-applied.patch

# Enable secure boot configs if needed
../manage-config $(CONFIGURED_ARCH) $(SECURE_UPGRADE_MODE) $(SECURE_UPGRADE_KERNEL_CAFILE)
Expand Down
53 changes: 53 additions & 0 deletions patches-debian/verify-local-configs-are-applied.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Index: linux-6.12.41/debian/bin/buildcheck.py
===================================================================
--- linux-6.12.41.orig/debian/bin/buildcheck.py
+++ linux-6.12.41/debian/bin/buildcheck.py
@@ -6,7 +6,38 @@ import pathlib
import sys

from debian_linux.config_v2 import Config
-from debian_linux.kconfig import KconfigFile
+from debian_linux.kconfig import KconfigFile, KConfigEntryTristate
+
+
+class CheckConfigsAreSet:
+ def __init__(self, config, dir, *_):
+ self.config = config
+ self.dir = pathlib.Path(dir)
+
+ def __call__(self, out):
+ fail = 0
+
+ kconfig = KconfigFile()
+ with (self.dir / '.config').open() as fh:
+ kconfig.read(fh)
+
+ merged_config = KconfigFile()
+ for c in self.config.config:
+ if (f := pathlib.Path('debian/config.local') / c).exists():
+ with f.open() as fh:
+ merged_config.read(fh)
+
+ missing_configs = set(merged_config.values()) - set(kconfig.values())
+ actual_missing_configs = set([config for config in missing_configs if config.value != KConfigEntryTristate.VALUE_NO])
+ if missing_configs - actual_missing_configs:
+ out.write(f'Ignoring "no" configs that are not set in the final config: {missing_configs - actual_missing_configs}\n')
+
+ if actual_missing_configs:
+ out.write('Error: there are configs not set in the final config!\n')
+ out.write(f'Unset configs: {actual_missing_configs}\n')
+ fail = 1
+
+ return fail


class CheckSecureBootConfig:
@@ -42,7 +73,7 @@ class CheckSecureBootConfig:
class Main(object):

checks = {
- 'setup': [CheckSecureBootConfig],
+ 'setup': [CheckSecureBootConfig, CheckConfigsAreSet],
'build': [],
}

Loading