Skip to content

Commit

Permalink
fix: remove layouts in favour or alternative config locations
Browse files Browse the repository at this point in the history
These can clash with already existing directories on Classic systems
  • Loading branch information
jocado committed Apr 25, 2024
1 parent 16a5e8b commit cdf77b2
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
7 changes: 5 additions & 2 deletions nvidia/lib
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,14 @@ cdi_generate () {

# Default CDI libs search path and shell path for install on core systems #
CDI_LIB_SEARCH_PATH="${SNAP}/graphics/lib/${ARCH_TRIPLET}"
CDI_CONFIG_SEARCH_PATH="${SNAP}/graphics/share"
CDI_PATH="${PATH}:${SNAP}/graphics/bin"
# Otherwise, if on classic and nvidia driver is installed, set hostfs for the CDI libs search path and shell path #
[ "${NVIDIA_SUPPORT_CLASSIC}" == "true" ] && CDI_LIB_SEARCH_PATH="/var/lib/snapd/hostfs/usr/lib/${ARCH_TRIPLET}"
[ "${NVIDIA_SUPPORT_CLASSIC}" == "true" ] && CDI_CONFIG_SEARCH_PATH="/var/lib/snapd/hostfs/usr/share"
[ "${NVIDIA_SUPPORT_CLASSIC}" == "true" ] && CDI_PATH="${PATH}:/var/lib/snapd/hostfs/usr/bin"

LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${CDI_LIB_SEARCH_PATH}" PATH="${CDI_PATH}" "${SNAP}/usr/bin/nvidia-ctk" cdi generate --nvidia-ctk-path "${SNAP}/usr/bin/nvidia-ctk" --library-search-path "${CDI_LIB_SEARCH_PATH}" --device-name-strategy "${CDI_DEVICE_NAME_STRATEGY}" --output "${SNAP_DATA}/etc/cdi/nvidia.yaml"
XDG_DATA_DIRS="${XDG_DATA_DIRS:-}:${CDI_CONFIG_SEARCH_PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${CDI_LIB_SEARCH_PATH}" PATH="${CDI_PATH}" "${SNAP}/usr/bin/nvidia-ctk" cdi generate --nvidia-ctk-path "${SNAP}/usr/bin/nvidia-ctk" --library-search-path "${CDI_LIB_SEARCH_PATH}" --device-name-strategy "${CDI_DEVICE_NAME_STRATEGY}" --output "${SNAP_DATA}/etc/cdi/nvidia.yaml"
}

# Create the nvidia runtime config, either snap default or custom #
Expand All @@ -76,8 +78,9 @@ nvidia_runtime_config () {
echo "${RUNTIME_CONFIG_OVERRIDE}" > "${SNAP_DATA}/etc/nvidia-container-runtime/config.toml"
# Default - opinionated, but most viable option for now #
else
# FIXME: CDI spec-dirs can be set is a list using `"${SNAP_DATA}/etc/cdi",/var/run/cdi`, once this is fixed: https://github.com/NVIDIA/nvidia-container-toolkit/issues/466
rm -f "${SNAP_DATA}/etc/nvidia-container-runtime/config.toml"
"${SNAP}/usr/bin/nvidia-ctk" config --in-place --set nvidia-container-runtime.mode=cdi
"${SNAP}/usr/bin/nvidia-ctk" config --in-place --set nvidia-container-runtime.mode=cdi --set nvidia-container-runtime.modes.cdi.spec-dirs="${SNAP_DATA}/etc/cdi" --config "${SNAP_DATA}/etc/nvidia-container-runtime/config.toml"
fi
}

Expand Down
7 changes: 2 additions & 5 deletions snap/snapcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,6 @@ passthrough:
layout:
/etc/docker:
bind: $SNAP_DATA/etc/docker
# Container Device Interface (CDI) Support - https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#container-device-interface-cdi-support
/etc/cdi:
bind: $SNAP_DATA/etc/cdi
/etc/nvidia-container-runtime:
bind: $SNAP_DATA/etc/nvidia-container-runtime
/etc/gitconfig:
bind-file: $SNAP_DATA/etc/gitconfig
/usr/libexec/docker/cli-plugins:
Expand All @@ -60,6 +55,8 @@ environment:
LD_LIBRARY_PATH: $SNAP/graphics/lib/${CRAFT_ARCH_TRIPLET}:${SNAP}/lib/:${SNAP}/lib/${CRAFT_ARCH_TRIPLET}:${SNAP}/usr/lib/:${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET}
LIBGL_DRIVERS_PATH: $SNAP/graphics/lib/${CRAFT_ARCH_TRIPLET}/dri
LIBVA_DRIVERS_PATH: $SNAP/graphics/lib/${CRAFT_ARCH_TRIPLET}/dri
# nvidia-container-runtime can only set alternative config directory via XDG_CONFIG_HOME #
XDG_CONFIG_HOME: $SNAP_DATA/etc

plugs:
home:
Expand Down

0 comments on commit cdf77b2

Please sign in to comment.