From 33d576c70b640daca7a7d421891eefdbdf5314dc Mon Sep 17 00:00:00 2001 From: Federico Di Pierro Date: Wed, 13 Dec 2023 12:47:40 +0100 Subject: [PATCH] fix(pkg/driverbuilder): use a single constant for the Cmake command. Moreover, add back some now unused cmake variables, ie: * PROBE_NAME * PROBE_VERSION * PROBE_DEVICE_NAME Signed-off-by: Federico Di Pierro --- pkg/driverbuilder/builder/builders.go | 30 ++++++++++++++++++- pkg/driverbuilder/builder/templates/alinux.sh | 2 +- .../builder/templates/almalinux.sh | 2 +- .../builder/templates/amazonlinux.sh | 2 +- .../builder/templates/archlinux.sh | 2 +- pkg/driverbuilder/builder/templates/centos.sh | 2 +- pkg/driverbuilder/builder/templates/debian.sh | 2 +- pkg/driverbuilder/builder/templates/fedora.sh | 2 +- .../builder/templates/flatcar.sh | 2 +- pkg/driverbuilder/builder/templates/local.sh | 2 +- .../builder/templates/opensuse.sh | 2 +- pkg/driverbuilder/builder/templates/oracle.sh | 2 +- .../builder/templates/photonos.sh | 2 +- pkg/driverbuilder/builder/templates/redhat.sh | 2 +- pkg/driverbuilder/builder/templates/rocky.sh | 2 +- pkg/driverbuilder/builder/templates/sles.sh | 2 +- pkg/driverbuilder/builder/templates/ubuntu.sh | 2 +- .../builder/templates/vanilla.sh | 2 +- 18 files changed, 46 insertions(+), 18 deletions(-) diff --git a/pkg/driverbuilder/builder/builders.go b/pkg/driverbuilder/builder/builders.go index 2ef44c1f..da4b5177 100644 --- a/pkg/driverbuilder/builder/builders.go +++ b/pkg/driverbuilder/builder/builders.go @@ -31,7 +31,25 @@ import ( ) // DriverDirectory is the directory the processor uses to store the driver. -const DriverDirectory = "/tmp/driver" +const ( + DriverDirectory = "/tmp/driver" + cmakeCmdFmt = `cmake -Wno-dev \ + -DUSE_BUNDLED_DEPS=On \ + -DCREATE_TEST_TARGETS=Off \ + -DBUILD_LIBSCAP_GVISOR=Off \ + -DBUILD_LIBSCAP_MODERN_BPF=Off \ + -DENABLE_DRIVERS_TESTS=Off \ + -DDRIVER_NAME=%s \ + -DPROBE_NAME=%s \ + -DBUILD_BPF=On \ + -DDRIVER_VERSION=%s \ + -DPROBE_VERSION=%s \ + -DGIT_COMMIT=%s \ + -DDRIVER_DEVICE_NAME=%s \ + -DPROBE_DEVICE_NAME=%s \ + .. && \ + sed -i s/'DRIVER_COMMIT ""'/'DRIVER_COMMIT "%s"'/g driver/src/driver_config.h` +) var HeadersNotFoundErr = errors.New("kernel headers not found") @@ -59,6 +77,7 @@ type commonTemplateData struct { BuildModule bool BuildProbe bool GCCVersion string + CmakeCmd string } // Builder represents a builder capable of generating a script for a driverkit target. @@ -288,6 +307,15 @@ func (c Config) toTemplateData(b Builder, kr kernelrelease.KernelRelease) common BuildModule: len(c.ModuleFilePath) > 0, BuildProbe: len(c.ProbeFilePath) > 0, GCCVersion: c.GCCVersion, + CmakeCmd: fmt.Sprintf(cmakeCmdFmt, + c.DriverName, + c.DriverName, + c.DriverVersion, + c.DriverVersion, + c.DriverVersion, + c.DeviceName, + c.DeviceName, + c.DriverVersion), } } diff --git a/pkg/driverbuilder/builder/templates/alinux.sh b/pkg/driverbuilder/builder/templates/alinux.sh index 60cdd7ae..07b84717 100644 --- a/pkg/driverbuilder/builder/templates/alinux.sh +++ b/pkg/driverbuilder/builder/templates/alinux.sh @@ -41,7 +41,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/almalinux.sh b/pkg/driverbuilder/builder/templates/almalinux.sh index 60cdd7ae..07b84717 100644 --- a/pkg/driverbuilder/builder/templates/almalinux.sh +++ b/pkg/driverbuilder/builder/templates/almalinux.sh @@ -41,7 +41,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/amazonlinux.sh b/pkg/driverbuilder/builder/templates/amazonlinux.sh index 7b5e4fff..13818b87 100644 --- a/pkg/driverbuilder/builder/templates/amazonlinux.sh +++ b/pkg/driverbuilder/builder/templates/amazonlinux.sh @@ -44,7 +44,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/archlinux.sh b/pkg/driverbuilder/builder/templates/archlinux.sh index 802c8e36..90c53e1c 100644 --- a/pkg/driverbuilder/builder/templates/archlinux.sh +++ b/pkg/driverbuilder/builder/templates/archlinux.sh @@ -41,7 +41,7 @@ mv usr/lib/modules/*/build/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/centos.sh b/pkg/driverbuilder/builder/templates/centos.sh index 1da82580..ed85ad52 100644 --- a/pkg/driverbuilder/builder/templates/centos.sh +++ b/pkg/driverbuilder/builder/templates/centos.sh @@ -42,7 +42,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} sed -i 's/$(MAKE) -C $(KERNELDIR)/$(MAKE) KCFLAGS="-Wno-incompatible-pointer-types" -C $(KERNELDIR)/g' driver/Makefile.in mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/debian.sh b/pkg/driverbuilder/builder/templates/debian.sh index 9604e49c..dbcd1d4e 100644 --- a/pkg/driverbuilder/builder/templates/debian.sh +++ b/pkg/driverbuilder/builder/templates/debian.sh @@ -49,7 +49,7 @@ sourcedir=$(find . -type d -name "{{ .KernelHeadersPattern }}" | head -n 1 | xar cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/fedora.sh b/pkg/driverbuilder/builder/templates/fedora.sh index 60cdd7ae..07b84717 100644 --- a/pkg/driverbuilder/builder/templates/fedora.sh +++ b/pkg/driverbuilder/builder/templates/fedora.sh @@ -41,7 +41,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/flatcar.sh b/pkg/driverbuilder/builder/templates/flatcar.sh index 8cf1f81b..a9c8edf6 100644 --- a/pkg/driverbuilder/builder/templates/flatcar.sh +++ b/pkg/driverbuilder/builder/templates/flatcar.sh @@ -48,7 +48,7 @@ make KCONFIG_CONFIG=/tmp/kernel.config modules_prepare cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/local.sh b/pkg/driverbuilder/builder/templates/local.sh index cc1a8de0..1b713f20 100644 --- a/pkg/driverbuilder/builder/templates/local.sh +++ b/pkg/driverbuilder/builder/templates/local.sh @@ -38,7 +38,7 @@ cd {{ .DriverBuildDir }} {{ if .DownloadSrc }} echo "* Configuring sources with cmake" mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ end }} {{ end }} diff --git a/pkg/driverbuilder/builder/templates/opensuse.sh b/pkg/driverbuilder/builder/templates/opensuse.sh index 251ae87e..1874f2cc 100644 --- a/pkg/driverbuilder/builder/templates/opensuse.sh +++ b/pkg/driverbuilder/builder/templates/opensuse.sh @@ -44,7 +44,7 @@ sourcedir="$(find . -type d -name "linux-*-obj" | head -n 1 | xargs readlink -f) cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/oracle.sh b/pkg/driverbuilder/builder/templates/oracle.sh index 60cdd7ae..07b84717 100644 --- a/pkg/driverbuilder/builder/templates/oracle.sh +++ b/pkg/driverbuilder/builder/templates/oracle.sh @@ -41,7 +41,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/photonos.sh b/pkg/driverbuilder/builder/templates/photonos.sh index ea5c0d4b..f83d4209 100644 --- a/pkg/driverbuilder/builder/templates/photonos.sh +++ b/pkg/driverbuilder/builder/templates/photonos.sh @@ -44,7 +44,7 @@ mv usr/src/linux-*headers-*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/redhat.sh b/pkg/driverbuilder/builder/templates/redhat.sh index ba84b0c8..dbbfc06b 100644 --- a/pkg/driverbuilder/builder/templates/redhat.sh +++ b/pkg/driverbuilder/builder/templates/redhat.sh @@ -43,7 +43,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/rocky.sh b/pkg/driverbuilder/builder/templates/rocky.sh index 60cdd7ae..07b84717 100644 --- a/pkg/driverbuilder/builder/templates/rocky.sh +++ b/pkg/driverbuilder/builder/templates/rocky.sh @@ -41,7 +41,7 @@ mv usr/src/kernels/*/* /tmp/kernel cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/sles.sh b/pkg/driverbuilder/builder/templates/sles.sh index f02853c1..d784dfcd 100644 --- a/pkg/driverbuilder/builder/templates/sles.sh +++ b/pkg/driverbuilder/builder/templates/sles.sh @@ -46,7 +46,7 @@ sourcedir="$(find . -type d -name "linux-*-obj" | head -n 1 | xargs readlink -f) cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/ubuntu.sh b/pkg/driverbuilder/builder/templates/ubuntu.sh index 53290a9c..e784a8ad 100644 --- a/pkg/driverbuilder/builder/templates/ubuntu.sh +++ b/pkg/driverbuilder/builder/templates/ubuntu.sh @@ -45,7 +45,7 @@ sourcedir=$(find . -type d -name "{{ .KernelHeadersPattern }}" | head -n 1 | xar cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module diff --git a/pkg/driverbuilder/builder/templates/vanilla.sh b/pkg/driverbuilder/builder/templates/vanilla.sh index 9965d781..64085553 100644 --- a/pkg/driverbuilder/builder/templates/vanilla.sh +++ b/pkg/driverbuilder/builder/templates/vanilla.sh @@ -58,7 +58,7 @@ export KBUILD_MODPOST_WARN=1 cd {{ .DriverBuildDir }} mkdir -p build && cd build -cmake -DUSE_BUNDLED_DEPS=On -DCREATE_TEST_TARGETS=Off -DBUILD_LIBSCAP_GVISOR=Off -DBUILD_LIBSCAP_MODERN_BPF=Off -DENABLE_DRIVERS_TESTS=Off -DDRIVER_NAME={{ .ModuleDriverName }} -DBUILD_BPF=On .. +{{ .CmakeCmd }} {{ if .BuildModule }} # Build the module