From 41db265f93ee45323b269f70c95f17ec581c2788 Mon Sep 17 00:00:00 2001 From: Stefan Reimer Date: Wed, 31 Aug 2022 15:51:59 +0200 Subject: [PATCH] Feat: latest aws-neuron-driver, nvidia-gpu alpha support --- Makefile | 2 +- v3.16/aws-neuron-driver/APKBUILD | 10 ++--- v3.16/glibc/APKBUILD | 53 +++++++++++++++++++++++++ v3.16/glibc/README.md | 32 +++++++++++++++ v3.16/glibc/glibc-bin.trigger | 2 + v3.16/glibc/ld.so.conf | 6 +++ v3.16/glibc/nsswitch.conf | 1 + v3.16/nvidia-container-toolkit/APKBUILD | 47 ++++++++++++++++++++++ v3.16/nvidia-gpu-driver/APKBUILD | 52 ++++++++++++++++++++++++ v3.16/nvidia-open-gpu/APKBUILD | 42 -------------------- 10 files changed, 199 insertions(+), 48 deletions(-) create mode 100644 v3.16/glibc/APKBUILD create mode 100644 v3.16/glibc/README.md create mode 100755 v3.16/glibc/glibc-bin.trigger create mode 100644 v3.16/glibc/ld.so.conf create mode 100644 v3.16/glibc/nsswitch.conf create mode 100644 v3.16/nvidia-container-toolkit/APKBUILD create mode 100644 v3.16/nvidia-gpu-driver/APKBUILD delete mode 100644 v3.16/nvidia-open-gpu/APKBUILD diff --git a/Makefile b/Makefile index 5292748..8312cb0 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -BUILDER ?= v3.16.0 +BUILDER := v3.16.0 RELEASE := v3.16 PKG := '*' diff --git a/v3.16/aws-neuron-driver/APKBUILD b/v3.16/aws-neuron-driver/APKBUILD index ca42ab8..5aeaf94 100644 --- a/v3.16/aws-neuron-driver/APKBUILD +++ b/v3.16/aws-neuron-driver/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Stefan Reimer # Maintainer: Stefan Reimer pkgname=aws-neuron-driver -pkgver=2.3.11.0 -pkgrel=2 +pkgver=2.3.26.0 +pkgrel=0 pkgdesc="Linux Kernel module for AWS Neuron INF instances" url="https://awsdocs-neuron.readthedocs-hosted.com/en/latest/release-notes/index.html#" arch="x86_64" @@ -10,6 +10,7 @@ license="GPL-2.0" makedepends="bash xz linux-headers linux-virt-dev" options="!check" +# https://awsdocs-neuron.readthedocs-hosted.com/en/latest/release-notes/neuron-driver.html#neuron-driver-release-notes # apt-get download --print-uris aws-neuron-dkms | cut -d' ' -f1 source="$pkgname-$pkgver.deb::https://apt.repos.neuron.amazonaws.com/pool/main/a/aws-neuron-dkms/aws-neuron-dkms_"$pkgver"_amd64.deb" @@ -32,15 +33,14 @@ build() { package() { KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt)) + depends="linux-virt=~$(echo $KERNEL_VERSION | sed -e 's/-.*$//')" mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel "$pkgdir"/lib/udev/rules.d gzip -9 -c neuron.ko > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/neuron.ko.gz echo 'KERNEL=="neuron*", MODE="0666"' > "$pkgdir"/lib/udev/rules.d/90-neuron-udev.rules - - depends="linux-virt=$(apk info linux-virt -d | grep description: | awk '{print $1}' | sed -e 's/linux-virt-//')" } sha512sums=' -b0a67a72eb210e37aff77fa6ec62e2affbdc6792071ae1bf4a9c772f0bc5d8c8df64b527ca015fbefe0480c15c8e310d6ea066c5a7ced24e484d1dad5e86499f aws-neuron-driver-2.3.11.0.deb +81a233daf540b7ea3f334e8934ca1a89dd2cdedd8d0a448ae080ea5f7e28ef4b0aaa00e09644b69c29b759098ce82c1cef0a57ee68380f1fe0835883b8d33ab7 aws-neuron-driver-2.3.26.0.deb ' diff --git a/v3.16/glibc/APKBUILD b/v3.16/glibc/APKBUILD new file mode 100644 index 0000000..b67a13c --- /dev/null +++ b/v3.16/glibc/APKBUILD @@ -0,0 +1,53 @@ +# Maintainer: Sasha Gerrand + +pkgname="glibc" +pkgver="2.34" +_pkgrel="0" +pkgrel="0" +pkgdesc="GNU C Library compatibility layer" +arch="x86_64" +url="https://github.com/sgerrand/alpine-pkg-glibc" +license="LGPL" +source="https://github.com/sgerrand/docker-glibc-builder/releases/download/$pkgver-$_pkgrel/glibc-bin-$pkgver-$_pkgrel-x86_64.tar.gz +nsswitch.conf +ld.so.conf" +subpackages="$pkgname-bin $pkgname-dev $pkgname-i18n" +triggers="$pkgname-bin.trigger=/lib:/usr/lib:/usr/glibc-compat/lib" +options="!check lib64" + +package() { + mkdir -p "$pkgdir/lib" "$pkgdir/lib64" "$pkgdir/usr/glibc-compat/lib/locale" "$pkgdir"/usr/glibc-compat/lib64 "$pkgdir"/etc + cp -a "$srcdir"/usr "$pkgdir" + cp "$srcdir"/ld.so.conf "$pkgdir"/usr/glibc-compat/etc/ld.so.conf + cp "$srcdir"/nsswitch.conf "$pkgdir"/etc/nsswitch.conf + rm "$pkgdir"/usr/glibc-compat/etc/rpc + rm -rf "$pkgdir"/usr/glibc-compat/bin + rm -rf "$pkgdir"/usr/glibc-compat/sbin + rm -rf "$pkgdir"/usr/glibc-compat/lib/gconv + rm -rf "$pkgdir"/usr/glibc-compat/lib/getconf + rm -rf "$pkgdir"/usr/glibc-compat/lib/audit + rm -rf "$pkgdir"/usr/glibc-compat/share + rm -rf "$pkgdir"/usr/glibc-compat/var + ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/lib/ld-linux-x86-64.so.2 + ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/lib64/ld-linux-x86-64.so.2 + ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/usr/glibc-compat/lib64/ld-linux-x86-64.so.2 + ln -s /usr/glibc-compat/etc/ld.so.cache ${pkgdir}/etc/ld.so.cache +} + +bin() { + depends="$pkgname libgcc" + mkdir -p "$subpkgdir"/usr/glibc-compat + cp -a "$srcdir"/usr/glibc-compat/bin "$subpkgdir"/usr/glibc-compat + cp -a "$srcdir"/usr/glibc-compat/sbin "$subpkgdir"/usr/glibc-compat +} + +i18n() { + depends="$pkgname-bin" + arch="noarch" + mkdir -p "$subpkgdir"/usr/glibc-compat + cp -a "$srcdir"/usr/glibc-compat/share "$subpkgdir"/usr/glibc-compat +} + +sha512sums="77e772a8edd55812e94f99087ea2a2307ac48b09d58fe0bbcb41f9b9861ef3a15b177699e2e1fb7e49fdeb42c64c33b81c0fdf4d44e043cd9f54c72b93f40d98 glibc-bin-2.34-0-x86_64.tar.gz +478bdd9f7da9e6453cca91ce0bd20eec031e7424e967696eb3947e3f21aa86067aaf614784b89a117279d8a939174498210eaaa2f277d3942d1ca7b4809d4b7e nsswitch.conf +2912f254f8eceed1f384a1035ad0f42f5506c609ec08c361e2c0093506724a6114732db1c67171c8561f25893c0dd5c0c1d62e8a726712216d9b45973585c9f7 ld.so.conf" diff --git a/v3.16/glibc/README.md b/v3.16/glibc/README.md new file mode 100644 index 0000000..5553ffa --- /dev/null +++ b/v3.16/glibc/README.md @@ -0,0 +1,32 @@ +# alpine-pkg-glibc + +[![CircleCI](https://circleci.com/gh/sgerrand/alpine-pkg-glibc/tree/master.svg?style=svg)](https://circleci.com/gh/sgerrand/alpine-pkg-glibc/tree/master) ![x86_64](https://img.shields.io/badge/x86__64-supported-brightgreen.svg) + +This is the [GNU C Library](https://gnu.org/software/libc/) as a Alpine Linux package to run binaries linked against `glibc`. This package utilizes a custom built glibc binary based on the vanilla glibc source. Built binary artifacts come from https://github.com/sgerrand/docker-glibc-builder. + +## Releases + +See the [releases page](https://github.com/sgerrand/alpine-pkg-glibc/releases) for the latest download links. If you are using tools like `localedef` you will need the `glibc-bin` and `glibc-i18n` packages in addition to the `glibc` package. + +## Installing + +The current installation method for these packages is to pull them in using `wget` or `curl` and install the local file with `apk`: + + wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub + wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk + apk add glibc-2.34-r0.apk + +### Please Note + +:warning: The URL of the public signing key has changed! :warning: + +Any previous reference to `https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub` should be updated with immediate effect to `https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub`. + +## Locales + +You will need to generate your locale if you would like to use a specific one for your glibc application. You can do this by installing the `glibc-i18n` package and generating a locale using the `localedef` binary. An example for en_US.UTF-8 would be: + + wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-bin-2.34-r0.apk + wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-i18n-2.34-r0.apk + apk add glibc-bin-2.34-r0.apk glibc-i18n-2.34-r0.apk + /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8 diff --git a/v3.16/glibc/glibc-bin.trigger b/v3.16/glibc/glibc-bin.trigger new file mode 100755 index 0000000..051104b --- /dev/null +++ b/v3.16/glibc/glibc-bin.trigger @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/glibc-compat/sbin/ldconfig diff --git a/v3.16/glibc/ld.so.conf b/v3.16/glibc/ld.so.conf new file mode 100644 index 0000000..833985d --- /dev/null +++ b/v3.16/glibc/ld.so.conf @@ -0,0 +1,6 @@ +# libc default configuration +/usr/local/lib + +/usr/glibc-compat/lib +/usr/lib +/lib diff --git a/v3.16/glibc/nsswitch.conf b/v3.16/glibc/nsswitch.conf new file mode 100644 index 0000000..e6ea3a8 --- /dev/null +++ b/v3.16/glibc/nsswitch.conf @@ -0,0 +1 @@ +hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 diff --git a/v3.16/nvidia-container-toolkit/APKBUILD b/v3.16/nvidia-container-toolkit/APKBUILD new file mode 100644 index 0000000..1390afe --- /dev/null +++ b/v3.16/nvidia-container-toolkit/APKBUILD @@ -0,0 +1,47 @@ +# Contributor: Stefan Reimer +# Maintainer: Stefan Reimer +pkgname=nvidia-container-toolkit +pkgver=1.10.0 +pkgrel=1 +pkgdesc="NVIDIA Container toolkit incl. cri hooks" +url="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html" +arch="x86_64" +license="Apache" +makedepends="xz" +options="!check !tracedeps" + +source="https://nvidia.github.io/libnvidia-container/stable/debian10/amd64/libnvidia-container1_"$pkgver"-"$pkgrel"_amd64.deb + https://nvidia.github.io/libnvidia-container/stable/debian10/amd64/libnvidia-container-tools_"$pkgver"-"$pkgrel"_amd64.deb + https://nvidia.github.io/libnvidia-container/stable/debian10/amd64/nvidia-container-toolkit_"$pkgver"-"$pkgrel"_amd64.deb" + +build() { + return 0 +} + +package() { + depends="glibc=2.34-r0 libcap nvidia-gpu-driver" + + mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/bin "$pkgdir"/etc/nvidia-container-runtime + + # libnvidia-container1 + ar -x "$srcdir"/libnvidia-container1_"$pkgver"-"$pkgrel"_amd64.deb && tar xfJ data.tar.xz + mv usr/lib/x86_64-linux-gnu/* "$pkgdir"/usr/lib + rm -rf control.tar.xz data.tar.xz debian-binary usr + + # libnvidia-container-tools + ar -x "$srcdir"/libnvidia-container-tools_"$pkgver"-"$pkgrel"_amd64.deb && tar xfJ data.tar.xz + mv usr/bin/nvidia-container-cli "$pkgdir"/usr/bin + rm -rf control.tar.xz data.tar.xz debian-binary usr + + # nvidia-container-toolkit + ar -x "$srcdir"/nvidia-container-toolkit_"$pkgver"-"$pkgrel"_amd64.deb && tar xfJ data.tar.xz + mv usr/bin/nvidia* "$pkgdir"/usr/bin + mv etc/nvidia-container-runtime/config.toml "$pkgdir"/etc/nvidia-container-runtime + rm -rf control.tar.xz data.tar.xz debian-binary usr +} + +sha512sums=' +23ba2aec28f01c0037bbb4812ea542589e96f6527cf49468a4a7c54ca05808cf0984a8dfe13ee3455b8c6ae8468c58590f9e1e6996927c710bcf3e545772a356 libnvidia-container1_1.10.0-1_amd64.deb +c5369c832bd91703e6e6e86a4431c2eebb2ddeaadff126174b41ed11e969dc8cc49dcab26b3ac18abb43b466a86ce76908eaa2f5e4109c689a0c3a4fa47548b5 libnvidia-container-tools_1.10.0-1_amd64.deb +3043729bd96dd153db1dc317685167f34da6b9d202134335212fb7d861532a265a59e002c86fff2664c67687f4c8bcc75913c74018930a6c68c0f2044eceacf0 nvidia-container-toolkit_1.10.0-1_amd64.deb +' diff --git a/v3.16/nvidia-gpu-driver/APKBUILD b/v3.16/nvidia-gpu-driver/APKBUILD new file mode 100644 index 0000000..421e195 --- /dev/null +++ b/v3.16/nvidia-gpu-driver/APKBUILD @@ -0,0 +1,52 @@ +# Contributor: Stefan Reimer +# Maintainer: Stefan Reimer +pkgname=nvidia-gpu-driver +pkgver=515.65.01 +pkgrel=0 +pkgdesc="NVIDIA Linux open GPU kernel modules incl. GSP firmware" +url="https://github.com/NVIDIA/open-gpu-kernel-modules" +arch="x86_64" +license="MIT OR GPL-2.0" +makedepends="bash linux-headers linux-virt-dev xz" +options="!check !strip !tracedeps" + +source="nvidia-$pkgver.tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/$pkgver.tar.gz + NVIDIA-Linux-x86_64-$pkgver.run::https://download.nvidia.com/XFree86/Linux-x86_64/$pkgver/NVIDIA-Linux-x86_64-$pkgver.run" +builddir="$srcdir/open-gpu-kernel-modules-$pkgver" + +build() { + # Hack running the build inside a container other uname -r returns host kernel + KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt)) + + make KERNEL_UNAME=$KERNEL_VERSION +} + +package() { + KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt)) + depends="glibc<2.35 linux-virt=~$(echo $KERNEL_VERSION | sed -e 's/-.*$//')" + + modules="nvidia.ko \ + nvidia-drm.ko \ + nvidia-modeset.ko \ + nvidia-uvm.ko \ + nvidia-peermem.ko" + + mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel + for m in $modules; do + gzip -9 -c kernel-open/$m > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/$m.gz + done + + # Add gsp firmware see: https://download.nvidia.com/XFree86/Linux-x86_64/$pkgver/README/gsp.html + mkdir -p "$pkgdir"/lib/firmware/nvidia/"$pkgver" + sh "$srcdir"/NVIDIA-Linux-x86_64-$pkgver.run -x -s && cp NVIDIA-Linux-x86_64-$pkgver/firmware/gsp.bin "$pkgdir"/lib/firmware/nvidia/"$pkgver"/gsp.bin + + # Install basic nvidia-smi inck. libnvidia-ml + mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/sbin + cp NVIDIA-Linux-x86_64-$pkgver/libnvidia-ml.so."$pkgver" "$pkgdir"/usr/lib/libnvidia-ml.so.1 + cp NVIDIA-Linux-x86_64-$pkgver/nvidia-smi "$pkgdir"/usr/sbin/nvidia-smi +} + +sha512sums=' +c2ff6fd02272b6981a65e7e14c6b636f0113e21da910898c27682f58e60fa8e6deea3670081c57e4961fb5e7794eef8eddb90d134ba1892536a8468c5dc9d669 nvidia-515.65.01.tar.gz +5221a4ac071eb39a37a841f19cfe4983286dc35e918956b40604404ef36c122612475df7b9a391a9a70bd60f44e598c8a0e5ec54ccc3e90d51f01e1b2fbe5e33 NVIDIA-Linux-x86_64-515.65.01.run +' diff --git a/v3.16/nvidia-open-gpu/APKBUILD b/v3.16/nvidia-open-gpu/APKBUILD deleted file mode 100644 index a29f228..0000000 --- a/v3.16/nvidia-open-gpu/APKBUILD +++ /dev/null @@ -1,42 +0,0 @@ -# Contributor: Stefan Reimer -# Maintainer: Stefan Reimer -pkgname=nvidia-open-gpu -pkgver=515.65.01 -pkgrel=1 -pkgdesc="NVIDIA Linux open GPU kernel modules" -url="https://github.com/NVIDIA/open-gpu-kernel-modules" -arch="x86_64" -license="MIT OR GPL-2.0" -makedepends="bash linux-headers linux-virt-dev" -options="!check" - -source="nvidia-$pkgver.tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/$pkgver.tar.gz" -builddir="$srcdir/open-gpu-kernel-modules-$pkgver" - -build() { - # Hack running the build inside a container other uname -r returns host kernel - KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt)) - - make KERNEL_UNAME=$KERNEL_VERSION -} - -package() { - KERNEL_VERSION=$(basename $(ls -d /lib/modules/*-virt)) - - modules="nvidia.ko \ - nvidia-drm.ko \ - nvidia-modeset.ko \ - nvidia-uvm.ko \ - nvidia-peermem.ko" - - mkdir -p "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel - for m in $modules; do - gzip -9 -c kernel-open/$m > "$pkgdir"/lib/modules/$KERNEL_VERSION/kernel/$m.gz - done - - depends="linux-virt=$(apk info linux-virt -d | grep description: | awk '{print $1}' | sed -e 's/linux-virt-//')" -} - -sha512sums=' -c2ff6fd02272b6981a65e7e14c6b636f0113e21da910898c27682f58e60fa8e6deea3670081c57e4961fb5e7794eef8eddb90d134ba1892536a8468c5dc9d669 nvidia-515.65.01.tar.gz -'