--- nvidia-settings-346.35.orig/debian/changelog +++ nvidia-settings-346.35/debian/changelog @@ -0,0 +1,678 @@ +nvidia-settings (346.35-0ubuntu1) vivid; urgency=low + + * New upstream release: + - Updated nvidia-settings to take advantage of GTK+ 3, when + available. This is implemented by building the nvidia-settings + user interface into separate shared libraries (libnvidia- + gtk2.so, libnvidia-gtk3.so), and loading the correct one at + run-time. + - Added the nvidia-settings option --gtk-library to allow + specifying the path of the directory containing the user + interface library or the path and filename of the specific + library to use. + - Added support in nvidia-settings for a GTK+ 3 user interface on + x86 and x86_64. + - Added the nvidia-settings option --use-gtk2 to force the use of + the GTK+ 2 UI library. + * debian/control: + - Fix up build dependencies. + * debian/patches/10_legacy_vdpau.patch: + - Make it possible to build with VDPAU releases older than 0.9. + * debian/patches/04_nvidia-settings_natty_ftbs.patch: + - Drop the patch. + * debian/patches/07_remove_features_for_legacy.patch, + debian/patches/09_do_not_complain_if_nvidia_is_missing.patch: + - Refresh the patches. + + -- Alberto Milone Fri, 16 Jan 2015 18:21:44 +0100 + +nvidia-settings (331.20-0ubuntu8) trusty; urgency=low + + * debian/patches/05_add_polkit_support.patch, + debian/patches/08_add_prime_support.patch: + - Use python 3 instead of python 2. + + -- Alberto Milone Mon, 03 Feb 2014 16:00:12 +0100 + +nvidia-settings (331.20-0ubuntu7) trusty; urgency=low + + * Revert previous upload. + * debian/patches/08_add_prime_support.patch: + - Add a missing prototype for ctk_prime_create_help(), and + include ctkutils.h in ctkprime.c. + + -- Alberto Milone Mon, 13 Jan 2014 15:33:19 +0100 + +nvidia-settings (331.20-0ubuntu6) trusty; urgency=low + + * d/patches/08_...: Add missing preprocessor directives, resolving + FTBFS on 64-bit. + + -- Daniel T Chen Mon, 09 Dec 2013 11:16:16 -0500 + +nvidia-settings (331.20-0ubuntu5) trusty; urgency=low + + * debian/patches/series: + - Reorder patches + * debian/patches/08_add_prime_support.patch: + - Add support for PRIME switching. An additional + tab provides support for switching between GPUs. + This is only visible if nvidia-prime (>= 0.5) is + installed and reports that the system supports + hybrid graphics. No hard dependency on nvidia-prime + is therefore required. + * debian/patches/09_do_not_complain_if_nvidia_is_missing.patch: + - Disable the warning dialog since it suggests to run + nvidia-xconfig, which we don't need. This would also break + PRIME. + + -- Alberto Milone Wed, 27 Nov 2013 12:23:23 +0100 + +nvidia-settings (331.20-0ubuntu4) trusty; urgency=low + + * debian/preinst: + - Clean up any nvidia_settings_conf alternatives. + + -- Alberto Milone Fri, 22 Nov 2013 15:08:21 +0100 + +nvidia-settings (331.20-0ubuntu3) trusty; urgency=low + + * debian/dirs, debian/install, + debian/nvidia-settings-autostart.desktop, + debian/nvidia-settings.desktop: + - Install the icon and the desktop files. + * debian/rules: + - Do not compress .c and .mk files. + * debian/control.in, debian/postinst.in, debian/postrm.in, + debian/prerm.in, debian/rules: + - Drop alternatives, as we only have one nvidia-settings + for all the driver flavours. + + -- Alberto Milone Fri, 22 Nov 2013 09:35:14 +0100 + +nvidia-settings (331.20-0ubuntu2) trusty; urgency=low + + * debian/patches/07_remove_features_for_legacy.patch: + - Do not expose features that are not available in the legacy + drivers. + + -- Alberto Milone Wed, 20 Nov 2013 16:46:02 +0100 + +nvidia-settings (331.20-0ubuntu1) trusty; urgency=low + + * Unify the different flavours under this one. + * debian/control.in: + - Add ${misc:Depends}. + - Build depend on libvdpau-dev and depend on libvdpau1. + - Create transitional packages for 319, 319-updates, 313-updates, + 310, 310-updates, 304, 304-updates, experimental-304, updates. + - Remove lpia. + - Drop dependency on python-gtk2. + - Conflict/replace/provide nvidia-settings-binary. + * debian/patches/series: + - Do not apply 01_allow_dark_themes.dpatch. + * debian/rules: + - Pass the destdir argument in uppercase to match the variable. + - Add download-sources target. + - Clean action in rules to target "clean" instead of "distclean". + + -- Alberto Milone Tue, 19 Nov 2013 12:38:42 +0100 + +nvidia-settings (304.88-0ubuntu0.1) quantal-security; urgency=low + + * SECURITY UPDATE: ARGB Cursor Buffer Overflow in "NoScanout" Mode + - CVE-2013-0131 + + [ Alberto Milone ] + * New upstream release: + - Match the ABI in the 304.88 release. + + -- Alberto Milone Fri, 05 Apr 2013 17:09:45 +0200 + +nvidia-settings (304.51-0ubuntu2) quantal; urgency=low + + * debian/control.in: + - Conflict with/replace/provide other flavours + (LP: #1061659). + + -- Alberto Milone Fri, 12 Oct 2012 12:56:09 +0200 + +nvidia-settings (304.51-0ubuntu1) quantal; urgency=low + + * New upstream release: + - Fixed a bug that sometimes caused the display layout area + of the nvidia-settings control panel to be laid out + incorrectly. + + -- Alberto Milone Thu, 04 Oct 2012 12:58:33 +0200 + +nvidia-settings (304.43-0ubuntu2) quantal; urgency=low + + * debian/patches/06_remove_local_prefix.patch: + - Fix FTBFS (LP: #1037483). + + -- Alberto Milone Tue, 11 Sep 2012 12:20:07 +0200 + +nvidia-settings (304.43-0ubuntu1) quantal; urgency=low + + * New upstream release (LP: #1037483): + - Updated nvidia-settings to use RandR per-CRTC gamma + control, when available. When controlling an X + server with support for RandR 1.2, nvidia-settings + will display the color correction widget as a tab + within each display device page, instead of a + per-X screen color correction page. + - Added the ability to select and move X screens in + the "X Server Display Configuration" page of + nvidia-settings via Ctrl-(Left)Click + Drag. + - Fixed a bug that prevented the display palette + from being updated immediately after an application + called XStoreColors. + - Fixed a bug that caused gnome-settings-daemon to + revert display configuration changes made by + nvidia-settings. + + -- Alberto Milone Tue, 28 Aug 2012 14:01:47 +0200 + +nvidia-settings (302.17-0ubuntu3) quantal; urgency=low + + * debian/control: Fixed a typo in the package description: changed 'of' to 'for' + (LP: #306178) + + -- Donald Siuchninski Sun, 29 Jul 2012 22:19:32 -0500 + +nvidia-settings (302.17-0ubuntu2) quantal; urgency=low + + * Rename build to build-arch and make build depend on build-arch. + + -- Adam Conrad Mon, 02 Jul 2012 17:18:24 -0600 + +nvidia-settings (302.17-0ubuntu1) quantal; urgency=low + + * New upstream release. + * Refresh 04_nvidia-settings_natty_ftbs.patch. + * Drop 02_nvidia-settings-format-string.patch which + is now upstream. + * debian/rules: + - Make sure to install the new sources correctly. + + -- Alberto Milone Mon, 25 Jun 2012 16:31:12 +0200 + +nvidia-settings (295.33-0ubuntu1) precise; urgency=low + + * New upstream release. + + -- Alberto Milone Fri, 30 Mar 2012 14:23:10 +0200 + +nvidia-settings (295.20-0ubuntu1) precise; urgency=low + + * New upstream release. + + -- Alberto Milone Sat, 18 Feb 2012 10:21:04 +0100 + +nvidia-settings (285.05.09-0ubuntu1) precise; urgency=low + + * New upstream release. + + -- Alberto Milone Mon, 14 Nov 2011 17:05:48 +0100 + +nvidia-settings (280.13-0ubuntu4) precise; urgency=low + + * Ubuntu has a control.in so last change didn't work. + + -- Stéphane Graber Mon, 17 Oct 2011 14:05:13 -0400 + +nvidia-settings (280.13-0ubuntu3) precise; urgency=low + + * Add python-gtk2 and pkg-config dependencies (LP: #721453) + + -- Mackenzie Morgan Mon, 17 Oct 2011 13:18:23 -0400 + +nvidia-settings (280.13-0ubuntu2) oneiric; urgency=low + + * Make sure that dh_auto_install calls make with the right arguments. + + -- Alberto Milone Fri, 05 Aug 2011 14:19:18 +0200 + +nvidia-settings (280.13-0ubuntu1) oneiric; urgency=low + + * New upstream release. + * Correct copyright assignment in debian/rules. + * Make it possible to generate files from templates. + * Install an alternative, so that users can switch between different + flavours. + * Switch to debhelper 7 and quilt. + + -- Alberto Milone Thu, 04 Aug 2011 17:43:17 +0200 + +nvidia-settings (275.09.07-0ubuntu1) oneiric; urgency=low + + * New upstream release: + - Fixed a bug that caused nvidia-settings to crash while saving the + X configuration file on some Linux distributions. + + -- Alberto Milone Wed, 15 Jun 2011 16:52:24 +0200 + +nvidia-settings (270.41.19-0ubuntu1) oneiric; urgency=low + + * New upstream release. + + -- Alberto Milone Tue, 14 Jun 2011 19:20:08 +0200 + +nvidia-settings (270.29-0ubuntu1) natty; urgency=low + + * New upstream release. + + -- Alberto Milone Fri, 25 Feb 2011 15:18:56 +0100 + +nvidia-settings (260.19.21-0ubuntu3) natty; urgency=low + + * Drop patch debian/patches/06_layout_drop_down.patch: Causes regression + when used with unity. + (Closes LP: #692677, reopens #604525) + + -- Bryce Harrington Mon, 03 Jan 2011 13:08:19 -0800 + +nvidia-settings (260.19.21-0ubuntu2) natty; urgency=low + + * Add debian/patches/06_layout_drop_down.patch: screen layout dialog box + replaced by a drop-down list, thanks to Bert Van Vreckem (LP: #604525). + + -- Kees Cook Mon, 06 Dec 2010 14:47:44 -0800 + +nvidia-settings (260.19.21-0ubuntu1) natty; urgency=low + + * New upstream release. + * Add debian/patches/04_nvidia-settings_natty_ftbs.patch. + Thanks to Robert Hooker for the patch. + + -- Alberto Milone Sun, 21 Nov 2010 13:02:24 +0100 + +nvidia-settings (260.19.06-0ubuntu1) maverick; urgency=low + + * New upstream release: + - Update to the new release so that it matches the latest release + of nvidia-current. + + -- Alberto Milone Wed, 29 Sep 2010 11:46:29 +0200 + +nvidia-settings (256.53-0ubuntu1) maverick; urgency=low + + * New upstream release: + - Update to the new release so that it matches the latest release + of nvidia-current. + * debian/control: + - Bump Standards-Version. + - Add Vcs-Git and Vcs-Browser. + + -- Alberto Milone Tue, 07 Sep 2010 12:19:37 +0200 + +nvidia-settings (256.35-0ubuntu1) maverick; urgency=low + + * New upstream release: + - Fixed a bug that caused nvidia-settings to crash when rendering + its thermal gauge widget if the range of valid values for the + thermal sensor was empty. + - Improved Thermal Settings reporting in nvidia-settings to + accurately reflect hardware configurations with multiple thermal + sensors. + * debian/docs: + - Remove Makefile.inc. + + -- Alberto Milone Sun, 27 Jun 2010 18:59:46 +0200 + +nvidia-settings (195.36.08-0ubuntu2) lucid; urgency=low + + * debian/patches/03_do_not_exit_on_no_scanout.patch: + - Do not fail if the driver doesn't support the NV_CTRL_NO_SCANOUT + property (LP: #539196). + + -- Alberto Milone Tue, 06 Apr 2010 19:50:01 +0200 + +nvidia-settings (195.36.08-0ubuntu1) lucid; urgency=low + + * New upstream release: + - Fixed an X server crash caused by starting nvidia-settings while + X was not on the active VT. + - Fixed an nvidia-settings bug that produced many "Bad argument" + warning messages when running nvidia-settings --query all. + * Drop patches 03_xf86vidmode-rampsize-check.patch and + 04_include_xf86vmproto.patch as the problem is fixed + in the upstream code now. + + + -- Alberto Milone Fri, 05 Mar 2010 11:19:05 +0100 + +nvidia-settings (190.53-0ubuntu1) lucid; urgency=low + + * New upstream release (LP: #417410). + * debian/control: + - Add build dependency on cdbs. + - Remove build dependency on dpatch. + - Add lpia architecture. + - Depend on screen-resolution-extra >= 0.12. + * debian/patches/02_nvidia-settings-format-string.patch: + - Patch from Mandriva to pass formatted strings to gtk dialogs (thus + reducing gtk warnings). + * debian/patches/03_xf86vidmode-rampsize-check.patch: + - Fix FTBFS with recent versions of XF86VidMode. + * debian/patches/04_include_xf86vmproto.patch: + - Include xf86vmproto.h so as to get back XF86VidModeGetGammaRampSize(). + * debian/patches/05_polkit.patch: + - Add support for PolicyKit so that nvidia-settings doesn't require + that users call it with sudo to edit xorg.conf (LP: #200868) + (requires screen-resolution-extra >= 0.12). + * debian/rules: + - Switch to CDBS. + - Do not provide a desktop file. The different nvidia packages will + deal with it. + + -- Alberto Milone Sun, 10 Jan 2010 12:12:42 +0100 + +nvidia-settings (180.25-0ubuntu1) jaunty; urgency=low + + * New upstream release (LP: #315667) + * debian/patches/02_add_missing_serverlayout.dpatch: drop patch + + -- Alberto Milone (tseliot) Sat, 31 Jan 2009 17:21:51 +0100 + +nvidia-settings (177.78-0ubuntu2.1) intrepid-proposed; urgency=low + + * debian/rules: Add missing dpatch unpatching on clean. + * Add debian/patches/02_add_missing_serverlayout.dpatch: + - Prevent nvidia-settings from crashing when no ServerLayout section is + found in the xorg.conf (LP: #286424). + + -- Alberto Milone (tseliot) Sat, 01 Nov 2008 13:12:40 +0100 + +nvidia-settings (177.78-0ubuntu2) intrepid; urgency=low + + * Restore ROOT=$(DESTDIR) in the Makefile + + -- Alberto Milone (tseliot) Mon, 13 Oct 2008 15:16:15 +0200 + +nvidia-settings (177.78-0ubuntu1) intrepid; urgency=low + + * New upstream release + - Do not add RgbPath to the Files section of xorg.conf + (LP: #274866) + * debian/copyright: + - Restore detailed version of the license (cf. debian #494388) + + -- Alberto Milone (tseliot) Wed, 08 Oct 2008 18:24:16 +0200 + +nvidia-settings (173.14.09-1ubuntu3) intrepid; urgency=low + + [ Alberto Milone (tseliot) ] + * Comment out gtk_widget_modify_fg and gtk_widget_modify_bg in + src/gtk+-2.x/ctkglx.c + + [ Mario Limonciello ] + * Add dpatch patching support so that Alberto's previous patch is + not lost in newer upstream versions. + + -- Alberto Milone (tseliot) Thu, 28 Aug 2008 22:56:28 +0200 + +nvidia-settings (173.14.09-1ubuntu2) intrepid; urgency=low + + * debian/rules: force -fPIC in CFLAGS for xnvctrl library. + + -- Stefan Potyra Sun, 10 Aug 2008 12:52:07 +0200 + +nvidia-settings (173.14.09-1ubuntu1) intrepid; urgency=low + + * Merge from unstable, remaining changes: + - debian/copyright: updated, add MIT license (cf. debian #494388). + - debian/rules, debian/nvidia-settings.desktop: install desktop file + (cf. debian #317993). Also add usr/share/applications to dirs. + - drop Recommends on nvidia-glx, instead the nvidia drivers will + recommend nvidia-settings. + - update build depends of xutils and xlibmesa-gl-dev. + - update debian/rules to clean also XF86Config-parser directory + (cf. debian: #494456). + Dropped: + - patch against src/gtk+-2.x/ctkwindow.c: solved upstream. + - separate package libxnvctrl-dev (caused a major diversion, not so + much nicer to keep it). + - updating standards-version + - debhelper bump (it should build fine with v4). + * debian/control: + - add Conflicts against libxnvctrl-dev, which is dropped with this + upload and used to contain the static library/header files that + are now found in nvidia-settings itself. + + -- Stefan Potyra Sat, 09 Aug 2008 22:33:28 +0200 + +nvidia-settings (173.14.09-1) unstable; urgency=low + + * New upstream release + + -- Randall Donald Tue, 24 Jun 2008 10:41:09 -0700 + +nvidia-settings (169.07-1) unstable; urgency=low + + * New upstream release + * reinclude nvctrl headers (closes: #434885) + * depend on nvidia-glx (169.07). there are legacy versions now too. + + -- Randall Donald Sun, 23 Dec 2007 17:07:10 -0800 + +nvidia-settings (1.0+20080304-0ubuntu3) intrepid; urgency=low + + [ Alberto Milone (tseliot) ] + * Remove Recommends and Conflicts from nvidia-settings. Each NVIDIA driver + will Recommend nvidia-settings instead. + + [ Mario Limonciello ] + * debian/control: + - Modify build depends from obsoleted packages xutils and xlibmesa-gl-dev + - Bump standards version. + + -- Mario Limonciello Tue, 08 Jul 2008 13:13:05 -0500 + +nvidia-settings (1.0+20080304-0ubuntu2) intrepid; urgency=low + + * src/gtk+-2.x/ctkwindow.c: + - Set selection to default to first item when opening (LP: #198503) + + -- Mario Limonciello Wed, 04 Jun 2008 22:21:40 -0500 + +nvidia-settings (1.0+20080304-0ubuntu1) hardy; urgency=low + + * New upstream version. (LP: #198484) + - Fixes errors writing out xorg.conf + (LP: #194528,195241,195302,197568,198215) + + -- Mario Limonciello Tue, 04 Mar 2008 13:50:58 -0600 + +nvidia-settings (1.0+20071221-0ubuntu5) hardy; urgency=low + + * Add versioned nvidia-glx-legacy to Recommends and Conflicts + + -- Emmet Hikory Sat, 16 Feb 2008 10:38:08 +0900 + +nvidia-settings (1.0+20071221-0ubuntu4) hardy; urgency=low + + * debian/control: add versioned conflicts to older nvidia-glx and + nvidia-glx-new for the binary package nvidia-settings. The older + conflicted versions shipped the nvidia-settings application as + well. + * Add nvidia-glx-new as alternate recommends in debian/control. + * debian/control: (re)add versions to the recommends. + * debian/rules: don't create usr/lib for nvidia-settings (seems like + I initially added that wrongly when dropping nvidia-settings + binary package). + + -- Stefan Potyra Fri, 15 Feb 2008 22:30:12 +0100 + +nvidia-settings (1.0+20071221-0ubuntu3) hardy; urgency=low + + * Drop version from nvidia-glx recommends for virtual package support + + -- Emmet Hikory Sat, 16 Feb 2008 04:36:10 +0900 + +nvidia-settings (1.0+20071221-0ubuntu2) hardy; urgency=low + + * Enable nvidia-settings binary package again, since the binary + was dropped from nvidia-glx* in favor of this opensource version. + * Add nvidia-settings.desktop, set the category to System;Settings;. + * rules: clean src/XF86Config-parser. + * control: libxnvctrl-dev section libdevel -> contrib/libdevel. + + -- Timo Aaltonen Wed, 13 Feb 2008 16:52:16 +0200 + +nvidia-settings (1.0+20071221-0ubuntu1) hardy; urgency=low + + * New upstream version (aka 169.07). + * debian/control: Mangle maintainer/XSBC-Original-Maintainer according to + spec. + * debian/control: add libxnvctrl-dev package, which contains the headers + and the static library. + * move current debian/* to package specific places: + - debian/dirs -> removed (cannot handle non-existant package with + debhelper) + - debian/menu -> debian/nvidia-settings.menu + - debian/docs -> debian/nvidia-settings.doc, debian/libxnvctrl-dev.docs, + splitting off the relevant files. + * debian/rules: install libXNVCtrl.a to libxnvctrl-dev package. + * debian/rules: install the headers NVCtrl.h and NVCtrlLib.h to + the libxnvctrl-dev package (cf. LP bug #59945). + Also create necessary directories. + * bump debhelper recommends to version 5: + - debian/compat updated + - debian/control: tighten debhelper build-depends version. + * debian/README.ubuntu: new file, explaining the ubuntu changes. + * debian/examples -> debian/libxnvctrl.examples, because the examples + only apply to libXNVCtrl.a. + * debian/control: comment out nvidia-settings package: + The nvidia-settings binary is provided by linux-restricted-modules, + so there's no need to ship it from this package. + * debian/rules: force remove the directories from nvidia-settings in + clean rule. + * debian/copyright: updated, adjusted to list all other licensed files + as well. + + -- Stefan Potyra Fri, 08 Feb 2008 23:38:35 +0100 + +nvidia-settings (1.0+20070502-1) unstable; urgency=low + + * New upstream release. + + -- Randall Donald Sat, 12 May 2007 14:34:59 -0700 + +nvidia-settings (1.0+20060919-1) unstable; urgency=low + + * New upstream release (20060919) + * include /usr/lib/libXNVCtrl.a (closes: #375191) + + -- Randall Donald Sat, 7 Oct 2006 14:31:44 -0700 + +nvidia-settings (1.0+20060516-1) unstable; urgency=low + + * add build depend on m4. (closes: #369661) + * New upstream (nvidia-settings-1.0.tar.gz 05/16/06 ) + + -- Randall Donald Fri, 2 Jun 2006 23:21:01 -0700 + +nvidia-settings (1.0+20060404-1) unstable; urgency=low + + * New upstream (nvidia-settings-1.0.tar.gz 04/04/06) + * fix for xorg7 (closes: #366243) + + -- Randall Donald Wed, 17 May 2006 19:21:28 -0700 + +nvidia-settings (1.0+20051122-1) unstable; urgency=low + + * New upstream. (nvidia-settings-1.0-11-22-05.tar.gz) + + -- Randall Donald Wed, 28 Dec 2005 14:10:15 -0800 + +nvidia-settings (1.0+20050729-1) unstable; urgency=low + + * New upstream. + * update standards version: 3.6.2 + * correct fsf address + + -- Randall Donald Mon, 7 Nov 2005 10:54:24 -0800 + +nvidia-settings (1.0+20050525-2.2) unstable; urgency=low + + * Non-maintainer upload + * corrected X11R6_LIB_DIR for x86_64 (closes: #321295, #327337) + + -- tony mancill Fri, 30 Sep 2005 08:44:56 -0700 + +nvidia-settings (1.0+20050525-2.1) unstable; urgency=low + + * Non-maintainer upload + * adds build-depends on libxv-dev (closes: #324594) + + -- tony mancill Sun, 11 Sep 2005 10:49:58 -0700 + +nvidia-settings (1.0+20050525-2) unstable; urgency=low + + * Change build-depends from xlibs-static-dev to libxxf86vm-dev + (closes: #318814) + + -- Randall Donald Tue, 19 Jul 2005 13:56:09 -0700 + +nvidia-settings (1.0+20050525-1) unstable; urgency=low + + * upstream from May 25 2005 + * add date to version name. (how about that for an idea, duh) + + -- Randall Donald Mon, 20 Jun 2005 15:19:10 -0700 + +nvidia-settings (1.0+3-1) unstable; urgency=low + + * upstream from 03/22/05 + * add libxrandr-dev and xlibmesa-gl-dev to build depends + + -- Randall Donald Sat, 2 Apr 2005 04:51:20 +0000 + +nvidia-settings (1.0+2-3) unstable; urgency=low + + * patch for rebuilding libXNVCtrl.a runtime. Thanks + to Tollef Fog Heen (closes: 265640) + * change arch to only those supported by nvidia. + + -- Randall Donald Sat, 13 Nov 2004 12:41:47 -0800 + +nvidia-settings (1.0+2-2) unstable; urgency=low + + * Build against libs in unstable, not experimental. (closes: #280221) + + -- Randall Donald Mon, 8 Nov 2004 02:29:31 -0800 + +nvidia-settings (1.0+2-1) unstable; urgency=low + + * New upstream from Nov 5, 2004. + + -- Randall Donald Sun, 7 Nov 2004 00:02:46 -0800 + +nvidia-settings (1.0+1-1) unstable; urgency=low + + * New upstream (minor quit dialog change) but no new upstream + version number. + + -- Randall Donald Thu, 5 Aug 2004 13:52:07 -0700 + +nvidia-settings (1.0-3) unstable; urgency=low + + * Fix Author(s) :p + * install debian menu. + + -- Randall Donald Sat, 3 Jul 2004 19:09:17 -0700 + +nvidia-settings (1.0-2) unstable; urgency=low + + * Fix Build-Depends + + -- Randall Donald Wed, 30 Jun 2004 22:39:18 -0700 + +nvidia-settings (1.0-1) unstable; urgency=low + + * Initial Release. + + -- Randall Donald Wed, 30 Jun 2004 16:45:52 -0700 + --- nvidia-settings-346.35.orig/debian/compat +++ nvidia-settings-346.35/debian/compat @@ -0,0 +1 @@ +7 --- nvidia-settings-346.35.orig/debian/control +++ nvidia-settings-346.35/debian/control @@ -0,0 +1,28 @@ +Source: nvidia-settings +Section: contrib/x11 +Priority: optional +XSBC-Original-Maintainer: Debian NVIDIA Maintainers +Maintainer: Ubuntu MOTU Developers +Uploaders: Randall Donald +Build-Depends: debhelper (>= 7), m4, libgtk2.0-dev, libgtk-3-dev, libxext-dev, xutils-dev, libxrandr-dev, + libgl1-mesa-dev | libgl-dev, libxxf86vm-dev, libxv-dev, libvdpau-dev, quilt +Standards-Version: 3.8.0 +Vcs-Git: git://github.com/tseliot/nvidia-settings.git +Vcs-Browser: http://github.com/tseliot/nvidia-settings + +Package: nvidia-settings +Architecture: i386 amd64 +Depends: pkg-config, screen-resolution-extra (>= 0.12), + libvdpau1, ${shlibs:Depends}, ${misc:Depends} +Conflicts: libxnvctrl-dev, nvidia-settings-binary +Replaces: libxnvctrl-dev, nvidia-settings-binary +Provides: nvidia-settings-binary +Description: Tool for configuring the NVIDIA graphics driver + The nvidia-settings utility is a tool for configuring the NVIDIA + Linux 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. + . + Values such as brightness and gamma, XVideo attributes, temperature, + and OpenGL settings can be queried and configured via nvidia-settings. + --- nvidia-settings-346.35.orig/debian/copyright +++ nvidia-settings-346.35/debian/copyright @@ -0,0 +1,198 @@ +This package was debianized by Randall Donald on +Wed, 30 Jun 2004 16:45:52 -0700. + +It was downloaded from ftp://download.nvidia.com/XFree86/nvidia-settings/ + +Upstream Author: NVIDIA Corporation + +Copyright: + +Copyright (C) 2004-2005 NVIDIA Corporation. + +some files (see below for a complete list): +Copyright (c) 1997-2003 by The XFree86 Project, Inc. +Copyright (c) 1997 Metro Link Incorporated +Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2004 Red Hat Inc., Raleigh, North Carolina. + + +This program is free software; you can redistribute it and/or +modify it under the terms of Version 2 of the GNU General Public +License as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2 +of the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the: + + Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA + + +On Debian GNU/Linux systems the full text of Version 2 the GPL maybe be found +in /usr/share/common-licenses/GPL-2 + +These files fall under a different (less restrictive) license: +../src/XF86Config-parser/Device.c +../src/XF86Config-parser/Keyboard.c +../src/XF86Config-parser/Layout.c +../src/XF86Config-parser/Merge.c +../src/XF86Config-parser/Module.c +../src/XF86Config-parser/Monitor.c +../src/XF86Config-parser/Pointer.c +../src/XF86Config-parser/Scan.c +../src/XF86Config-parser/Screen.c +../src/XF86Config-parser/Vendor.c +../src/XF86Config-parser/Video.c +../src/XF86Config-parser/Write.c +../src/XF86Config-parser/Configint.h +../src/XF86Config-parser/Files.c +../src/XF86Config-parser/Flags.c +../src/XF86Config-parser/xf86Parser.h +../src/XF86Config-parser/xf86tokens.h + + * Copyright (c) 1997 Metro Link Incorporated + * + * 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 X CONSORTIUM 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. + * + * Except as contained in this notice, the name of the Metro Link shall not be + * used in advertising or otherwise to promote the sale, use or other dealings + * in this Software without prior written authorization from Metro Link. + * + */ +/* + * Copyright (c) 1997-2003 by The XFree86 Project, Inc. + * + * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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. + * + * Except as contained in this notice, the name of the copyright holder(s) + * and author(s) shall not be used in advertising or otherwise to promote + * the sale, use or other dealings in this Software without prior written + * authorization from the copyright holder(s) and author(s). + */ + +and: +../src/XF86Config-parser/DRI.c: + +/* DRI.c -- DRI Section in XF86Config file + * Created: Fri Mar 19 08:40:22 1999 by faith@precisioninsight.com + * Revised: Thu Jun 17 16:08:05 1999 by faith@precisioninsight.com + * + * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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 (including the next + * paragraph) 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 + * PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. + * + */ + +and also: +../src/XF86Config-parser/Extensions.c: + * Copyright 2004 Red Hat Inc., Raleigh, North Carolina. + * + * All Rights Reserved. + * + * 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 on 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 (including the + * next paragraph) 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 + * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS + * 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. + */ + +../src/XF86Config-parser/configProcs.h +/* + * Copyright (c) 1997-2001 by The XFree86 Project, Inc. + * + * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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. + * + * Except as contained in this notice, the name of the copyright holder(s) + * and author(s) shall not be used in advertising or otherwise to promote + * the sale, use or other dealings in this Software without prior written + * authorization from the copyright holder(s) and author(s). + */ + +The packaging is a derived work of the upstream source, and hence falls under +the GPL-2 as weel (see usr/share/common-licenses/GPL-2). --- nvidia-settings-346.35.orig/debian/dirs +++ nvidia-settings-346.35/debian/dirs @@ -0,0 +1,5 @@ +/usr/bin +/usr/lib +/usr/include +/usr/share/pixmaps +/usr/share/applications --- nvidia-settings-346.35.orig/debian/docs +++ nvidia-settings-346.35/debian/docs @@ -0,0 +1 @@ +doc/*.txt --- nvidia-settings-346.35.orig/debian/examples +++ nvidia-settings-346.35/debian/examples @@ -0,0 +1 @@ +samples --- nvidia-settings-346.35.orig/debian/install +++ nvidia-settings-346.35/debian/install @@ -0,0 +1,3 @@ +debian/nvidia-settings.desktop /usr/share/applications +debian/nvidia-settings-autostart.desktop /etc/xdg/autostart +doc/nvidia-settings.png /usr/share/pixmaps --- nvidia-settings-346.35.orig/debian/nvidia-settings-autostart.desktop +++ nvidia-settings-346.35/debian/nvidia-settings-autostart.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Encoding=UTF-8 +Name=NVIDIA X Server Settings +Comment=Configure NVIDIA X Server Settings +Exec=sh -c '/usr/bin/nvidia-settings --load-config-only' +Terminal=false +Icon=nvidia-settings +Categories=System;Settings; --- nvidia-settings-346.35.orig/debian/nvidia-settings.desktop +++ nvidia-settings-346.35/debian/nvidia-settings.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Encoding=UTF-8 +Name=NVIDIA X Server Settings +Comment=Configure NVIDIA X Server Settings +Exec=/usr/bin/nvidia-settings +Icon=nvidia-settings +Categories=System;Settings; --- nvidia-settings-346.35.orig/debian/patches/01_allow_dark_themes.dpatch +++ nvidia-settings-346.35/debian/patches/01_allow_dark_themes.dpatch @@ -0,0 +1,45 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_allow_dark_themes.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Allow nvidia-settings to work with dark backgrounds + +@DPATCH@ +diff -urNad nvidia-settings-173.14.09~/src/gtk+-2.x/ctkglx.c nvidia-settings-173.14.09/src/gtk+-2.x/ctkglx.c +--- nvidia-settings-173.14.09~/src/gtk+-2.x/ctkglx.c 2008-06-05 02:14:03.000000000 -0500 ++++ nvidia-settings-173.14.09/src/gtk+-2.x/ctkglx.c 2008-08-28 16:59:43.000000000 -0500 +@@ -265,8 +265,8 @@ + event = gtk_event_box_new(); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollWin), + GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); +- gtk_widget_modify_fg(event, GTK_STATE_NORMAL, &(event->style->text[GTK_STATE_NORMAL])); +- gtk_widget_modify_bg(event, GTK_STATE_NORMAL, &(event->style->base[GTK_STATE_NORMAL])); ++ //gtk_widget_modify_fg(event, GTK_STATE_NORMAL, &(event->style->text[GTK_STATE_NORMAL])); ++ //gtk_widget_modify_bg(event, GTK_STATE_NORMAL, &(event->style->base[GTK_STATE_NORMAL])); + gtk_container_add(GTK_CONTAINER(event), hbox); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollWin), + event); +@@ -349,15 +349,15 @@ + data_table = gtk_table_new(num_fbconfigs, NUM_FBCONFIG_ATTRIBS, FALSE); + event = gtk_event_box_new(); + +- gtk_widget_modify_fg(data_table, GTK_STATE_NORMAL, +- &(data_table->style->text[GTK_STATE_NORMAL])); +- gtk_widget_modify_bg(data_table, GTK_STATE_NORMAL, +- &(data_table->style->base[GTK_STATE_NORMAL])); ++ //gtk_widget_modify_fg(data_table, GTK_STATE_NORMAL, ++ // &(data_table->style->text[GTK_STATE_NORMAL])); ++ //gtk_widget_modify_bg(data_table, GTK_STATE_NORMAL, ++ // &(data_table->style->base[GTK_STATE_NORMAL])); + gtk_container_add (GTK_CONTAINER(event), data_table); +- gtk_widget_modify_fg(event, GTK_STATE_NORMAL, +- &(event->style->text[GTK_STATE_NORMAL])); +- gtk_widget_modify_bg(event, GTK_STATE_NORMAL, +- &(event->style->base[GTK_STATE_NORMAL])); ++ //gtk_widget_modify_fg(event, GTK_STATE_NORMAL, ++ // &(event->style->text[GTK_STATE_NORMAL])); ++ //gtk_widget_modify_bg(event, GTK_STATE_NORMAL, ++ // &(event->style->base[GTK_STATE_NORMAL])); + gtk_container_add(GTK_CONTAINER(data_viewport), event); + + /* Pack the fbconfig header and data tables */ --- nvidia-settings-346.35.orig/debian/patches/02_nvidia-settings-format-string.patch +++ nvidia-settings-346.35/debian/patches/02_nvidia-settings-format-string.patch @@ -0,0 +1,88 @@ +Index: nvidia-settings-1.0/src/query-assign.c +=================================================================== +--- nvidia-settings-1.0/src/query-assign.c ++++ nvidia-settings-1.0/src/query-assign.c 2009-07-17 04:23:15.528973916 +0300 +@@ -755,7 +755,7 @@ + for (i = 0; targetTypeTable[i].name; i++) { + if (valid.permissions & targetTypeTable[i].permission_bit) { + if (n > 0) c += sprintf(c, ", "); +- c += sprintf(c, targetTypeTable[i].name); ++ c += sprintf(c, "%s", targetTypeTable[i].name); + n++; + } + } +Index: nvidia-settings-1.0/src/gtk+-2.x/ctkdisplayconfig.c +=================================================================== +--- nvidia-settings-1.0/src/gtk+-2.x/ctkdisplayconfig.c ++++ nvidia-settings-1.0/src/gtk+-2.x/ctkdisplayconfig.c 2009-07-17 04:28:06.217972586 +0300 +@@ -653,7 +653,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_NONE, +- msg); ++ "%s", msg); + + gtk_dialog_add_buttons(GTK_DIALOG(dlg), + "Truncate MetaModes", +@@ -4220,7 +4220,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, +- msg); ++ "%s", msg); + + gtk_dialog_run(GTK_DIALOG(dlg)); + gtk_widget_destroy(dlg); +@@ -5850,7 +5850,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_YES_NO, +- msg); ++ "%s", msg); + } else { + msg = g_strdup_printf("Failed to set MetaMode (%d) '%s' " + "(Mode %dx%d, id: %d) on X screen %d.", +@@ -5862,7 +5862,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, +- msg); ++ "%s", msg); + } + + result = gtk_dialog_run(GTK_DIALOG(dlg)); +Index: nvidia-settings-1.0/src/gtk+-2.x/ctkslimm.c +=================================================================== +--- nvidia-settings-1.0/src/gtk+-2.x/ctkslimm.c ++++ nvidia-settings-1.0/src/gtk+-2.x/ctkslimm.c 2009-07-17 04:31:00.462973003 +0300 +@@ -353,7 +353,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, +- err_msg); ++ "%s", err_msg); + + gtk_dialog_run(GTK_DIALOG(dlg)); + gtk_widget_destroy(dlg); +Index: nvidia-settings-1.0/src/gtk+-2.x/ctkutils.c +=================================================================== +--- nvidia-settings-1.0/src/gtk+-2.x/ctkutils.c ++++ nvidia-settings-1.0/src/gtk+-2.x/ctkutils.c 2009-07-17 04:26:44.069972888 +0300 +@@ -106,7 +106,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, +- msg); ++ "%s", msg); + gtk_dialog_run(GTK_DIALOG(dlg)); + gtk_widget_destroy(dlg); + } +@@ -134,7 +134,7 @@ + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, +- msg); ++ "%s", msg); + gtk_dialog_run(GTK_DIALOG(dlg)); + gtk_widget_destroy(dlg); + } --- nvidia-settings-346.35.orig/debian/patches/03_do_not_exit_on_no_scanout.patch +++ nvidia-settings-346.35/debian/patches/03_do_not_exit_on_no_scanout.patch @@ -0,0 +1,26 @@ +Description: Do not fail if the driver doesn't support NV_CTRL_NO_SCANOUT + NV_CTRL_NO_SCANOUT is not supported by legacy drivers such as series + 173 and 96. Pretending that the property exists and is set to false + prevents nvidia-settings from breaking compatibility with these drivers. +Forwarded: no +Bug: https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/539196 +Author: Alberto Milone + +diff -Nurp nvidia-settings-195.36.08.orig/src/gtk+-2.x/ctkdisplayconfig-utils.c nvidia-settings-195.36.08/src/gtk+-2.x/ctkdisplayconfig-utils.c +--- nvidia-settings-195.36.08.orig/src/gtk+-2.x/ctkdisplayconfig-utils.c 2010-02-25 14:44:28.000000000 +0100 ++++ nvidia-settings-195.36.08/src/gtk+-2.x/ctkdisplayconfig-utils.c 2010-04-06 19:47:14.335936746 +0200 +@@ -2112,11 +2112,14 @@ static int gpu_add_screen_from_server(nv + /* See if the screen is set to not scanout */ + ret = NvCtrlGetAttribute(screen->handle, NV_CTRL_NO_SCANOUT, &val); + if (ret != NvCtrlSuccess) { ++ /* + *err_str = g_strdup_printf("Failed to query NoScanout for " + "screen %d.", + screen_id); + nv_warning_msg(*err_str); + goto fail; ++ */ ++ val = NV_CTRL_NO_SCANOUT_DISABLED; + } + screen->no_scanout = (val == NV_CTRL_NO_SCANOUT_ENABLED) ? TRUE : FALSE; + --- nvidia-settings-346.35.orig/debian/patches/04_nvidia-settings_natty_ftbs.patch +++ nvidia-settings-346.35/debian/patches/04_nvidia-settings_natty_ftbs.patch @@ -0,0 +1,12 @@ +diff -Nurp nvidia-settings.orig/src/Makefile nvidia-settings/src/Makefile +--- nvidia-settings.orig/src/Makefile 2012-05-02 17:06:02.000000000 +0200 ++++ nvidia-settings/src/Makefile 2012-05-17 09:09:32.341638054 +0200 +@@ -51,7 +51,7 @@ ifndef GTK_CFLAGS + endif + + ifndef GTK_LDFLAGS +- GTK_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-2.0) ++ GTK_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-2.0) -ldl + endif + + --- nvidia-settings-346.35.orig/debian/patches/05_add_polkit_support.patch +++ nvidia-settings-346.35/debian/patches/05_add_polkit_support.patch @@ -0,0 +1,91 @@ +diff -Nurp nvidia-settings-190.53.orig/src/gtk+-2.x/ctkdisplayconfig-utils.c nvidia-settings-190.53/src/gtk+-2.x/ctkdisplayconfig-utils.c +--- nvidia-settings-190.53.orig/src/gtk+-2.x/ctkdisplayconfig-utils.c 2009-12-09 06:18:39.000000000 +0100 ++++ nvidia-settings-190.53/src/gtk+-2.x/ctkdisplayconfig-utils.c 2009-12-30 15:04:53.089702717 +0100 +@@ -2762,6 +2762,77 @@ static void update_banner(XConfigPtr con + + } /* update_banner() */ + ++/** ubuntu save_xconfig_file() ****************************** ++ * ++ * Calls Screen Resolution Extra (which uses PolicyKit) to save ++ * the X config file text from buf into a file called filename. ++ * If the filename already exists, a backup file named ++ * 'filename.backup' is created. ++ * ++ **/ ++ ++static int ubuntu_save_xconfig_file(SaveXConfDlg *dlg, ++ gchar *filename, char *buf, mode_t mode) ++{ ++ gchar *backup_filename = NULL; ++ int temp_fd; ++ gchar *err_msg = NULL; ++ ++ int ret = 0; ++ gchar *temp_filename; ++ gchar *command; ++ gboolean polkit_status; ++ int status; ++ char *nvidia_polkit = "/usr/share/screen-resolution-extra/nvidia-polkit.py"; ++ ++ if (!buf || !filename) goto done; ++ ++ backup_filename = g_strdup_printf("%s.backup", filename); ++ ++ /* Write out the X config file to a temporary file */ ++ temp_filename = g_strdup_printf("/tmp/nvidia-settings.XXXXXX"); ++ temp_fd = mkstemp(temp_filename); ++ write(temp_fd, buf, strlen(buf)); ++ close(temp_fd); ++ ++ /* Backup the the X config file (if any) and write out the X config ++ * file from the temporary file ++ */ ++ command = g_strconcat("python3 ", ++ nvidia_polkit, ++ " --write-from=", ++ temp_filename, ++ " --backup-to=", ++ backup_filename, ++ NULL); ++ polkit_status = (g_spawn_command_line_sync(command, NULL, NULL, &status, NULL) && status == 0); ++ g_free(command); ++ ++ /* Remove the temporary file */ ++ unlink(temp_filename); ++ g_free(temp_filename); ++ ++ if (!polkit_status) { ++ err_msg = g_strdup_printf("Unable to open X config file '%s' for writing.", ++ filename); ++ goto done; ++ } ++ ++ ret = 1; ++ ++ done: ++ /* Display any errors that might have occured */ ++ if (err_msg) { ++ ctk_display_error_msg(ctk_get_parent_window(GTK_WIDGET(dlg->parent)), ++ err_msg); ++ g_free(err_msg); ++ } ++ ++ g_free(backup_filename); ++ return ret; ++ ++} /* save_xconfig_file() */ ++ + + + /** save_xconfig_file() ********************************************** +@@ -2782,6 +2853,9 @@ static int save_xconfig_file(SaveXConfDl + + int ret = 0; + ++ ret = ubuntu_save_xconfig_file(dlg, filename, buf, mode); ++ ++ return ret; + + if (!buf || !filename) goto done; + --- nvidia-settings-346.35.orig/debian/patches/06_remove_local_prefix.patch +++ nvidia-settings-346.35/debian/patches/06_remove_local_prefix.patch @@ -0,0 +1,24 @@ +From 94f4a05935095362bdbd417bf6982c63172a08c2 Mon Sep 17 00:00:00 2001 +From: Alberto Milone +Date: Mon, 3 Sep 2012 14:45:15 +0200 +Subject: [PATCH 1/1] utils.mk: remove local from prefix + +--- + utils.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils.mk b/utils.mk +index b912f98..336007f 100644 +--- a/utils.mk ++++ b/utils.mk +@@ -126,7 +126,7 @@ endif + # the source tarball + ############################################################################## + +-PREFIX ?= /usr/local ++PREFIX ?= /usr + + BINDIR = $(DESTDIR)$(PREFIX)/bin + MANDIR = $(DESTDIR)$(PREFIX)/share/man/man1 +-- +1.7.9.5 --- nvidia-settings-346.35.orig/debian/patches/07_remove_features_for_legacy.patch +++ nvidia-settings-346.35/debian/patches/07_remove_features_for_legacy.patch @@ -0,0 +1,125 @@ +From dc73a1e2c767c25a7891bb5f03a673707d773af6 Mon Sep 17 00:00:00 2001 +From: Alberto Milone +Date: Tue, 19 Nov 2013 18:36:00 +0100 +Subject: [PATCH 1/1] Remove some features in the legacy drivers + +--- + src/gtk+-2.x/ctkwindow.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 60 insertions(+) + +diff --git a/src/gtk+-2.x/ctkwindow.c b/src/gtk+-2.x/ctkwindow.c +index 7ade747..d3669b5 100644 +--- a/src/gtk+-2.x/ctkwindow.c ++++ b/src/gtk+-2.x/ctkwindow.c +@@ -374,6 +374,50 @@ static gboolean has_randr_gamma(NvCtrlAttributeHandle *handle) + return ((ret == NvCtrlSuccess) && (val == 1)); + } + ++ ++static void get_major_minor(char *version, int *major, int *minor) ++{ ++ char* token; ++ char* copy; ++ char* tofree; ++ int i; ++ copy = strdup(version); ++ ++ if (copy != NULL) { ++ tofree = copy; ++ ++ for (i=0; (token = strsep(©, ".")) != NULL; i++) { ++ if (i == 0) ++ *major = atoi(token); ++ else ++ *minor = atoi(token); ++ } ++ ++ free(tofree); ++ } ++} ++ ++ ++static void get_driver_version(NvCtrlAttributeHandle *handle, ++ int *major, int *minor) ++{ ++ gchar *driver_version = NULL; ++ Bool ret; ++ ret = NvCtrlGetStringAttribute(handle, ++ NV_CTRL_STRING_NVIDIA_DRIVER_VERSION, ++ &driver_version); ++ if (ret != NvCtrlSuccess) { ++ driver_version = NULL; ++ } ++ else { ++ get_major_minor(driver_version, major, minor); ++ XFree(driver_version); ++ return; ++ } ++ major = minor = 0; ++} ++ ++ + /* + * ctk_window_new() - create a new CtkWindow widget + */ +@@ -560,6 +604,9 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + ctk_window->page = NULL; + + ++ int driver_major, driver_minor; ++ driver_major = driver_minor = 0; ++ + /* X Server info & configuration */ + + if (h->targets[X_SCREEN_TARGET].n) { +@@ -581,6 +628,8 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + + server_target = NvCtrlGetDefaultTargetByType(system, X_SCREEN_TARGET); + if (server_target) { ++ /* Use the handle to get the driver version */ ++ get_driver_version(server_target, &driver_major, &driver_minor); + + /* X Server information */ + +@@ -717,6 +766,7 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + } + + ++ if (driver_major >= 319) { + /* VDPAU Information */ + child = ctk_vdpau_new(screen_handle, ctk_config, ctk_event); + if (child) { +@@ -724,6 +774,7 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + add_page(child, help, ctk_window, &iter, NULL, "VDPAU Information", + NULL, NULL, NULL); + } ++ } + + /* gvo (Graphics To Video Out) */ + +@@ -1021,6 +1072,13 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + ctk_3d_vision_pro_select, ctk_3d_vision_pro_unselect); + } + ++ ++ /* We show this section in two cases: ++ * 1) when the driver is not in use (hybrid graphics) ++ * 2) when the driver release >= 319 ++ */ ++ if (driver_major == 0 || driver_major >= 319) { ++ + /* app profile configuration */ + widget = ctk_app_profile_new(ctk_config); + +@@ -1028,6 +1086,8 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + ctk_window, NULL, NULL, "Application Profiles", + NULL, NULL, NULL); + ++ } ++ + /* nvidia-settings configuration */ + + add_page(GTK_WIDGET(ctk_window->ctk_config), +-- +1.7.9.5 + --- nvidia-settings-346.35.orig/debian/patches/08_add_prime_support.patch +++ nvidia-settings-346.35/debian/patches/08_add_prime_support.patch @@ -0,0 +1,672 @@ +From 127e3ca40d062c1b91ea0431d0c4715a8e624827 Mon Sep 17 00:00:00 2001 +From: Alberto Milone +Date: Mon, 21 Oct 2013 15:20:18 +0200 +Subject: [PATCH 1/1] Add support for PRIME GPU switching + +--- + src/gtk+-2.x/ctkprime.c | 518 ++++++++++++++++++++++++++++++++++++++++++++++ + src/gtk+-2.x/ctkprime.h | 77 +++++++ + src/gtk+-2.x/ctkwindow.c | 10 + + src/src.mk | 2 + + 4 files changed, 607 insertions(+) + create mode 100644 src/gtk+-2.x/ctkprime.c + create mode 100644 src/gtk+-2.x/ctkprime.h + +diff --git a/src/gtk+-2.x/ctkprime.c b/src/gtk+-2.x/ctkprime.c +new file mode 100644 +index 0000000..e0890f4 +--- /dev/null ++++ b/src/gtk+-2.x/ctkprime.c +@@ -0,0 +1,518 @@ ++/* ++ * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix ++ * and Linux systems. ++ * ++ * Copyright (C) 2013 Canonical Ltd. ++ * ++ * Author: Alberto Milone ++ * ++ * Based on ctkxvideo.c: ++ * - Copyright (C) 2004 NVIDIA Corporation. ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms and conditions of the GNU General Public License, ++ * version 2, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++ * more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include "ctkbanner.h" ++#include "ctkutils.h" ++#include "ctkprime.h" ++#include "ctkscale.h" ++ ++#include "ctkhelp.h" ++ ++ ++static void prime_changed(GtkWidget *widget, gpointer user_data); ++ ++static GtkWidget *prime_radio_button_add(CtkPrime *ctk_prime, ++ GtkWidget *prev_radio, ++ char *label, ++ gchar *value, ++ int index); ++ ++static void ++prime_update_radio_buttons(CtkPrime *ctk_prime, gint value); ++ ++static void prime_changed(GtkWidget *widget, gpointer user_data); ++ ++static void prime_radio_button_enabled_add(CtkPrime *ctk_prime, ++ gint add_device_mask); ++ ++#define FRAME_PADDING 5 ++ ++ ++/* Create an info message dialog */ ++static void ctk_display_info_msg(GtkWidget *parent, gchar * msg) ++{ ++ GtkWidget *dlg; ++ ++ if (msg) { ++ nv_warning_msg("%s", msg); ++ ++ if (parent) { ++ dlg = gtk_message_dialog_new ++ (GTK_WINDOW(parent), ++ GTK_DIALOG_DESTROY_WITH_PARENT, ++ GTK_MESSAGE_INFO, ++ GTK_BUTTONS_OK, ++ "%s", msg); ++ gtk_dialog_run(GTK_DIALOG(dlg)); ++ gtk_widget_destroy(dlg); ++ } ++ } ++} ++ ++ ++/* See if the hardware is supported */ ++static gboolean is_supported(void) { ++ gchar *command = "/usr/bin/prime-supported /dev/stderr"; ++ int supported = 1; ++ gboolean status; ++ int exit_status = 0; ++ gchar *output = NULL; ++ gchar *error_str = NULL; ++ GError *error = NULL; ++ status = g_spawn_command_line_sync(command, &output, &error_str, &exit_status, &error); ++ ++ if (!status) { ++ g_warning("PRIME: %s", error->message); ++ ++ if (output) ++ g_free(output); ++ if (error_str) ++ g_free(error_str); ++ if (error) ++ g_error_free(error); ++ ++ return status; ++ } ++ ++ if (output) ++ output[strlen(output) - 1] = '\0'; ++ ++ if (strlen(error_str) > 0) { ++ error_str[strlen(error_str) - 1] = '\0'; ++ g_message("PRIME: %s", error_str); ++ ++ } ++ ++ supported = (strcmp(output, "yes") == 0); ++ ++ if (output) ++ g_free(output); ++ ++ if (error_str) ++ g_free(error_str); ++ ++ if (error) ++ g_error_free(error); ++ ++ return supported; ++} ++ ++ ++/* Get the active GPU */ ++static gboolean get_active_gpu(gchar **gpu) { ++ gchar *command = "/usr/bin/prime-select query"; ++ gboolean status; ++ int exit_status = 0; ++ gchar *output = NULL; ++ gchar *error_str = NULL; ++ GError *error = NULL; ++ status = g_spawn_command_line_sync(command, &output, &error_str, &exit_status, &error); ++ ++ if (!status) { ++ /* If we get here, something seriously broken */ ++ g_error("PRIME error: %s", error->message); ++ if (output) ++ g_free(output); ++ ++ if (error_str) ++ g_free(error_str); ++ ++ if (error) ++ g_error_free(error); ++ ++ return status; ++ } ++ ++ if (output) { ++ output[strlen(output) - 1] = '\0'; ++ *gpu = g_strdup(output); ++ } ++ ++ if (output) ++ g_free(output); ++ ++ if (error_str) ++ g_free(error_str); ++ ++ if (error) ++ g_error_free(error); ++ ++ return status; ++} ++ ++ ++/* Check if a PRIME mode is enabled */ ++static gboolean is_mode_enabled(gchar *mode) { ++ gboolean status; ++ gchar *gpu = NULL; ++ ++ get_active_gpu(&gpu); ++ ++ g_message("PRIME: detected gpu: \"%s\"", gpu); ++ ++ status = (strcmp(mode, gpu) == 0); ++ ++ g_free(gpu); ++ ++ return status; ++} ++ ++ ++/* Set the PRIME profile */ ++static gboolean set_mode(gchar *mode, gchar **error_msg, gint *exit_status) { ++ ++ gchar *command = NULL; ++ command = g_strconcat("python3 /usr/share/screen-resolution-extra/nvidia-prime.py ", ++ mode, NULL); ++ gboolean status; ++ gchar *output = NULL; ++ gchar *error_str = NULL; ++ GError *error = NULL; ++ status = g_spawn_command_line_sync(command, &output, &error_str, exit_status, &error); ++ g_free(command); ++ ++ if (!status) { ++ if (error->message) { ++ *error_msg = g_strdup(error->message); ++ } ++ if (output) ++ g_free(output); ++ ++ if (error_str) ++ g_free(error_str); ++ ++ if (error) ++ g_error_free(error); ++ ++ return status; ++ } ++ ++ if (exit_status != 0) { ++ error_str[strlen(error_str) - 1] = '\0'; ++ *error_msg = g_strdup(error_str); ++ } ++ ++ if (output) ++ g_free(output); ++ ++ if (error_str) ++ g_free(error_str); ++ ++ if (error) ++ g_error_free(error); ++ ++ return status; ++} ++ ++ ++GType ctk_prime_get_type(void) ++{ ++ static GType ctk_prime_type = 0; ++ ++ if (!ctk_prime_type) { ++ static const GTypeInfo ctk_prime_info = { ++ sizeof (CtkPrimeClass), ++ NULL, /* base_init */ ++ NULL, /* base_finalize */ ++ NULL, /* class_init */ ++ NULL, /* class_finalize */ ++ NULL, /* class_data */ ++ sizeof(CtkPrime), ++ 0, /* n_preallocs */ ++ NULL, /* instance_init */ ++ NULL /* value_table */ ++ }; ++ ++ ctk_prime_type = g_type_register_static ++ (GTK_TYPE_VBOX, "CtkPrime", &ctk_prime_info, 0); ++ } ++ ++ return ctk_prime_type; ++} ++ ++ ++/* ++ * Create a radio button and plug it ++ * into the prime radio group. ++ */ ++static GtkWidget *prime_radio_button_add(CtkPrime *ctk_prime, ++ GtkWidget *prev_radio, ++ char *label, ++ gchar *value, ++ int index) ++{ ++ GtkWidget *radio; ++ ++ if (prev_radio) { ++ radio = gtk_radio_button_new_with_label_from_widget ++ (GTK_RADIO_BUTTON(prev_radio), label); ++ } else { ++ radio = gtk_radio_button_new_with_label(NULL, label); ++ } ++ ++ gtk_box_pack_start(GTK_BOX(ctk_prime->prime_button_box), ++ radio, FALSE, FALSE, 0); ++ ++ g_object_set_data(G_OBJECT(radio), "prime", value); ++ ++ g_signal_connect(G_OBJECT(radio), "toggled", ++ G_CALLBACK(prime_changed), ++ (gpointer) ctk_prime); ++ ++ ctk_prime->prime_buttons[index] = radio; ++ ++ return radio; ++} ++ ++ ++static void ++prime_update_radio_buttons(CtkPrime *ctk_prime, gint value) ++{ ++ GtkWidget *b, *button = NULL; ++ int i; ++ ++ button = ctk_prime->prime_buttons[value]; ++ if (!button) return; ++ ++ /* turn off signal handling for all the sync buttons */ ++ for (i = 0; i < 24; i++) { ++ b = ctk_prime->prime_buttons[i]; ++ if (!b) continue; ++ ++ g_signal_handlers_block_by_func ++ (G_OBJECT(b), G_CALLBACK(prime_changed), ++ (gpointer) ctk_prime); ++ } ++ ++ /* set the appropriate button active */ ++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); ++ ++ /* turn on signal handling for all the sync buttons */ ++ for (i = 0; i < 24; i++) { ++ b = ctk_prime->prime_buttons[i]; ++ if (!b) continue; ++ ++ g_signal_handlers_unblock_by_func ++ (G_OBJECT(b), G_CALLBACK(prime_changed), ++ (gpointer) ctk_prime); ++ } ++} ++ ++ ++/* ++ * Callback function for changes to the ++ * prime radio button group; ++ */ ++static void prime_changed(GtkWidget *widget, gpointer user_data) ++{ ++ CtkPrime *ctk_prime = CTK_PRIME(user_data); ++ gboolean enabled; ++ gchar *value; ++ gint number; ++ ++ gboolean success; ++ gchar *error_msg = NULL; ++ gint exit_status = 0; ++ ++ enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); ++ ++ if (enabled) { ++ ++ user_data = g_object_get_data(G_OBJECT(widget), "prime"); ++ ++ /* We use "value" to know what to select */ ++ value = (gchar*)user_data; ++ ++ /* Call the switcher */ ++ success = set_mode(value, &error_msg, &exit_status); ++ ++ /* Get the parent widget */ ++ GtkWidget *parent; ++ parent = ctk_get_parent_window(GTK_WIDGET(ctk_prime)); ++ ++ /* if gspawn succeeded */ ++ if (success) { ++ /* Did it really succeed though? */ ++ int status; ++ status = WEXITSTATUS(exit_status); ++ ++ if (status == 0) { ++ /* Show a dialog to suggest to log out */ ++ ctk_display_info_msg(parent, ++ "Please log out and log back in to apply the changes"); ++ } else { ++ if (status != 5) { ++ /* Show an error only if the user did not ++ * cancel the operation ++ */ ++ ctk_display_error_msg(parent, error_msg); ++ } ++ ++ /* Set the radio button to the previous position */ ++ number = (strcmp(value, "nvidia") == 0 ? 1 : 0); ++ prime_update_radio_buttons(ctk_prime, number); ++ } ++ } else { ++ /* Something's wrong with gspawn */ ++ ++ /* Show an error dialog */ ++ ctk_display_error_msg(parent, error_msg); ++ ++ /* Set the radio button to the previous position */ ++ number = (strcmp(value, "nvidia") == 0 ? 1 : 0); ++ prime_update_radio_buttons(ctk_prime, number); ++ } ++ ++ /* Free any error output */ ++ if (error_msg) ++ g_free(error_msg); ++ ++ ++ } ++} ++ ++ ++/* Constructor for the Prime widget */ ++GtkWidget* ctk_prime_new(CtkConfig *ctk_config) ++{ ++ GObject *object; ++ CtkPrime *ctk_prime; ++ GtkWidget *banner; ++ GtkWidget *frame; ++ GtkWidget *alignment; ++ GtkWidget *vbox; ++ ++ /* ++ * before we do anything else, determine if PRIME is supported ++ */ ++ int supported; ++ supported = is_supported(); ++ g_message("PRIME: is it supported? %s", (supported ? "yes" : "no")); ++ ++ if (! supported) ++ return NULL; ++ ++ /* create the Prime widget */ ++ object = g_object_new(CTK_TYPE_PRIME, NULL); ++ ctk_prime = CTK_PRIME(object); ++ ++ ctk_prime->ctk_config = ctk_config; ++ ++ gtk_box_set_spacing(GTK_BOX(ctk_prime), 10); ++ ++ /* Set the banner */ ++ banner = ctk_banner_image_new(BANNER_ARTWORK_GPU); ++ gtk_box_pack_start(GTK_BOX(object), banner, FALSE, FALSE, 0); ++ ++ /* Create two radiobuttons for the two power profiles */ ++ GtkWidget *radio[24], *prev_radio; ++ frame = gtk_frame_new("Select the GPU you would like to use"); ++ gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0); ++ ++ vbox = gtk_vbox_new(FALSE, 5); ++ gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING); ++ gtk_container_add(GTK_CONTAINER(frame), vbox); ++ ctk_prime->prime_button_box = vbox; ++ ++ /* Button for NVIDIA */ ++ radio[0] = prime_radio_button_add(ctk_prime, ++ NULL, ++ "NVIDIA (Performance Mode)", ++ "nvidia", ++ 0); ++ ++ /* Set the tooltip for NVIDIA */ ++ ctk_config_set_tooltip(ctk_config, radio[0], ++ "Enabling this option ensures the best " ++ "graphics performance. This option is " ++ "applied after a log out."); ++ ++ ++ /* Button for Intel */ ++ radio[1] = prime_radio_button_add(ctk_prime, ++ radio[0], ++ "Intel (Power Saving Mode)", ++ "intel", ++ 1); ++ /* Set the tooltip for NVIDIA */ ++ ctk_config_set_tooltip(ctk_config, radio[1], ++ "Enabling this option ensures the best " ++ "battery life. This option is " ++ "applied after a log out."); ++ ++ /* Get the current GPU in use from the switcher*/ ++ gchar *current_gpu = NULL; ++ get_active_gpu(¤t_gpu); ++ ++ int current_button = (strcmp(current_gpu, "nvidia") == 0) ? ++ 0 : 1; ++ g_free(current_gpu); ++ ++ /* Enable the button which matches the current ++ * configuration ++ */ ++ prime_update_radio_buttons(ctk_prime, current_button); ++ ++ alignment = gtk_alignment_new(1, 1, 0, 0); ++ gtk_box_pack_start(GTK_BOX(object), alignment, TRUE, TRUE, 0); ++ ++ /* finally, show the widget */ ++ ++ gtk_widget_show_all(GTK_WIDGET(ctk_prime)); ++ ++ return GTK_WIDGET(ctk_prime); ++ ++} ++ ++ ++GtkTextBuffer *ctk_prime_create_help(GtkTextTagTable *table, ++ CtkPrime *ctk_prime) ++{ ++ GtkTextIter i; ++ GtkTextBuffer *b; ++ ++ b = gtk_text_buffer_new(table); ++ ++ gtk_text_buffer_get_iter_at_offset(b, &i, 0); ++ ++ ctk_help_title(b, &i, "PRIME Profiles Help"); ++ ++ ctk_help_para(b, &i, "The Prime Profiles page gives " ++ "you control over which GPU you " ++ "desire to use."); ++ ++ ctk_help_para(b, &i, "It is recommended that you " ++ "select NVIDIA for the best performance, " ++ "and Intel for the best battery life."); ++ ++ ctk_help_finish(b); ++ ++ return b; ++} ++ +diff --git a/src/gtk+-2.x/ctkprime.h b/src/gtk+-2.x/ctkprime.h +new file mode 100644 +index 0000000..b6312a9 +--- /dev/null ++++ b/src/gtk+-2.x/ctkprime.h +@@ -0,0 +1,77 @@ ++/* ++ * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix ++ * and Linux systems. ++ * ++ * Copyright (C) 2013 Canonical Ltd. ++ * ++ * Author: Alberto Milone ++ * ++ * Based on ctkxvideo.h: ++ * - Copyright (C) 2004 NVIDIA Corporation. ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms and conditions of the GNU General Public License, ++ * version 2, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++ * more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ */ ++ ++#ifndef __CTK_PRIME_H__ ++#define __CTK_PRIME_H__ ++ ++#include "ctkconfig.h" ++#include "ctkevent.h" ++ ++G_BEGIN_DECLS ++ ++#define CTK_TYPE_PRIME (ctk_prime_get_type()) ++ ++#define CTK_PRIME(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST ((obj), CTK_TYPE_PRIME, CtkPrime)) ++ ++#define CTK_PRIME_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_CAST ((klass), CTK_TYPE_PRIME, CtkPrimeClass)) ++ ++#define CTK_IS_PRIME(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CTK_TYPE_PRIME)) ++ ++#define CTK_IS_PRIME_CLASS(class) \ ++ (G_TYPE_CHECK_CLASS_TYPE ((klass), CTK_TYPE_PRIME)) ++ ++#define CTK_PRIME_GET_CLASS(obj) \ ++ (G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_PRIME, CtkPrimeClass)) ++ ++ ++typedef struct _CtkPrime CtkPrime; ++typedef struct _CtkPrimeClass CtkPrimeClass; ++ ++struct _CtkPrime ++{ ++ GtkVBox parent; ++ ++ CtkConfig *ctk_config; ++ ++ GtkWidget *prime_buttons[24]; ++ GtkWidget *prime_button_box; ++}; ++ ++struct _CtkPrimeClass ++{ ++ GtkVBoxClass parent_class; ++}; ++ ++GType ctk_prime_get_type (void) G_GNUC_CONST; ++GtkWidget* ctk_prime_new (CtkConfig *); ++ ++GtkTextBuffer *ctk_prime_create_help(GtkTextTagTable *, CtkPrime *); ++ ++G_END_DECLS ++ ++#endif /* __CTK_PRIME_H__ */ ++ +diff --git a/src/gtk+-2.x/ctkwindow.c b/src/gtk+-2.x/ctkwindow.c +index 7ade747..5387ced 100644 +--- a/src/gtk+-2.x/ctkwindow.c ++++ b/src/gtk+-2.x/ctkwindow.c +@@ -46,6 +46,7 @@ + #include "ctkcolorcorrection.h" + #include "ctkcolorcorrectionpage.h" + #include "ctkxvideo.h" ++#include "ctkprime.h" + #include "ctkopengl.h" + #include "ctkglx.h" + #include "ctkmultisample.h" +@@ -1021,6 +1022,15 @@ GtkWidget *ctk_window_new(ParsedAttribute *p, ConfigProperties *conf, + ctk_3d_vision_pro_select, ctk_3d_vision_pro_unselect); + } + ++ ++ /* PRIME settings */ ++ widget = ctk_prime_new(ctk_config); ++ if (widget) { ++ help = ctk_prime_create_help(tag_table, CTK_PRIME(widget)); ++ add_page(widget, help, ctk_window, NULL, NULL, "PRIME Profiles", ++ NULL, NULL, NULL); ++ } ++ + /* app profile configuration */ + widget = ctk_app_profile_new(ctk_config); + +diff --git a/src/src.mk b/src/src.mk +index 327b41b..2d45d2f 100644 +--- a/src/src.mk ++++ b/src/src.mk +@@ -219,6 +219,7 @@ GTK_SRC += gtk+-2.x/ctkapcrulemodel.c + GTK_SRC += gtk+-2.x/ctkcolorcontrols.c + GTK_SRC += gtk+-2.x/ctk3dvisionpro.c + GTK_SRC += gtk+-2.x/ctkvdpau.c ++GTK_SRC += gtk+-2.x/ctkprime.c + + NVIDIA_SETTINGS_SRC += $(GTK_SRC) + +@@ -270,6 +271,7 @@ GTK_EXTRA_DIST += gtk+-2.x/ctkapcrulemodel.h + GTK_EXTRA_DIST += gtk+-2.x/ctkcolorcontrols.h + GTK_EXTRA_DIST += gtk+-2.x/ctk3dvisionpro.h + GTK_EXTRA_DIST += gtk+-2.x/ctkvdpau.h ++GTK_EXTRA_DIST += gtk+-2.x/ctkprime.h + + NVIDIA_SETTINGS_EXTRA_DIST += $(GTK_EXTRA_DIST) + +-- +1.7.9.5 + --- nvidia-settings-346.35.orig/debian/patches/09_do_not_complain_if_nvidia_is_missing.patch +++ nvidia-settings-346.35/debian/patches/09_do_not_complain_if_nvidia_is_missing.patch @@ -0,0 +1,36 @@ +From dddd76800c46372693a3e8e8e9f8142614d677c6 Mon Sep 17 00:00:00 2001 +From: Alberto Milone +Date: Thu, 24 Oct 2013 13:28:47 +0200 +Subject: [PATCH 1/1] Do not complain that the NVIDIA driver is not in use + +Suggesting nvidia-xconfig won't help, as we autoload the +driver anyway. That would also break hybrid graphics. +--- + src/gtk+-2.x/ctkui.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gtk+-2.x/ctkui.c b/src/gtk+-2.x/ctkui.c +index 3ee395f..69b67c7 100644 +--- a/src/gtk+-2.x/ctkui.c ++++ b/src/gtk+-2.x/ctkui.c +@@ -56,7 +56,7 @@ void ctk_main(ParsedAttribute *p, + break; + } + } +- ++#if 0 + if (!has_nv_control) { + GtkWidget *dlg; + dlg = gtk_message_dialog_new (NULL, +@@ -70,7 +70,7 @@ void ctk_main(ParsedAttribute *p, + gtk_dialog_run(GTK_DIALOG(dlg)); + gtk_widget_destroy (dlg); + } +- ++#endif + ctk_window_set_active_page(CTK_WINDOW(window), page); + + gtk_main(); +-- +1.7.9.5 + --- nvidia-settings-346.35.orig/debian/patches/10_legacy_vdpau.patch +++ nvidia-settings-346.35/debian/patches/10_legacy_vdpau.patch @@ -0,0 +1,32 @@ +--- a/src/gtk+-2.x/ctkvdpau.c ++++ b/src/gtk+-2.x/ctkvdpau.c +@@ -167,11 +167,13 @@ + {"H264", VDP_DECODER_PROFILE_H264_BASELINE, 0x04}, + {"H264", VDP_DECODER_PROFILE_H264_MAIN, 0x04}, + {"H264", VDP_DECODER_PROFILE_H264_HIGH, 0x04}, ++#ifdef VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE + {"H264", VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE, 0x04}, + {"H264", VDP_DECODER_PROFILE_H264_EXTENDED, 0x04}, + {"H264", VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH, 0x04}, + {"H264", VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH, 0x04}, + {"H264", VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE, 0x04}, ++#endif + {"VC1", VDP_DECODER_PROFILE_VC1_SIMPLE, 0x08}, + {"VC1" , VDP_DECODER_PROFILE_VC1_MAIN, 0x08}, + {"VC1", VDP_DECODER_PROFILE_VC1_ADVANCED, 0x08}, +@@ -480,6 +482,7 @@ + {"H264 Baseline", VDP_DECODER_PROFILE_H264_BASELINE, 0}, + {"H264 Main", VDP_DECODER_PROFILE_H264_MAIN, 0}, + {"H264 High", VDP_DECODER_PROFILE_H264_HIGH, 0}, ++#ifdef VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE + {"H264 Constrained Baseline", + VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE, 0}, + {"H264 Extended", VDP_DECODER_PROFILE_H264_EXTENDED, 0}, +@@ -489,6 +492,7 @@ + VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH, 0}, + {"H264 High 4:4:4 Predictive", + VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE, 0}, ++#endif + {"VC1 Simple", VDP_DECODER_PROFILE_VC1_SIMPLE, 0}, + {"VC1 Main", VDP_DECODER_PROFILE_VC1_MAIN, 0}, + {"VC1 Advanced", VDP_DECODER_PROFILE_VC1_ADVANCED, 0}, --- nvidia-settings-346.35.orig/debian/patches/series +++ nvidia-settings-346.35/debian/patches/series @@ -0,0 +1,6 @@ +05_add_polkit_support.patch +06_remove_local_prefix.patch +07_remove_features_for_legacy.patch +08_add_prime_support.patch +09_do_not_complain_if_nvidia_is_missing.patch +10_legacy_vdpau.patch --- nvidia-settings-346.35.orig/debian/preinst +++ nvidia-settings-346.35/debian/preinst @@ -0,0 +1,37 @@ +#!/bin/sh +# preinst script for nvidia-settings +# +# see: dh_installdeb(1) +# +# Copyright (C) 2013 Canonical Ltd +# Authors: Alberto Milone + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# +# For details see /usr/share/doc/packaging-manual/ + +case "$1" in + install|upgrade) + # Remove leftover from alternatives based nvidia-settings + if [ -e /etc/alternatives/nvidia_settings_conf ]; then + update-alternatives --quiet --remove-all nvidia_settings_conf || true + rm -Rf /usr/lib/nvidia-settings + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +#DEBHELPER# --- nvidia-settings-346.35.orig/debian/rules +++ nvidia-settings-346.35/debian/rules @@ -0,0 +1,70 @@ +#!/usr/bin/make -f +# +# Copyright (C) 2009 Canonical Ltd. + +PKG_name := nvidia-settings +libdir := /usr/lib +includedir := /usr/include +url := http://cgit.freedesktop.org/~aplattner/nvidia-settings/snapshot +tarball := nvidia-settings-$(PKG_version).tar.gz +file_url := $(url)/$(tarball) + +.PHONY: download-sources +download-sources: + # Remove any previous extracted tarball + find . -maxdepth 1 \( ! -iname 'debian' ! -iname '.*' ! -iname '..*' \) | xargs rm -rf + # Downloads the new tarball from NVIDIA's website + wget -c $(file_url) -P ../ + tar -xzvf ../$(tarball) --strip 1 + +build: build-arch +build-arch: + dh_quilt_patch + + $(MAKE) -C src/libXNVCtrl EXTINCSRC=/usr/include/X11/extensions \ + CFLAGS="$(CFLAGS) -fPIC" + $(MAKE) + dh build + +clean: + -$(MAKE) -C src/libXNVCtrl clean 2>/dev/null + -$(MAKE) clean + if [ -e src/XF86Config-parser/Makefile ]; then \ + $(MAKE) -C src/XF86Config-parser clean; \ + fi + + rm -Rf $(CURDIR)/_out */_out + + dh_quilt_unpatch + + dh clean + +binary-arch: + #dh_auto_install -- prefix=$(CURDIR)/debian/$(PKG_name)$(PKG_libdir) + $(MAKE) PREFIX=$(CURDIR)/debian/$(PKG_name)/usr install + dh_install -p$(PKG_name) src/libXNVCtrl/libXNVCtrl.a "$(libdir)" + dh_install -p$(PKG_name) src/libXNVCtrl/NVCtrl.h "$(includedir)/NVCtrl" + dh_install -p$(PKG_name) src/libXNVCtrl/NVCtrlLib.h "$(includedir)/NVCtrl" + + #Run the normal stuff + dh binary-arch + +binary: binary-arch binary-indep ; + #Run the normal stuff + dh binary + +override_dh_compress: + dh_compress --exclude=.c --exclude=.mk + +override_dh_installexamples: + dh_installexamples -X"_out" -a + +override_dh_auto_install: + dh_auto_install -- DESTDIR=$(CURDIR)/debian/$(PKG_name) + +override_dh_usrlocal: + rm -Rf $(CURDIR)/debian/$(PKG_name)/usr/local + +%: + dh $@ --with quilt +