From 6f8e828c3d9fe56dbb1da95faf568ee4ab299b66c40d0f6714c49674772fbef4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Tue, 29 Oct 2024 09:36:30 +0100 Subject: [PATCH] Sync from SUSE:SLFO:Main nvidia-settings revision b613a4a45cd21e24cd0ea8e511151a8a --- .gitattributes | 23 ++++ nvidia-libXNVCtrl.rpmlintrc | 2 + nvidia-settings-560.35.03.tar.bz2 | 3 + nvidia-settings-desktop.patch | 18 +++ nvidia-settings-ld-dep-remove.patch | 12 ++ nvidia-settings-lib-permissions.patch | 24 ++++ nvidia-settings-libXNVCtrl.patch | 97 ++++++++++++++++ nvidia-settings-link-order.patch | 60 ++++++++++ nvidia-settings-load.desktop | 8 ++ nvidia-settings.changes | 35 ++++++ nvidia-settings.spec | 156 ++++++++++++++++++++++++++ 11 files changed, 438 insertions(+) create mode 100644 .gitattributes create mode 100644 nvidia-libXNVCtrl.rpmlintrc create mode 100644 nvidia-settings-560.35.03.tar.bz2 create mode 100644 nvidia-settings-desktop.patch create mode 100644 nvidia-settings-ld-dep-remove.patch create mode 100644 nvidia-settings-lib-permissions.patch create mode 100644 nvidia-settings-libXNVCtrl.patch create mode 100644 nvidia-settings-link-order.patch create mode 100644 nvidia-settings-load.desktop create mode 100644 nvidia-settings.changes create mode 100644 nvidia-settings.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/nvidia-libXNVCtrl.rpmlintrc b/nvidia-libXNVCtrl.rpmlintrc new file mode 100644 index 0000000..c98eb3a --- /dev/null +++ b/nvidia-libXNVCtrl.rpmlintrc @@ -0,0 +1,2 @@ +addFilter("nvidia-libXNVCtrl.*shlib-policy-name-error") + diff --git a/nvidia-settings-560.35.03.tar.bz2 b/nvidia-settings-560.35.03.tar.bz2 new file mode 100644 index 0000000..21ad2cd --- /dev/null +++ b/nvidia-settings-560.35.03.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:871d54d2d6b6b455d2fb9ac4f15c007ea6d0874b7ecfadcfcdb2c93b78dff794 +size 1115724 diff --git a/nvidia-settings-desktop.patch b/nvidia-settings-desktop.patch new file mode 100644 index 0000000..c39ff28 --- /dev/null +++ b/nvidia-settings-desktop.patch @@ -0,0 +1,18 @@ +diff -Naur nvidia-settings-530.30.02/doc/nvidia-settings.desktop nvidia-settings-530.30.02.old/doc/nvidia-settings.desktop +--- nvidia-settings-530.30.02/doc/nvidia-settings.desktop 2023-03-08 13:01:39.749406623 +0100 ++++ nvidia-settings-530.30.02.old/doc/nvidia-settings.desktop 2023-03-08 13:02:50.950572460 +0100 +@@ -1,11 +1,11 @@ + [Desktop Entry] + Type=Application +-Encoding=UTF-8 + Name=NVIDIA X Server Settings + Comment=Configure NVIDIA X Server Settings +-Exec=__UTILS_PATH__/nvidia-settings ++Exec=nvidia-settings + Icon=nvidia-settings +-Categories=__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__ ++Categories=System;Settings ++Keywords=nvidia;vulkan;opengl;driver + + # Translation by Marcin Mikołajczak + Name[pl]=Ustawienia serwera X NVIDIA diff --git a/nvidia-settings-ld-dep-remove.patch b/nvidia-settings-ld-dep-remove.patch new file mode 100644 index 0000000..f523f14 --- /dev/null +++ b/nvidia-settings-ld-dep-remove.patch @@ -0,0 +1,12 @@ +Index: nvidia-settings-545.13/utils.mk +=================================================================== +--- nvidia-settings-545.13.orig/utils.mk ++++ nvidia-settings-545.13/utils.mk +@@ -584,7 +584,6 @@ define READ_ONLY_OBJECT_FROM_FILE_RULE + $(at_if_quiet)$$(MKDIR) $$(OUTPUTDIR) + $(at_if_quiet)cd $$(dir $(1)); \ + $$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \ +- $$(LD_TARGET_EMULATION_FLAG) \ + $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@) + $$(call quiet_cmd,OBJCOPY) \ + --rename-section .data=.rodata,contents,alloc,load,data,readonly \ diff --git a/nvidia-settings-lib-permissions.patch b/nvidia-settings-lib-permissions.patch new file mode 100644 index 0000000..93c32e0 --- /dev/null +++ b/nvidia-settings-lib-permissions.patch @@ -0,0 +1,24 @@ +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/utils.mk nvidia-settings-525.60.11/src/libXNVCtrl/utils.mk +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/utils.mk 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/utils.mk 2022-12-01 07:56:49.882413208 +0100 +@@ -92,7 +92,7 @@ + + INSTALL ?= install + INSTALL_BIN_ARGS ?= -m 755 +-INSTALL_LIB_ARGS ?= -m 644 ++INSTALL_LIB_ARGS ?= -m 755 + INSTALL_DOC_ARGS ?= -m 644 + + M4 ?= m4 +diff -Naur nvidia-settings-525.60.11.old/utils.mk nvidia-settings-525.60.11/utils.mk +--- nvidia-settings-525.60.11.old/utils.mk 2022-12-01 07:56:28.651046343 +0100 ++++ nvidia-settings-525.60.11/utils.mk 2022-12-01 07:56:49.883413225 +0100 +@@ -92,7 +92,7 @@ + + INSTALL ?= install + INSTALL_BIN_ARGS ?= -m 755 +-INSTALL_LIB_ARGS ?= -m 644 ++INSTALL_LIB_ARGS ?= -m 755 + INSTALL_DOC_ARGS ?= -m 644 + + M4 ?= m4 diff --git a/nvidia-settings-libXNVCtrl.patch b/nvidia-settings-libXNVCtrl.patch new file mode 100644 index 0000000..9aa44c9 --- /dev/null +++ b/nvidia-settings-libXNVCtrl.patch @@ -0,0 +1,97 @@ +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/Makefile nvidia-settings-525.60.11/src/libXNVCtrl/Makefile +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/Makefile 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/Makefile 2022-12-01 08:02:18.889098255 +0100 +@@ -49,9 +49,10 @@ + ############################################################################## + + .PHONY: all +-all: $(LIBXNVCTRL) ++all: $(LIBXNVCTRL_SHARED) + + .PHONY: clean + clean: + rm -rf $(LIBXNVCTRL) *~ \ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d ++ rm -f $(LIBXNVCTRL_SHARED) $(LIBXNVCTRL_SHARED).* +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/xnvctrl.mk nvidia-settings-525.60.11/src/libXNVCtrl/xnvctrl.mk +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/xnvctrl.mk 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/xnvctrl.mk 2022-12-01 08:02:18.934099033 +0100 +@@ -39,6 +39,8 @@ + + LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a + ++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so ++ + LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c + + LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIST,$(LIBXNVCTRL_SRC)) +@@ -47,3 +49,9 @@ + + $(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ) + $(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ) ++ ++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ) ++ $(RM) $@ $@.* ++ $(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11 ++ ln -s $(@F).0.0.0 $@.0 ++ ln -s $(@F).0 $@ +diff -Naur nvidia-settings-525.60.11.old/src/Makefile nvidia-settings-525.60.11/src/Makefile +--- nvidia-settings-525.60.11.old/src/Makefile 2022-12-01 08:02:11.280966791 +0100 ++++ nvidia-settings-525.60.11/src/Makefile 2022-12-01 08:02:59.233795388 +0100 +@@ -303,7 +303,11 @@ + all: $(NVIDIA_SETTINGS) $(GTK2LIB) $(GTK3LIB) $(WAYLANDLIB) + + .PHONY: install +-install: NVIDIA_SETTINGS_install NVIDIA_GTKLIB_install WAYLAND_LIB_install ++install: NVIDIA_SETTINGS_install NVIDIA_GTKLIB_install WAYLAND_LIB_install NVIDIA_XNVCTRL_install ++ ++NVIDIA_XNVCTRL_install: ++ $(MKDIR) $(LIBDIR) ++ cp -a $(LIBXNVCTRL_SHARED)* $(LIBDIR) + + .PHONY: NVIDIA_GTKLIB_install + NVIDIA_GTKLIB_install: $(GTK2LIB) $(GTK3LIB) +@@ -329,28 +333,28 @@ + $(INSTALL) $(INSTALL_BIN_ARGS) $< $(BINDIR)/$(notdir $<) + + $(eval $(call DEBUG_INFO_RULES, $(NVIDIA_SETTINGS))) +-$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(LIBXNVCTRL) ++$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(LIBXNVCTRL_SHARED) + $(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- -rdynamic -o $@ $(OBJS) $(LIBXNVCTRL) $(LIBS) ++ -rdynamic -o $@ $(OBJS) $(LIBXNVCTRL_SHARED) $(LIBS) + + ifdef BUILD_GTK2LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK2LIB))) +-$(GTK2LIB).unstripped: $(LIBXNVCTRL) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) ++$(GTK2LIB).unstripped: $(LIBXNVCTRL_SHARED) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ + -o $@ \ + -Wl,-soname -Wl,$(GTK2LIB_SONAME) \ + $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) ++ $(LIBXNVCTRL_SHARED) $(LIBS) $(GTK2_LIBS) + endif + + ifdef BUILD_GTK3LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK3LIB))) +-$(GTK3LIB).unstripped: $(LIBXNVCTRL) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) ++$(GTK3LIB).unstripped: $(LIBXNVCTRL_SHARED) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ + -o $@ \ + -Wl,-soname -Wl,$(GTK3LIB_SONAME) \ + $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) ++ $(LIBXNVCTRL_SHARED) $(LIBS) $(GTK3_LIBS) + endif + + ifdef BUILD_WAYLANDLIB +@@ -379,7 +383,7 @@ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d \ + $(GTK2LIB) $(GTK3LIB) $(GTK2LIB_DIR) $(GTK3LIB_DIR) \ + $(WAYLANDLIB) $(WAYLANDLIB_DIR) \ +- $(IMAGE_HEADERS) $(LIBXNVCTRL) ++ $(IMAGE_HEADERS) $(LIBXNVCTRL_SHARED) + + ifdef BUILD_GTK2LIB + $(foreach src,$(GTK_SRC), \ diff --git a/nvidia-settings-link-order.patch b/nvidia-settings-link-order.patch new file mode 100644 index 0000000..acd186d --- /dev/null +++ b/nvidia-settings-link-order.patch @@ -0,0 +1,60 @@ +diff -Naur nvidia-settings-525.60.11.old/src/Makefile nvidia-settings-525.60.11/src/Makefile +--- nvidia-settings-525.60.11.old/src/Makefile 2022-12-01 07:56:28.657046446 +0100 ++++ nvidia-settings-525.60.11/src/Makefile 2022-12-01 08:01:09.920906524 +0100 +@@ -60,7 +60,7 @@ + endif + + ifndef GTK2_LDFLAGS +- GTK2_LDFLAGS := -Wl,--no-as-needed $(shell $(PKG_CONFIG) --libs gtk+-2.0) ++ GTK2_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-2.0) + endif + else + GTK2_CFLAGS ?= +@@ -82,7 +82,7 @@ + endif + + ifndef GTK3_LDFLAGS +- GTK3_LDFLAGS := -Wl,--no-as-needed $(shell $(PKG_CONFIG) --libs gtk+-3.0) ++ GTK3_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-3.0) + endif + else + GTK3_CFLAGS ?= +@@ -337,30 +337,29 @@ + $(eval $(call DEBUG_INFO_RULES, $(GTK2LIB))) + $(GTK2LIB).unstripped: $(LIBXNVCTRL) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(GTK2LIB_SONAME) \ +- $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) ++ $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) \ ++ $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) + endif + + ifdef BUILD_GTK3LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK3LIB))) + $(GTK3LIB).unstripped: $(LIBXNVCTRL) $(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 $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(GTK3LIB_SONAME) \ +- $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) ++ $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) \ ++ $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) + endif + + ifdef BUILD_WAYLANDLIB + $(eval $(call DEBUG_INFO_RULES, $(WAYLANDLIB))) + $(WAYLANDLIB).unstripped: $(WAYLAND_OBJS) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBS) $(WAYLAND_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(WAYLANDLIB_SONAME) \ +- $(WAYLAND_OBJS) ++ $(WAYLAND_OBJS) $(LIBS) $(WAYLAND_LIBS) + + endif + diff --git a/nvidia-settings-load.desktop b/nvidia-settings-load.desktop new file mode 100644 index 0000000..ac040a8 --- /dev/null +++ b/nvidia-settings-load.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=NVIDIA X Server Settings +Comment=Configure NVIDIA X Server Settings +Exec=/usr/bin/nvidia-settings --load-config-only +Terminal=false +Icon=nvidia-settings +Categories=Settings; diff --git a/nvidia-settings.changes b/nvidia-settings.changes new file mode 100644 index 0000000..92e1ccf --- /dev/null +++ b/nvidia-settings.changes @@ -0,0 +1,35 @@ +------------------------------------------------------------------- +Thu Oct 24 13:48:08 UTC 2024 - Stefan Dirsch + +- corrected license tag (GPL-2.0-or-later -> GPL-2.0-only) + +------------------------------------------------------------------- +Thu Sep 26 17:19:14 UTC 2024 - Bruno Pitrus + +- Remove ExclusiveArch. The program may be non-functional without nvidia drivers, + but the library is needed by various packages and builds fine everywhere. + +------------------------------------------------------------------- +Thu Sep 26 11:49:21 UTC 2024 - Stefan Dirsch + +- fixed build against sle15-sp3; %ldconfig_scriptlets doesn't exist + yet + +------------------------------------------------------------------- +Thu Sep 26 11:16:59 UTC 2024 - Stefan Dirsch + +- added nvidia-libXNVCtrl.rpmlintrc to workaround SUSE's package + name policy + +------------------------------------------------------------------- +Thu Sep 26 11:10:20 UTC 2024 - Stefan Dirsch + +- added %ix86 to exclusivearchs because hwloc and others like + bitwarden, conky, element-desktop nodejs-electron need libNVCtrl + for this arch + +------------------------------------------------------------------- +Fri Sep 20 12:01:07 UTC 2024 - Stefan Dirsch + +- created package + --> https://github.com/openSUSE/nvidia-driver-G06/issues/16 diff --git a/nvidia-settings.spec b/nvidia-settings.spec new file mode 100644 index 0000000..37df828 --- /dev/null +++ b/nvidia-settings.spec @@ -0,0 +1,156 @@ +# +# spec file for package nvidia-settings +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: nvidia-settings +Version: 560.35.03 +Release: 0 +Summary: Configure the NVIDIA graphics driver +License: GPL-2.0-only +URL: http://www.nvidia.com/object/unix.html + +Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 +Source1: %{name}-load.desktop +Source2: nvidia-libXNVCtrl.rpmlintrc +Patch0: %{name}-desktop.patch +Patch1: %{name}-lib-permissions.patch +Patch2: %{name}-link-order.patch +Patch3: %{name}-libXNVCtrl.patch +Patch4: %{name}-ld-dep-remove.patch + +BuildRequires: Mesa-libEGL-devel +BuildRequires: Mesa-libGL-devel +BuildRequires: dbus-1-devel +BuildRequires: desktop-file-utils +BuildRequires: gcc +BuildRequires: libXext-devel +BuildRequires: libXrandr-devel +BuildRequires: libXv-devel +BuildRequires: libXxf86vm-devel +BuildRequires: libjansson-devel +BuildRequires: libvdpau-devel >= 1.0 +BuildRequires: m4 +BuildRequires: vulkan-headers +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(wayland-client) + +Requires: nvidia-libXNVCtrl = %{version} +# Loaded at runtime +Requires: libvdpau1 >= 0.9 + +%description +The %{name} utility is a tool for configuring the NVIDIA graphics +driver. It operates by communicating with the NVIDIA X driver, querying and +updating state as appropriate. + +This communication is done with the NV-CONTROL X extension. + +%package -n nvidia-libXNVCtrl +Summary: Library providing the NV-CONTROL API +Obsoletes: libXNVCtrl0 < %{version} +Provides: libXNVCtrl0 = %{version} + +%description -n nvidia-libXNVCtrl +This library provides the NV-CONTROL API for communicating with the proprietary +NVidia xorg driver. It is required for proper operation of the %{name} utility. + +%package -n nvidia-libXNVCtrl-devel +Summary: Development files for libXNVCtrl +Requires: libX11-devel +Requires: nvidia-libXNVCtrl = %{version} +Obsoletes: libXNVCtrl-devel < %{version} +Provides: libXNVCtrl-devel = %{version} + +%description -n nvidia-libXNVCtrl-devel +This devel package contains libraries and header files for +developing applications that use the NV-CONTROL API. + +%prep +%autosetup -p1 + +# Remove bundled jansson +rm -fr src/jansson + +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk src/libXNVCtrl/utils.mk + +# Change all occurrences of destinations in each utils.mk. +sed -i -e 's|$(PREFIX)/lib|$(PREFIX)/%{_lib}|g' utils.mk src/libXNVCtrl/utils.mk + +%build +export CFLAGS="%{optflags} -fPIC" +export LDFLAGS="%{?__global_ldflags}" +%make_build \ + DEBUG=1 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + XNVCTRL_LDFLAGS="-L%{_libdir}" + +%install +# Install libXNVCtrl headers +mkdir -p %{buildroot}%{_includedir}/NVCtrl +cp -af src/libXNVCtrl/*.h %{buildroot}%{_includedir}/NVCtrl/ + +# Install main program +%make_install \ + DEBUG=1 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} + +# Install desktop file +mkdir -p %{buildroot}%{_datadir}/{applications,pixmaps} +desktop-file-install --dir %{buildroot}%{_datadir}/applications/ doc/%{name}.desktop +cp doc/%{name}.png %{buildroot}%{_datadir}/pixmaps/ + +# Install autostart file to load settings at login +install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/autostart/%{name}-load.desktop + +%check +desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop +desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/%{name}-load.desktop + +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400 +%ldconfig_scriptlets +%ldconfig_scriptlets -n nvidia-libXNVCtrl +%else +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig +%post -n nvidia-libXNVCtrl -p /sbin/ldconfig +%postun -n nvidia-libXNVCtrl -p /sbin/ldconfig +%endif + +%files +%{_bindir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/pixmaps/%{name}.png +%{_libdir}/libnvidia-gtk3.so.%{version} +%{_libdir}/libnvidia-wayland-client.so.%{version} +%{_mandir}/man1/%{name}.* +%config %{_sysconfdir}/xdg/autostart/%{name}-load.desktop + +%files -n nvidia-libXNVCtrl +%license COPYING +%{_libdir}/libXNVCtrl.so.* + +%files -n nvidia-libXNVCtrl-devel +%doc doc/NV-CONTROL-API.txt doc/FRAMELOCK.txt +%{_includedir}/NVCtrl +%{_libdir}/libXNVCtrl.so + +%changelog