* add nvidia-settings

This commit is contained in:
Alexander Baldeck 2024-07-04 16:08:36 +02:00
parent cbfea35905
commit ca9d5893ec
3 changed files with 136 additions and 0 deletions

32
nvidia-settings/.SRCINFO Normal file
View File

@ -0,0 +1,32 @@
pkgbase = nvidia-settings
pkgdesc = Tool for configuring the NVIDIA graphics driver
pkgver = 555.58
pkgrel = 1
url = https://github.com/NVIDIA/nvidia-settings
arch = x86_64
license = GPL2
makedepends = inetutils
makedepends = jansson
makedepends = gtk3
makedepends = libxv
makedepends = libvdpau
makedepends = nvidia-utils
makedepends = libxext
options = staticlibs
source = nvidia-settings-555.58.tar.gz::https://github.com/NVIDIA/nvidia-settings/archive/555.58.tar.gz
source = nvidia-settings-libxnvctrl_so.patch
sha512sums = fed21a73b639a25ebf7d78893b241cd6d723a215e0ad52ee2381897abeb6859a70fb6be6ed83618a15594c6de60d998f46696017f6d2115189002b55503a527d
sha512sums = 0303fe615d6ef4e14112998c531a17613b94776f9a6a027ddb81e400fddd5f2ff15583da8b8631c2306aca854edf2f54a8007eb36f1732b4c064c857aaf268ae
pkgname = nvidia-settings
depends = jansson
depends = gtk3
depends = libxv
depends = libvdpau
depends = nvidia-utils
depends = libxnvctrl
pkgname = libxnvctrl
pkgdesc = NVIDIA NV-CONTROL X extension
depends = libxext
provides = libXNVCtrl.so

66
nvidia-settings/PKGBUILD Normal file
View File

@ -0,0 +1,66 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
pkgbase=nvidia-settings
pkgname=('nvidia-settings' 'libxnvctrl')
pkgver=535.171.04
pkgrel=1
pkgdesc='Tool for configuring the NVIDIA graphics driver'
url='https://github.com/NVIDIA/nvidia-settings'
arch=(powerpc64le riscv64)
license=('GPL2')
makedepends=('inetutils' 'jansson' 'gtk3' 'libxv' 'libvdpau' 'libxext')
options=('staticlibs')
source=(${pkgbase}-${pkgver}.tar.gz::https://github.com/NVIDIA/nvidia-settings/archive/${pkgver}.tar.gz
nvidia-settings-libxnvctrl_so.patch)
sha512sums=('d2fb6680dd64bdcc28fcb49555ca9f17bf8b19347e545215c23a3ab3f37e9405229874630645cf1f5d52f71eaa0361665d94c36e9742a255088bc94f4b727dd4'
'0303fe615d6ef4e14112998c531a17613b94776f9a6a027ddb81e400fddd5f2ff15583da8b8631c2306aca854edf2f54a8007eb36f1732b4c064c857aaf268ae')
prepare() {
export PREFIX=/usr
export NV_USE_BUNDLED_LIBJANSSON=0
export OUTPUTDIR=out
cd ${pkgbase}-${pkgver}
patch -Np1 -i "${srcdir}"/nvidia-settings-libxnvctrl_so.patch
}
build() {
cd ${pkgbase}-${pkgver}
export CFLAGS+=" -ffat-lto-objects"
make
}
package_nvidia-settings() {
depends=('jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-utils' 'libxnvctrl')
cd ${pkgbase}-${pkgver}
DESTDIR="${pkgdir}" make install
install -D -m644 doc/nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
install -D -m644 doc/nvidia-settings.png "${pkgdir}/usr/share/pixmaps/nvidia-settings.png"
sed \
-e 's:__UTILS_PATH__:/usr/bin:' \
-e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' \
-e 's/__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__/Settings;HardwareSettings;/' \
-e 's/Icon=.*/Icon=nvidia-settings/' \
-i "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
}
package_libxnvctrl() {
depends=('libxext')
pkgdesc='NVIDIA NV-CONTROL X extension'
provides=('libXNVCtrl.so')
cd ${pkgbase}-${pkgver}
install -Dm 644 doc/{NV-CONTROL-API.txt,FRAMELOCK.txt} -t "${pkgdir}/usr/share/doc/${pkgname}"
install -Dm 644 samples/{Makefile,README,*.c,*.h,*.mk} -t "${pkgdir}/usr/share/doc/${pkgname}/samples"
install -Dm 644 src/libXNVCtrl/*.h -t "${pkgdir}/usr/include/NVCtrl"
install -d "${pkgdir}/usr/lib"
cp -Pr src/out/libXNVCtrl.* -t "${pkgdir}/usr/lib"
}
# vim: ts=2 sw=2 et:

View File

@ -0,0 +1,38 @@
diff --git a/src/Makefile b/src/Makefile
index 68eb140..6d0aab8 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -345,7 +345,7 @@ endif
ifdef BUILD_GTK3LIB
$(eval $(call DEBUG_INFO_RULES, $(GTK3LIB)))
-$(GTK3LIB).unstripped: $(LIBXNVCTRL) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK)
+$(GTK3LIB).unstripped: $(LIBXNVCTRL) $(LIBXNVCTRL_SHARED) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK)
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
$(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) \
-Wl,--unresolved-symbols=ignore-all -o $@ \
diff --git a/src/libXNVCtrl/xnvctrl.mk b/src/libXNVCtrl/xnvctrl.mk
index e6be2ef..c0921c4 100644
--- a/src/libXNVCtrl/xnvctrl.mk
+++ b/src/libXNVCtrl/xnvctrl.mk
@@ -39,6 +39,11 @@ XNVCTRL_CFLAGS ?=
LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a
+LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so
+LIBXNVCTRL_ABI_VERSION_MAJOR = 0
+LIBXNVCTRL_ABI_VERSION_MINOR = 0
+LIBXNVCTRL_LIBS += -lXext -lX11
+
LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c
LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIST,$(LIBXNVCTRL_SRC))
@@ -47,3 +52,8 @@ $(eval $(call DEFINE_OBJECT_RULE,TARGET,$(LIBXNVCTRL_SRC)))
$(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ)
$(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ)
+
+$(LIBXNVCTRL_SHARED) : $(LIBXNVCTRL_OBJ)
+ $(CC) -shared $(CFLAGS) $(LDFLAGS) -Wl,-soname=$(notdir $@).${LIBXNVCTRL_ABI_VERSION_MAJOR} -o $@.$(LIBXNVCTRL_ABI_VERSION_MAJOR).$(LIBXNVCTRL_ABI_VERSION_MINOR).0 $^ $(LIBXNVCTRL_LIBS)
+ ln -s $(notdir $@).$(LIBXNVCTRL_ABI_VERSION_MAJOR).$(LIBXNVCTRL_ABI_VERSION_MINOR).0 $@
+ ln -s $(notdir $@).$(LIBXNVCTRL_ABI_VERSION_MAJOR).$(LIBXNVCTRL_ABI_VERSION_MINOR).0 $@.$(LIBXNVCTRL_ABI_VERSION_MAJOR)