#!/bin/bash # Slackware build script for gpufetch # Copyright (c) 2026 Moletastic # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=gpufetch VERSION=${VERSION:-0.25} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$(uname -m)" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$(uname -m) ;; esac fi if [ -n "$PRINT_PACKAGE_NAME" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi if [ "$ARCH" != "x86_64" ]; then echo "$PRGNAM: only x86_64 is supported" >&2 exit 1 fi SLKCFLAGS="-O2 -fPIC" case "${CUDA:-no}" in yes) echo "$PRGNAM: CUDA=yes is experimental and untested" >&2 NVCC=${NVCC:-$(command -v nvcc || true)} if [ ! -x "$NVCC" ]; then echo "$PRGNAM: CUDA=yes requires nvcc; set NVCC to its path" >&2 exit 1 fi CUDA_OPTS=(-DENABLE_CUDA_BACKEND=ON -DCMAKE_CUDA_COMPILER="$NVCC") ;; no) CUDA_OPTS=(-DENABLE_CUDA_BACKEND=OFF) ;; *) echo "$PRGNAM: CUDA must be yes or no" >&2 exit 1 ;; esac TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} set -e rm -rf "$PKG" mkdir -p "$TMP" "$PKG" "$OUTPUT" cd "$TMP" rm -rf "$PRGNAM-$VERSION" tar xvf "$CWD/$PRGNAM-$VERSION.tar.gz" cd "$PRGNAM-$VERSION" patch -p1 < "$CWD/gpufetch.1.patch" chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ -o -perm 511 \) -exec chmod 755 {} \+ -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ # Upstream downloads pciutils at configure time if the system copy is missing. if [ ! -r /usr/include/pci/pci.h ] || [ ! -e /usr/lib64/libpci.so ]; then echo "$PRGNAM: Slackware's pciutils headers and library are required" >&2 exit 1 fi cmake -S . -B build \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS_RELEASE="$SLKCFLAGS" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_SKIP_RPATH=ON \ "${CUDA_OPTS[@]}" \ -DENABLE_INTEL_BACKEND=ON \ -DPCIUTILS_INCLUDE_DIR=/usr/include \ -DPCIUTILS_LIBRARIES=/usr/lib64/libpci.so cmake --build build install -D -m 0755 build/gpufetch "$PKG/usr/bin/gpufetch" strip --strip-unneeded "$PKG/usr/bin/gpufetch" install -D -m 0644 gpufetch.1 "$PKG/usr/man/man1/gpufetch.1" gzip -9 "$PKG/usr/man/man1/gpufetch.1" mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION" cp -a LICENSE README.md "$PKG/usr/doc/$PRGNAM-$VERSION/" cat "$CWD/$PRGNAM.SlackBuild" \ > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild" mkdir -p "$PKG/install" cat "$CWD/slack-desc" > "$PKG/install/slack-desc" cd "$PKG" /sbin/makepkg -l y -c n "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"