summaryrefslogtreecommitdiff
path: root/make-nvidia-image.sh
blob: 9577d69e8b0f582e99179971d20c51efcd86f33a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

DRIVER=$1
REPO=$2

EXTRACT_DIR=`mktemp -d /tmp/nvidia-extract.XXXXXXXXXX`
rm -rf $EXTRACT_DIR
$1 -x --target $EXTRACT_DIR

BASE=`basename $EXTRACT_DIR/libGL.so.*.*`
VERSION=${BASE#libGL.so.}

IMAGE_DIR=`mktemp -d /tmp/nvidia-image.XXXXXXXXXX`

mkdir -p $IMAGE_DIR/files
mkdir -p $IMAGE_DIR/files/tls

for i in libEGL.so libGLESv1_CM.so libGLESv2.so libGL.so libnvidia-cfg.so libnvidia-eglcore.so libnvidia-fbc.so libnvidia-glcore.so libnvidia-glsi.so libnvidia-gtk3.so libnvidia-ifr.so libnvidia-ml.so libnvidia-tls.so tls/libnvidia-tls.so; do
    mv $EXTRACT_DIR/$i.$VERSION $IMAGE_DIR/files/`dirname $i`
    ln -s `basename $i.$VERSION` $IMAGE_DIR/files/$i.1
done
ln -s libGLESv2.so.$VERSION $IMAGE_DIR/files/libGLESv2.so.2
ln -s libnvidia-gtk3.so.$VERSION $IMAGE_DIR/files/libnvidia-gtk3.so

rm -rf $EXTRACT_DIR

cat <<EOF >$IMAGE_DIR/metadata
[Runtime]
name=org.freedesktop.Platform.GL/x86_64/1.2
EOF

if [ ! -d ${REPO} ] ; then
    ostree  init --mode=archive-z2 --repo=${REPO}
fi
ostree commit --repo=${REPO} --owner-uid=0 --owner-gid=0 --no-xattrs --branch=runtime/org.freedesktop.Platform.GL/x86_64/1.2  -s "Nvidia driver ${VERSION}" $IMAGE_DIR

rm -rf $IMAGE_DIR