Skip to content

Commit

Permalink
fix(pkg/driverbuilder): properly export KERNELDIR in kernel-download …
Browse files Browse the repository at this point in the history
…scripts.

Signed-off-by: Federico Di Pierro <[email protected]>

Co-authored-by: Aldo Lacuku <[email protected]>
  • Loading branch information
2 people authored and poiana committed Mar 29, 2024
1 parent 712dd3a commit a6610e6
Show file tree
Hide file tree
Showing 18 changed files with 27 additions and 19 deletions.
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/alinux_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/almalinux_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/amazonlinux_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/archlinux_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/lib/modules/*/build/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/centos_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/debian_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ sourcedir=$(find . -type d -name "{{ .KernelHeadersPattern }}" | head -n 1 | xar
sed -i 's/\/usr\/src/../g' $sourcedir/Makefile

# exit value
echo $sourcedir
export KERNELDIR=$sourcedir
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/fedora_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/flatcar_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ make KCONFIG_CONFIG=/tmp/kernel.config oldconfig
make KCONFIG_CONFIG=/tmp/kernel.config modules_prepare

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/opensuse_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ cd /tmp/kernel-download/usr/src
sourcedir="$(find . -type d -name "linux-*-obj" | head -n 1 | xargs readlink -f)/*/default"

# exit value
echo $sourcedir
export KERNELDIR=$sourcedir
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/oracle_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/photonos_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ mkdir -p /tmp/kernel
mv usr/src/linux-*headers-*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/redhat_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/rocky_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ mkdir -p /tmp/kernel
mv usr/src/kernels/*/* /tmp/kernel

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/sles_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ done
sourcedir="$(find . -type d -name "linux-*-obj" | head -n 1 | xargs readlink -f)/*/default"

# exit value
echo $sourcedir
export KERNELDIR=$sourcedir
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/ubuntu_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ cd /tmp/kernel-download/usr/src/
sourcedir=$(find . -type d -name "{{ .KernelHeadersPattern }}" | head -n 1 | xargs readlink -f)

# exit value
echo $sourcedir
export KERNELDIR=$sourcedir
2 changes: 1 addition & 1 deletion pkg/driverbuilder/builder/templates/vanilla_kernel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ make KCONFIG_CONFIG=/tmp/kernel.config prepare
make KCONFIG_CONFIG=/tmp/kernel.config modules_prepare

# exit value
echo /tmp/kernel
export KERNELDIR=/tmp/kernel
10 changes: 9 additions & 1 deletion pkg/driverbuilder/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,13 @@ func (bp *DockerBuildProcessor) Start(b *builder.Build) error {
return err
}

// We make all 3 scripts executables,
// then:
// * download libs at required version
// * download and extract headers
// * each download-headers script will export KERNELDIR variable internally
// * we source download-headers.sh so that KERNELDIR is then visible to driverkit.sh
// * we finally make the actual build of the drivers
runCmd :=
`
#!/bin/bash
Expand All @@ -242,7 +249,8 @@ chmod +x /driverkit/download-headers.sh
chmod +x /driverkit/driverkit.sh
/driverkit/download-libs.sh
KERNELDIR=$(/driverkit/download-headers.sh) /driverkit/driverkit.sh
. /driverkit/download-headers.sh
/driverkit/driverkit.sh
`

files := []dockerCopyFile{
Expand Down
4 changes: 2 additions & 2 deletions pkg/driverbuilder/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,9 @@ func (bp *KubernetesBuildProcessor) buildModule(b *builder.Build) error {
}

// We run a script that downloads libs,
// download and extracts kernelURLs saving its output to KERNELDIR env variable,
// then downloads and extracts kernelURLs exporting KERNELDIR env variable,
// then finally runs the build script.
res = fmt.Sprintf("%s\nexport KERNELDIR=$(%s)\n%s", libsDownloadScript, kernelDownloadScript, res)
res = fmt.Sprintf("%s\n%s\n%s", libsDownloadScript, kernelDownloadScript, res)

if c.ModuleFilePath != "" {
res = fmt.Sprintf("%s\n%s", "touch "+moduleLockFile, res)
Expand Down

0 comments on commit a6610e6

Please sign in to comment.