aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2015-09-16 01:21:18 -0400
committerAnthony G. Basile <blueness@gentoo.org>2015-09-16 01:21:18 -0400
commit7fd80a5aacbcae4eb5d2526b9d9a831eb089fcdb (patch)
treed03aa1ffada61d1c40d6f5428517a171fcd82e4e
parentgrs/Execute.py: fix typo. (diff)
downloadgrss-7fd80a5aacbcae4eb5d2526b9d9a831eb089fcdb.tar.gz
grss-7fd80a5aacbcae4eb5d2526b9d9a831eb089fcdb.tar.bz2
grss-7fd80a5aacbcae4eb5d2526b9d9a831eb089fcdb.zip
grs/Kernel.py: build either modular or static kernel.
-rw-r--r--grs/Kernel.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/grs/Kernel.py b/grs/Kernel.py
index 7f96d91..7ec5615 100644
--- a/grs/Kernel.py
+++ b/grs/Kernel.py
@@ -40,12 +40,15 @@ class Kernel():
def parse_kernel_config(self):
""" Parse the version to be built/installed from the kernel-config file. """
with open(self.kernel_config, 'r') as f:
- for i in range(3):
- line = f.readline()
+ lines = f.readlines()
+ # Are we building a modular kernel or statically linked?
+ has_modules = 'CONFIG_MODULES=y\n' in lines
+ # The third line is the version line in the kernel config file.
+ version_line = lines[2]
# The version line looks like the following:
# Linux/x86 4.0.6-hardened-r2 Kernel Configuration
# The 2nd group contains the version.
- m = re.search('^#\s+(\S+)\s+(\S+).+$', line)
+ m = re.search('^#\s+(\S+)\s+(\S+).+$', version_line)
gentoo_version = m.group(2)
try:
# Either the verison is of the form '4.0.6-hardened-r2' with two -'s
@@ -61,7 +64,7 @@ class Kernel():
flavor = m.group(2)
pkg_name = flavor + '-sources-' + vanilla_version
pkg_name = '=sys-kernel/' + pkg_name
- return (gentoo_version, pkg_name)
+ return (gentoo_version, pkg_name, has_modules)
def kernel(self):
@@ -72,7 +75,7 @@ class Kernel():
and finally installs it to the system's portage configroot.
"""
# Grab the parsed verison and pkg atom.
- (gentoo_version, pkg_name) = self.parse_kernel_config()
+ (gentoo_version, pkg_name, has_modules) = self.parse_kernel_config()
# Prepare the paths to where we'll emerge and build the kernel,
# as well as paths for genkernel.
@@ -117,10 +120,14 @@ class Kernel():
cmd += '--bootdir=%s ' % boot_dir
cmd += '--module-prefix=%s ' % image_dir
cmd += '--modprobedir=%s ' % modprobe_dir
- cmd += 'all'
+ if has_modules:
+ cmd += 'all'
+ else:
+ cmd += 'bzImage'
Execute(cmd, timeout=None, logfile=self.logfile)
# Strip the modules to shrink their size enormously!
+ # This will do nothing if there is not modules_dir
for dirpath, dirnames, filenames in os.walk(modules_dir):
for filename in filenames:
if filename.endswith('.ko'):