From 5456c49b6836064c0d7f6587ffbd7303dc58aa27 Mon Sep 17 00:00:00 2001 From: alexander stefanov Date: Fri, 15 Nov 2024 23:47:33 +0300 Subject: [PATCH] properly extrace kernel version, issue #1 --- utils/generate_spec.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/utils/generate_spec.py b/utils/generate_spec.py index 5bc5745..095bf0b 100644 --- a/utils/generate_spec.py +++ b/utils/generate_spec.py @@ -3,11 +3,26 @@ import os import sys +import subprocess #from common import load_config -def get_kernel_version(config, kernel_url, branch): - """Extract kernel version from kernel URL and branch""" - return branch +def get_kernel_version(kernel_dir): + """Extract kernel version by running 'make kernelversion' in the kernel directory.""" + try: + result = subprocess.run( + ["make", "kernelversion"], + cwd=kernel_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + check=True + ) + return result.stdout.strip() + except subprocess.CalledProcessError as e: + print(f"Error: Failed to get kernel version from {kernel_dir}") + print(e.stderr) + sys.exit(1) + def generate_spec_file(TMP_DIR, config, vendor, device): """Generate RPM spec file from template and config""" @@ -28,7 +43,14 @@ def generate_spec_file(TMP_DIR, config, vendor, device): # Extract kernel version from kernel URL and branch kernel_url, kernel_branch = config["KERNEL"].split("#") - kernel_version = get_kernel_version(config, kernel_url, kernel_branch) + + # Extract kernel version from Makefile + kernel_dir = os.path.join(TMP_DIR, vendor, device, "kernel") + if not os.path.exists(kernel_dir): + print(f"Error: Kernel directory not found at {kernel_dir}") + sys.exit(1) + + kernel_version = get_kernel_version(kernel_dir) # Determine KERNEL_ARCH and CROSS_COMPILE based on ARCH arch = config.get("ARCH", "unknown")