aboutsummaryrefslogtreecommitdiff
path: root/x11
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2012-08-31 15:44:41 +0000
committerKoop Mast <kwm@FreeBSD.org>2012-08-31 15:44:41 +0000
commit04a589dee461871aebdce14781d985b295d8d0cb (patch)
treec01d4117663fc9a9ef270f7ff40505d240224275 /x11
parentbc4796d9ea1c5ddcea599c30f5037d989fe18c26 (diff)
downloadports-04a589dee461871aebdce14781d985b295d8d0cb.tar.gz
ports-04a589dee461871aebdce14781d985b295d8d0cb.zip
Solve libGL.so and libglx.so conflict situation between libGL, xorg-server and
the nvidia-driver. Install the libraries in port specific directories. Use pkg-install and pkg-deinstall scripts to update the hardlinks to the default locations of these files. While here clean up some @dirrmtry lines in xorg-server plist for directories that aren.t created by xorg-server. Motivator: pkgng Inspiration: irc, freebsd-x11@ mailinglist discussion (sorry can't find it anymore to give credit the people) Reviewed by: danfe@ (for nvidia parts), bapt@ Approved by: danfe@ (for nvidia parts) With hat: x11@
Notes
Notes: svn path=/head/; revision=303429
Diffstat (limited to 'x11')
-rw-r--r--x11/nvidia-driver-173/Makefile2
-rw-r--r--x11/nvidia-driver-71/Makefile1
-rw-r--r--x11/nvidia-driver-96/Makefile1
-rw-r--r--x11/nvidia-driver/Makefile19
-rw-r--r--x11/nvidia-driver/files/pkg-deinstall.in18
-rw-r--r--x11/nvidia-driver/files/pkg-install.in15
-rw-r--r--x11/nvidia-driver/pkg-plist16
7 files changed, 54 insertions, 18 deletions
diff --git a/x11/nvidia-driver-173/Makefile b/x11/nvidia-driver-173/Makefile
index 3bf2ef5c32cb..7a70a09b72d9 100644
--- a/x11/nvidia-driver-173/Makefile
+++ b/x11/nvidia-driver-173/Makefile
@@ -6,7 +6,7 @@
#
DISTVERSION= 173.14.31
-PORTREVISION= 1
+PORTREVISION= 2
MASTERDIR= ${.CURDIR}/../nvidia-driver
NO_LATEST_LINK= yes
diff --git a/x11/nvidia-driver-71/Makefile b/x11/nvidia-driver-71/Makefile
index 328ae52a8026..90b383f68da7 100644
--- a/x11/nvidia-driver-71/Makefile
+++ b/x11/nvidia-driver-71/Makefile
@@ -6,6 +6,7 @@
#
DISTVERSION= 71.86.15
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-driver
NO_LATEST_LINK= yes
diff --git a/x11/nvidia-driver-96/Makefile b/x11/nvidia-driver-96/Makefile
index e68f1209c503..624016b54e6a 100644
--- a/x11/nvidia-driver-96/Makefile
+++ b/x11/nvidia-driver-96/Makefile
@@ -6,6 +6,7 @@
#
DISTVERSION= 96.43.20
+PORTREVISION= 1
MASTERDIR= ${.CURDIR}/../nvidia-driver
NO_LATEST_LINK= yes
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
index 50fcb02852e2..5a1ff2c0910a 100644
--- a/x11/nvidia-driver/Makefile
+++ b/x11/nvidia-driver/Makefile
@@ -7,7 +7,7 @@
PORTNAME= nvidia-driver
DISTVERSION?= 295.71
-PORTREVISION?= 0 # As a reminder it can be overridden
+PORTREVISION?= 1 # As a reminder it can be overridden
CATEGORIES= x11 kld
MASTER_SITES= ${MASTER_SITE_NVIDIA}
# MASTER_SITE_SUBDIR has to be set later because it depends on NVVERSION
@@ -33,7 +33,7 @@ USE_LDCONFIG= yes
# 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}
-SUB_FILES= pkg-message
+SUB_FILES= pkg-deinstall pkg-install pkg-message
DOCSDIR= ${PREFIX}/share/doc/NVIDIA_GLX-1.0
MODULESDIR= lib/xorg/modules
PORTDOCS= *
@@ -72,11 +72,7 @@ OPTIONS+= WBINVD "Enable heavy-weight cache-flush logic" off
.include <bsd.port.pre.mk>
-XSERVVERSION!= ${PKG_INFO} -qO x11-servers/xorg-server 2>/dev/null || true
-LIBGLVERSION!= ${PKG_INFO} -qO graphics/libGL 2>/dev/null || true
-
-PLIST_SUB+= XSERVVERSION=${XSERVVERSION} LIBGLVERSION=${LIBGLVERSION} \
- LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
+PLIST_SUB+= LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
MODULESDIR=${MODULESDIR}
.if !defined(WITHOUT_LINUX)
@@ -148,8 +144,16 @@ post-patch: .SILENT
.if defined(NOPORTDOCS)
${REINPLACE_CMD} -E 's/(x11).*/\1/ ; /doc/d' ${WRKSRC}/Makefile
.endif
+# Adjust installation paths of some conflicting files (shared also between
+# libGL and xorg-server) to ease package manager work, esp. with pkgng
+ ${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia:' \
+ ${WRKSRC}/x11/extension/Makefile
+ ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \
+ ${WRKSRC}/lib/libGL/Makefile
# Do not execute afterinstall target (prevent automatic module registration)
${REINPLACE_CMD} -e 's/afterinstall/dontexecute/' ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} -e 's/beforeinstall/dontexecute/' \
+ ${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile
pre-su-install:
# While this port silently assumes PREFIX == LOCALBASE, at least try to
@@ -184,6 +188,7 @@ post-install: .SILENT
${REINPLACE_CMD} -e '26,27d' ${PKGMESSAGE}
. endif
.endif
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
${ECHO_MSG}
${CAT} ${PKGMESSAGE}
${ECHO_MSG}
diff --git a/x11/nvidia-driver/files/pkg-deinstall.in b/x11/nvidia-driver/files/pkg-deinstall.in
new file mode 100644
index 000000000000..c97aca680b0f
--- /dev/null
+++ b/x11/nvidia-driver/files/pkg-deinstall.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+DEINSTALL)
+ /bin/rm -f ${PREFIX}/lib/libGL.so*
+ /bin/rm -f ${PREFIX}/lib/xorg/modules/extensions/libglx.so*
+
+ /bin/ln -f ${PREFIX}/lib/.libGL/libGL.so.1 ${PREFIX}/lib/libGL.so
+ /bin/ln -f ${PREFIX}/lib/.libGL/libGL.so.1 ${PREFIX}/lib/libGL.so.1
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/.xorg/libglx.so \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so
+ ;;
+esac
diff --git a/x11/nvidia-driver/files/pkg-install.in b/x11/nvidia-driver/files/pkg-install.in
new file mode 100644
index 000000000000..b646cac2e04b
--- /dev/null
+++ b/x11/nvidia-driver/files/pkg-install.in
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+POST-INSTALL)
+ /bin/ln -f ${PREFIX}/lib/.nvidia/libGL.so.1 ${PREFIX}/lib/libGL.so
+ /bin/ln -f ${PREFIX}/lib/.nvidia/libGL.so.1 ${PREFIX}/lib/libGL.so.1
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/.nvidia/libglx.so.1 \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so
+ ;;
+esac
diff --git a/x11/nvidia-driver/pkg-plist b/x11/nvidia-driver/pkg-plist
index f4764ce8ef78..46d2edb5640f 100644
--- a/x11/nvidia-driver/pkg-plist
+++ b/x11/nvidia-driver/pkg-plist
@@ -1,11 +1,6 @@
-@exec mv -f %D/%%MODULESDIR%%/extensions/libglx.la %D/%%MODULESDIR%%/extensions/XXX-libglx.la.%%%%.%%XSERVVERSION%%
-@unexec mv -f %D/%%MODULESDIR%%/extensions/XXX-libglx.la.%%%%.%%XSERVVERSION%% %D/%%MODULESDIR%%/extensions/libglx.la
-@exec mv -f %D/%%MODULESDIR%%/extensions/libglx.so %D/%%MODULESDIR%%/extensions/XXX-libglx.so.%%%%.%%XSERVVERSION%%
-%%MODULESDIR%%/extensions/libglx.so
-@unexec mv -f %D/%%MODULESDIR%%/extensions/XXX-libglx.so.%%%%.%%XSERVVERSION%% %D/%%MODULESDIR%%/extensions/libglx.so
-@exec mv -f %D/lib/libGL.so.1 %D/lib/XXX-libGL.so.1.%%%%.%%LIBGLVERSION%%
-lib/libGL.so.1
-@unexec mv -f %D/lib/XXX-libGL.so.1.%%%%.%%LIBGLVERSION%% %D/lib/libGL.so.1
+lib/.nvidia/libGL.so
+lib/.nvidia/libGL.so.1
+@dirrm lib/.nvidia
lib/libnvidia-tls.so.1
lib/libnvidia-tls.so
lib/libnvidia-cfg.so.1
@@ -21,8 +16,9 @@ lib/libXvMCNVIDIA_dynamic.so.1
@dirrmtry lib/vdpau
%%MODULESDIR%%/libnvidia-wfb.so.1
%%MODULESDIR%%/drivers/nvidia_drv.so
-%%MODULESDIR%%/extensions/libglx.so.1
-@exec ln -sf libglx.so.1 %D/%%MODULESDIR%%/extensions/libglx.so
+%%MODULESDIR%%/extensions/.nvidia/libglx.so
+%%MODULESDIR%%/extensions/.nvidia/libglx.so.1
+@dirrm %%MODULESDIR%%/extensions/.nvidia
@dirrmtry %%MODULESDIR%%/drivers
@cwd /boot/modules
nvidia.ko