Bug#687350: unblock: nvclock/0.8b4+cvs20100914-3
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package nvclock
It fixes some segfaults if used with newer graphics cards and newer
versions of the proprietary driver. #671135
Furthermore enables building for armhf. #684490
The debdiff contains the addition of fix-CFLAGS.diff, but this patch is
*not enabled* in the series file.
Andreas
unblock nvclock/0.8b4+cvs20100914-3
diffstat for nvclock-0.8b4+cvs20100914 nvclock-0.8b4+cvs20100914
changelog | 9 +++++++++
control | 8 ++++----
patches/fix-CFLAGS.diff | 16 ++++++++++++++++
patches/fix-segfault.diff | 40 ++++++++++++++++++++++++++++++++++++++++
patches/series | 1 +
5 files changed, 70 insertions(+), 4 deletions(-)
diff -Nru nvclock-0.8b4+cvs20100914/debian/changelog nvclock-0.8b4+cvs20100914/debian/changelog
--- nvclock-0.8b4+cvs20100914/debian/changelog 2012-02-16 20:00:20.000000000 +0100
+++ nvclock-0.8b4+cvs20100914/debian/changelog 2012-08-16 17:45:56.000000000 +0200
@@ -1,3 +1,12 @@
+nvclock (0.8b4+cvs20100914-3) unstable; urgency=low
+
+ * Build binary packages for armhf, since it should have similar hardware
+ availability to armel. (Closes: #684490)
+ * fix-segfaults.diff: New patch to fix segmentation faults with newer GPUs
+ and newer Nvidia drivers. (Closes: #671135)
+
+ -- Andreas Beckmann <debian@abeckmann.de> Thu, 16 Aug 2012 17:45:56 +0200
+
nvclock (0.8b4+cvs20100914-2) unstable; urgency=low
[ Andreas Beckmann ]
diff -Nru nvclock-0.8b4+cvs20100914/debian/control nvclock-0.8b4+cvs20100914/debian/control
--- nvclock-0.8b4+cvs20100914/debian/control 2012-02-16 19:59:06.000000000 +0100
+++ nvclock-0.8b4+cvs20100914/debian/control 2012-08-15 11:25:36.000000000 +0200
@@ -22,7 +22,7 @@
Vcs-Browser: http://svn.debian.org/wsvn/pkg-nvidia/packages/nvclock/
Package: nvclock
-Architecture: alpha amd64 armel hppa i386 ia64 powerpc sparc
+Architecture: alpha amd64 armel armhf hppa i386 ia64 powerpc sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: smartdimmer
Suggests: ${nvidia:Suggests}
@@ -35,7 +35,7 @@
versions.
Package: nvclock-gtk
-Architecture: alpha amd64 armel hppa i386 ia64 powerpc sparc
+Architecture: alpha amd64 armel armhf hppa i386 ia64 powerpc sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: ${nvidia:Suggests}
Description: Overclock an NVIDIA card (GTK+ interface)
@@ -47,7 +47,7 @@
for the console version.
Package: nvclock-qt
-Architecture: alpha amd64 armel hppa i386 ia64 powerpc sparc
+Architecture: alpha amd64 armel armhf hppa i386 ia64 powerpc sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: ${nvidia:Suggests}
Description: Overclock an NVIDIA card (Qt interface)
@@ -59,7 +59,7 @@
for the console version.
Package: smartdimmer
-Architecture: alpha amd64 armel hppa i386 ia64 powerpc sparc
+Architecture: alpha amd64 armel armhf hppa i386 ia64 powerpc sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Breaks: nvclock (<< 0.8b4+cvs20100914-2~)
Replaces: nvclock (<< 0.8b4+cvs20100914-2~)
diff -Nru nvclock-0.8b4+cvs20100914/debian/patches/fix-CFLAGS.diff nvclock-0.8b4+cvs20100914/debian/patches/fix-CFLAGS.diff
--- nvclock-0.8b4+cvs20100914/debian/patches/fix-CFLAGS.diff 1970-01-01 01:00:00.000000000 +0100
+++ nvclock-0.8b4+cvs20100914/debian/patches/fix-CFLAGS.diff 2012-08-16 17:39:49.000000000 +0200
@@ -0,0 +1,16 @@
+--- a/src/backend/Makefile.in
++++ b/src/backend/Makefile.in
+@@ -1,11 +1,11 @@
+-CC=@CC@ -O0
++CC=@CC@
+ AR=ar
+ RANLIB=@RANLIB@
+
+ system=@system@
+ HAVE_NVCONTROL=@HAVE_NVCONTROL@
+ OBJECTS=backend.o bios.o config.o error.o nv30.o nv40.o nv50.o info.o overclock.o utils.o i2c.o xf86i2c.o adt7473.o f75375.o lm99.o w83781d.o w83l785r.o libc_wrapper.o
+-CFLAGS=@X11_CFLAGS@ -I../.. -I../nvcontrol
++CFLAGS=@CFLAGS@ @X11_CFLAGS@ -I../.. -I../nvcontrol -O0
+
+ ifeq ($(system), FreeBSD)
+ OBJECTS+=back_bsd.o
diff -Nru nvclock-0.8b4+cvs20100914/debian/patches/fix-segfault.diff nvclock-0.8b4+cvs20100914/debian/patches/fix-segfault.diff
--- nvclock-0.8b4+cvs20100914/debian/patches/fix-segfault.diff 1970-01-01 01:00:00.000000000 +0100
+++ nvclock-0.8b4+cvs20100914/debian/patches/fix-segfault.diff 2012-08-16 17:39:28.000000000 +0200
@@ -0,0 +1,40 @@
+Author: Andreas Beckmann <debian@abeckmann.de>
+Subject: fix segmentation faults with newer driver and GPUs
+ fix device mask to exclude new devices
+ error out if mmap()ing PMC failed
+Bug-Debian: http://bugs.debian.org/671135
+
+--- a/src/backend/utils.c
++++ b/src/backend/utils.c
+@@ -88,7 +88,7 @@
+ int get_gpu_arch(int device_id)
+ {
+ int arch;
+- switch(device_id & 0xff0)
++ switch(device_id & 0xfff0)
+ {
+ case 0x20:
+ arch = NV5;
+--- a/src/backend/back_linux.c
++++ b/src/backend/back_linux.c
+@@ -270,6 +270,8 @@
+
+ base = mmap((caddr_t)0, Size + alignOff, PROT_READ|PROT_WRITE,
+ mapflags, dev->fd, (off_t)realBase);
++ if (base == MAP_FAILED)
++ return NULL;
+ return (void *) ((char *)base + alignOff);
+ }
+
+--- a/src/backend/backend.c
++++ b/src/backend/backend.c
+@@ -41,6 +41,9 @@
+ nv_card->PFB = map_dev_mem(fd, nv_card->reg_address + 0x100000, 0x1000);
+ /* normally pmc is till 0x2000 but extended it for nv40 */
+ nv_card->PMC = map_dev_mem(fd, nv_card->reg_address + 0x000000, 0x2ffff);
++ if (!nv_card->PMC)
++ set_error_str("failed to mmap PMC");
++ return 0;
+ nv_card->PCIO = map_dev_mem(fd, nv_card->reg_address + 0x601000, 0x2000);
+ nv_card->PDISPLAY = map_dev_mem(fd, nv_card->reg_address + NV_PDISPLAY_OFFSET, NV_PDISPLAY_SIZE);
+ nv_card->PRAMDAC = map_dev_mem(fd, nv_card->reg_address + 0x680000, 0x2000);
diff -Nru nvclock-0.8b4+cvs20100914/debian/patches/series nvclock-0.8b4+cvs20100914/debian/patches/series
--- nvclock-0.8b4+cvs20100914/debian/patches/series 2012-02-16 19:58:44.000000000 +0100
+++ nvclock-0.8b4+cvs20100914/debian/patches/series 2012-08-16 17:07:20.000000000 +0200
@@ -4,3 +4,4 @@
desktop-fixes.diff
qt4.diff
multiarch.diff
+fix-segfault.diff
Reply to: