Bug 176146 - [PATCH] x11/nvidia-driver: fix the build after linux header changes in -CURRENT
Summary: [PATCH] x11/nvidia-driver: fix the build after linux header changes in -CURRENT
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Alexey Dokuchaev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-14 14:10 UTC by Brendan Fabeny
Modified: 2013-02-16 15:06 UTC (History)
0 users

See Also:


Attachments
file.diff (1.22 KB, patch)
2013-02-14 14:10 UTC, Brendan Fabeny
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Brendan Fabeny freebsd_committer freebsd_triage 2013-02-14 14:10:00 UTC
Some of the linux headers were refactored recently in -CURRENT:

http://svnweb.freebsd.org/changeset/base/246085

In particular, some of the linux ioctl functions were moved to a machine-independent header.  Include this header to fix the driver when built WITH_LINUX.

Fix: Patch attached with submission follows:
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-02-14 14:10:08 UTC
Responsible Changed
From-To: freebsd-ports-bugs->danfe

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 david 2013-02-14 17:02:18 UTC
I have successfully tested bf's patch (from the PR) in FreeBSD/i386
environments.

First I built:

FreeBSD g1-227.catwhisker.org 10.0-CURRENT FreeBSD 10.0-CURRENT #811  r246784M/246788: Thu Feb 14 08:25:04 PST 2013     root@g1-227.catwhisker.org:/usr/obj/usr/src/sys/CANARY  i386

As I rebuild the nVidia kernel module when I rebuild the kernel, the
process tested the patch.  A subsequent reboot verified that I was (still)
able to use the nVidia driver in that environment.


I then booted the machine from the stable/9 slice that I had updated to:

FreeBSD g1-227.catwhisker.org 9.1-STABLE FreeBSD 9.1-STABLE #375  r246786M/246788: Thu Feb 14 04:33:20 PST 2013     root@g1-227.catwhisker.org:/usr/obj/usr/src/sys/CANARY  i386

before applying the patch.  I then ran:

	portmaster x11/nvidia-driver

(using the patched port), then (for good measure) rebooted, and again
verified that I was able to use the nVidia driver in that environment.


Once r246085 is MFCed, the patch will need some modification as it
presently stands.

Peace,
david
-- 
David H. Wolfskill				david@catwhisker.org
Taliban: Evil men with guns afraid of truth from a 14-year old girl.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.
Comment 3 dfilter service freebsd_committer freebsd_triage 2013-02-16 14:09:27 UTC
Author: danfe
Date: Sat Feb 16 14:09:17 2013
New Revision: 312352
URL: http://svnweb.freebsd.org/changeset/ports/312352

Log:
  - Update mainstream driver version to 310.32, the latest to date
  - Unbreak the build on recent -CURRENT (after SVN r246085) [*]
  - Move 304.xx driver version to yet another legacy port
  
  PR:		ports/176146 [*]
  Submitted by:	bf

Added:
  head/x11/nvidia-driver-304/
  head/x11/nvidia-driver-304/Makefile   (contents, props changed)
  head/x11/nvidia-driver/files/r246085-patch-src-nvidia_linux.c   (contents, props changed)
Modified:
  head/x11/Makefile
  head/x11/nvidia-driver/Makefile
  head/x11/nvidia-driver/distinfo

Modified: head/x11/Makefile
==============================================================================
--- head/x11/Makefile	Sat Feb 16 13:30:41 2013	(r312351)
+++ head/x11/Makefile	Sat Feb 16 14:09:17 2013	(r312352)
@@ -211,6 +211,7 @@
     SUBDIR += numlockx
     SUBDIR += nvidia-driver
     SUBDIR += nvidia-driver-173
+    SUBDIR += nvidia-driver-304
     SUBDIR += nvidia-driver-71
     SUBDIR += nvidia-driver-96
     SUBDIR += nvidia-settings

Added: head/x11/nvidia-driver-304/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/nvidia-driver-304/Makefile	Sat Feb 16 14:09:17 2013	(r312352)
@@ -0,0 +1,11 @@
+# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
+# $FreeBSD$
+
+DISTVERSION=	304.64
+# Explicitly set PORTREVISION as it can be overridden by the master port
+PORTREVISION=	0
+
+MASTERDIR=	${.CURDIR}/../nvidia-driver
+NO_LATEST_LINK=	yes
+
+.include "${MASTERDIR}/Makefile"

Modified: head/x11/nvidia-driver/Makefile
==============================================================================
--- head/x11/nvidia-driver/Makefile	Sat Feb 16 13:30:41 2013	(r312351)
+++ head/x11/nvidia-driver/Makefile	Sat Feb 16 14:09:17 2013	(r312352)
@@ -8,7 +8,7 @@
 # slave ports.
 
 PORTNAME=	nvidia-driver
-DISTVERSION?=	304.64
+DISTVERSION?=	310.32
 # Always try to set PORTREVISION as can be overridden by the slave ports
 PORTREVISION?=	0
 CATEGORIES=	x11 kld
@@ -32,7 +32,7 @@ USE_LDCONFIG=	yes
 # NVIDIA_ROOT is not set in src/Makefile, which results in bogus -I/src
 # passed to compiler and broken build on HEAD since r221320 when option
 # -Wmissing-include-dirs was added for kernel sources.  Until properly
-# fixed upstream across all versions (including legacy ones), use this
+# fixed upstream (across all versions, including legacy ones), use this
 # hack below to universally set NVIDIA_ROOT.  Also provide X11BASE value
 # since it is going away from `Mk/bsd.port.mk' as deprecated.
 MAKE_ENV=	NVIDIA_ROOT=${WRKSRC} X11BASE=${LOCALBASE}
@@ -88,6 +88,9 @@ PLIST_SUB+=	LINUXBASE=${LINUXBASE} SHLIB
 CONFLICTS=	linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
 USE_LINUX=	yes
 PLIST_SUB+=	LINUX=""
+. if ${OSVERSION} > 1000026
+EXTRA_PATCHES+=	${FILESDIR}/r246085-patch-src-nvidia_linux.c
+. endif
 .else
 PLIST_SUB+=	LINUX="@comment "
 # Propagate WITHOUT_LINUX variable down to inner Makefiles
@@ -190,8 +193,11 @@ post-install: .SILENT
 	${REINPLACE_CMD} -E 's/libGLcore/libnvidia-glcore/ ; \
 		/usr.*(glcore|tls).*so\.1$$/d' ${TMPPLIST}
 .endif
-# Some applications need this symlink (see PR ports/72877)
+.if ${NVVERSION} >= 3101900
+	${REINPLACE_CMD} -e '/libXvMCNVIDIA/d' ${TMPPLIST}
+.else	# some applications need this symlink (see PR ports/72877)
 	${LN} -sf libXvMCNVIDIA.so.1 ${PREFIX}/lib/libXvMCNVIDIA_dynamic.so.1
+.endif
 .if ${NVVERSION} >= 1952200
 . if ${OSVERSION} > 800090
 	${REINPLACE_CMD} -e '/does not support PAE/,+1d' ${PKGMESSAGE}

Modified: head/x11/nvidia-driver/distinfo
==============================================================================
--- head/x11/nvidia-driver/distinfo	Sat Feb 16 13:30:41 2013	(r312351)
+++ head/x11/nvidia-driver/distinfo	Sat Feb 16 14:09:17 2013	(r312352)
@@ -1,3 +1,7 @@
+SHA256 (NVIDIA-FreeBSD-x86_64-310.32.tar.gz) = f0935abf74a1298471a5eb0ede56ab913e358b76935557d618915a97efda9224
+SIZE (NVIDIA-FreeBSD-x86_64-310.32.tar.gz) = 33511666
+SHA256 (NVIDIA-FreeBSD-x86-310.32.tar.gz) = 3f00f5a13dc04f51b2a1b000ad53741ac6b81bd6e70258e7b9f200daf8f52b2d
+SIZE (NVIDIA-FreeBSD-x86-310.32.tar.gz) = 32541283
 SHA256 (NVIDIA-FreeBSD-x86_64-304.64.tar.gz) = 9887e4147fcb16141dcb6b153ff71a28c73cf2a4c16b60e4c6fcb8586a1c5400
 SIZE (NVIDIA-FreeBSD-x86_64-304.64.tar.gz) = 34247065
 SHA256 (NVIDIA-FreeBSD-x86-304.64.tar.gz) = e129d0d0e8d256d6328cddc4c18edb96c1e444c354f7c806ece4192621a1c1b5

Added: head/x11/nvidia-driver/files/r246085-patch-src-nvidia_linux.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/nvidia-driver/files/r246085-patch-src-nvidia_linux.c	Sat Feb 16 14:09:17 2013	(r312352)
@@ -0,0 +1,14 @@
+--- src/nvidia_linux.c.orig	2012-10-30 13:54:06.000000000 -0400
++++ src/nvidia_linux.c	2013-02-13 19:48:17.000000000 -0500
+@@ -21,9 +21,11 @@
+ #if defined(NVCPU_X86)
+ #include "machine/../linux/linux.h"
+ #include "machine/../linux/linux_proto.h"
++#include "machine/../../compat/linux/linux_ioctl.h"
+ #elif defined(NVCPU_X86_64)
+ #include "machine/../linux32/linux.h"
+ #include "machine/../linux32/linux32_proto.h"
++#include "machine/../../compat/linux/linux_ioctl.h"
+ #endif
+ 
+ int linux_ioctl_nvidia(d_thread_t *, struct linux_ioctl_args *);
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 4 Alexey Dokuchaev freebsd_committer freebsd_triage 2013-02-16 15:04:51 UTC
State Changed
From-To: open->closed

Should be fixed as of SVN r312352, thanks!