Sync from SUSE:SLFO:Main nvidia-settings revision b613a4a45cd21e24cd0ea8e511151a8a

This commit is contained in:
Adrian Schröter 2024-10-29 09:36:30 +01:00
commit 6f8e828c3d
11 changed files with 438 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

View File

@ -0,0 +1,2 @@
addFilter("nvidia-libXNVCtrl.*shlib-policy-name-error")

BIN
nvidia-settings-560.35.03.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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

View File

@ -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 \

View File

@ -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

View File

@ -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), \

View File

@ -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

View File

@ -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;

35
nvidia-settings.changes Normal file
View File

@ -0,0 +1,35 @@
-------------------------------------------------------------------
Thu Oct 24 13:48:08 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- corrected license tag (GPL-2.0-or-later -> GPL-2.0-only)
-------------------------------------------------------------------
Thu Sep 26 17:19:14 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
- 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 <sndirsch@suse.com>
- fixed build against sle15-sp3; %ldconfig_scriptlets doesn't exist
yet
-------------------------------------------------------------------
Thu Sep 26 11:16:59 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- added nvidia-libXNVCtrl.rpmlintrc to workaround SUSE's package
name policy
-------------------------------------------------------------------
Thu Sep 26 11:10:20 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- 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 <sndirsch@suse.com>
- created package
--> https://github.com/openSUSE/nvidia-driver-G06/issues/16

156
nvidia-settings.spec Normal file
View File

@ -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