diff --git a/.gitignore b/.gitignore index e69de29..64afad5 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +nvidia-settings-*.tar* diff --git a/libXNVCtrl.spec b/libXNVCtrl.spec new file mode 100644 index 0000000..f96ab6f --- /dev/null +++ b/libXNVCtrl.spec @@ -0,0 +1,189 @@ +Name: libXNVCtrl +Version: 435.17 +Release: 4%{?dist} +Summary: Library providing the NV-CONTROL API +License: GPLv2+ +URL: https://download.nvidia.com/XFree86/nvidia-settings/ +Source0: %{url}/nvidia-settings-%{version}.tar.bz2 +Patch0: libxnvctrl_so_0.patch + +BuildRequires: gcc +BuildRequires: make +BuildRequires: libX11-devel +BuildRequires: libXext-devel +BuildRequires: hostname + +# Obsoletes older package provided in the NVIDIA CUDA repository +Obsoletes: nvidia-%{name} < 3:%{version}-100 +Provides: nvidia-%{name} = 3:%{version}-100 + +%description +This packages contains the libXNVCtrl library from the nvidia-settings +application. This library provides the NV-CONTROL API for communicating with +the proprietary NVidia xorg driver. This package does not contain the +nvidia-settings tool itself as that is included with the proprietary drivers +themselves. + + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: libX11-devel%{?_isa} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%autosetup -p1 -n nvidia-settings-%{version} + + +%build +%{set_build_flags} +%make_build \ + CC="%{__cc}" \ + NV_VERBOSE=1 \ + DO_STRIP=0 \ + STRIP_CMD=/dev/true \ + -C src/%{name} \ + libXNVCtrl.so + + +%install +pushd src/%{name} +install -m 0755 -d $RPM_BUILD_ROOT%{_libdir}/ +install -p -m 0755 libXNVCtrl.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/ +ln -s libXNVCtrl.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/libXNVCtrl.so.0 +ln -s libXNVCtrl.so.0 $RPM_BUILD_ROOT%{_libdir}/libXNVCtrl.so +install -m 0755 -d $RPM_BUILD_ROOT%{_includedir}/NVCtrl/ +install -p -m 0644 {nv_control,NVCtrl,NVCtrlLib}.h $RPM_BUILD_ROOT%{_includedir}/NVCtrl/ +popd + + +%ldconfig_post + +%ldconfig_postun + + +%files +%license COPYING +%{_libdir}/%{name}.so.0* + +%files devel +%doc doc/NV-CONTROL-API.txt doc/FRAMELOCK.txt +%{_includedir}/NVCtrl +%{_libdir}/%{name}.so + + +%changelog +* Tue Jul 28 2020 Fedora Release Engineering - 435.17-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 435.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 17 2020 Tom Stellard - 435.17-2 +- Replace hard-coded gcc with __cc macro + +* Mon Aug 26 2019 Nicolas Chauvet - 435.17-1 +- Update to 435.17 +- Obsoletes older nvidia-libXNVCtrl from cuda repo +- Switch URL to https + +* Thu Jul 25 2019 Fedora Release Engineering - 352.21-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 352.21-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 352.21-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Adam Jackson - 352.21-9 +- Use ldconfig scriptlet macros + +* Sat Feb 24 2018 Florian Weimer - 352.21-8 +- Use LDFLAGS from redhat-rpm-config +- Add "BuildRequires: gcc" +- Remove "Group:" + +* Wed Feb 07 2018 Fedora Release Engineering - 352.21-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 352.21-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 352.21-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 352.21-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 352.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jul 09 2015 Leigh Scott - 352.21-2 +- fix build flags + +* Thu Jul 09 2015 Wolfgang Ulbrich - 352.21-1 +- update to latest 352.21 release + +* Wed Jun 17 2015 Fedora Release Engineering - 169.12-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 169.12-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 169.12-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 169.12-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 169.12-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 169.12-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 169.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 169.12-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jul 24 2009 Fedora Release Engineering - 169.12-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 169.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Oct 08 2008 Dennis Gilmore 169.12-2 +- make sure libdir is set right on sparc64 + +* Wed Mar 5 2008 Hans de Goede 169.12-1 +- Update to new upstream 169.12 release (talking about version inflation) + +* Tue Feb 19 2008 Hans de Goede 1.0-7 +- Rebase to latest upstream, which is still called 1.0 (GRRRR) + +* Tue Feb 19 2008 Fedora Release Engineering - 1.0-6 +- Autorebuild for GCC 4.3 + +* Mon Aug 13 2007 Hans de Goede 1.0-5 +- Update License tag for new Licensing Guidelines compliance + +* Fri Jul 27 2007 Hans de Goede 1.0-4 +- Add missing libXext-devel BuildRequires + +* Fri Jul 27 2007 Hans de Goede 1.0-3 +- Link the lib against libX11 and libXext to avoid undefined non weak symbols + (through updated libXNVCtrl-imake.patch) + +* Sun Jul 22 2007 Hans de Goede 1.0-2 +- Honor optflags +- Preserve timestamps of headers when installing them + +* Sun Jul 15 2007 Hans de Goede 1.0-1 +- Initial Fedora Extras version diff --git a/libxnvctrl_optflags.patch b/libxnvctrl_optflags.patch new file mode 100644 index 0000000..61c6ae2 --- /dev/null +++ b/libxnvctrl_optflags.patch @@ -0,0 +1,22 @@ +--- a/src/libXNVCtrl/Makefile.orig 2015-01-16 15:29:38.678963363 +0100 ++++ b/src/libXNVCtrl/Makefile 2015-01-16 15:32:50.571028309 +0100 +@@ -38,7 +38,7 @@ + LIBXNVCTRL_VERSION := $(NVIDIA_VERSION) + + CFLAGS += -I . +-CFLAGS += -fPIC ++CFLAGS += -fPIC $(OPTFLAGS) + CFLAGS += -I $(OUTPUTDIR) + CFLAGS += -DPROGRAM_NAME=\"$(LIBXNVCTRL_PROGRAM_NAME)\" + +--- a/src/libXNVCtrl/utils.mk.orig 2015-01-16 15:29:43.918964321 +0100 ++++ b/src/libXNVCtrl/utils.mk 2015-01-16 15:32:23.298020384 +0100 +@@ -31,7 +31,7 @@ + # only set these warnings and optimizations if CFLAGS is unset + CFLAGS ?= -Wall -O2 + # always set these -f CFLAGS +-CFLAGS += -fno-strict-aliasing -fno-omit-frame-pointer -Wformat=2 ++CFLAGS += $(OPTFLAGS) + CC_ONLY_CFLAGS ?= + LDFLAGS ?= + BIN_LDFLAGS ?= diff --git a/libxnvctrl_so_0.patch b/libxnvctrl_so_0.patch new file mode 100644 index 0000000..279ae92 --- /dev/null +++ b/libxnvctrl_so_0.patch @@ -0,0 +1,39 @@ +diff -up nvidia-settings-435.17/src/libXNVCtrl/Makefile.shared nvidia-settings-435.17/src/libXNVCtrl/Makefile +--- nvidia-settings-435.17/src/libXNVCtrl/Makefile.shared 2019-08-07 06:12:32.000000000 +0200 ++++ nvidia-settings-435.17/src/libXNVCtrl/Makefile 2019-08-26 16:23:41.921778088 +0200 +@@ -50,8 +50,9 @@ LDFLAGS += $(XNVCTRL_LDFLAGS) + + .PHONY: clean + +-all: $(LIBXNVCTRL) ++all: $(LIBXNVCTRL) libXNVCtrl.so + + clean: + rm -rf $(LIBXNVCTRL) *~ \ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d ++ rm -f libXNVCtrl.so libXNVCtrl.so.* +diff -up nvidia-settings-435.17/src/Makefile.shared nvidia-settings-435.17/src/Makefile +--- nvidia-settings-435.17/src/Makefile.shared 2019-08-07 06:12:31.000000000 +0200 ++++ nvidia-settings-435.17/src/Makefile 2019-08-26 16:17:31.133406921 +0200 +@@ -106,6 +106,9 @@ endif + XNVCTRL_DIR ?= libXNVCtrl + XCONFIG_PARSER_DIR ?= XF86Config-parser + COMMON_UTILS_DIR ?= common-utils ++XNVCTRL_SHARED ?= $(XNVCTRL_DIR)/libXNVCtrl.so.0 ++#XNVCTRL_LIB ?= $(XNVCTRL_ARCHIVE) ++XNVCTRL_LIB ?= $(XNVCTRL_SHARED) + COMMON_UNIX_DIR ?= common-unix + VIRTUAL_RESOLUTIONS_DIR ?= $(COMMON_UNIX_DIR)/virtual-resolutions + +diff -up nvidia-settings-435.17/src/libXNVCtrl/xnvctrl.mk.shared nvidia-settings-435.17/src/libXNVCtrl/xnvctrl.mk +--- nvidia-settings-435.17/src/libXNVCtrl/xnvctrl.mk.shared 2019-08-07 06:12:32.000000000 +0200 ++++ nvidia-settings-435.17/src/libXNVCtrl/xnvctrl.mk 2019-08-26 16:54:44.518016474 +0200 +@@ -47,3 +47,8 @@ $(eval $(call DEFINE_OBJECT_RULE,TARGET, + + $(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ) + $(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ) ++ ++libXNVCtrl.so: $(LIBXNVCTRL_OBJ) ++ $(CC) -shared -Wl,-soname=$@.0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11 ++ ln -s $@.0.0.0 $@.0 ++ ln -s $@.0 $@ diff --git a/sources b/sources new file mode 100644 index 0000000..97caa21 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (nvidia-settings-435.17.tar.bz2) = 30e683f0ad0b663946cdc5bd8aa9eb4e52774f378e1499536b0f7e37c32960ba2a6901cd4dec3eb0ffd874cf0225c5e95f4d69e78ca99d44a93a2de054251344