diff options
author | kwm <kwm@FreeBSD.org> | 2012-08-31 23:44:41 +0800 |
---|---|---|
committer | kwm <kwm@FreeBSD.org> | 2012-08-31 23:44:41 +0800 |
commit | 5fb75889ff78049c1801014ae2d2eb32fb4d68cb (patch) | |
tree | c01d4117663fc9a9ef270f7ff40505d240224275 /x11 | |
parent | 2db20fbac3f6c934dc2fb1dcd8c2a9c6d38da27c (diff) | |
download | freebsd-ports-gnome-5fb75889ff78049c1801014ae2d2eb32fb4d68cb.tar.gz freebsd-ports-gnome-5fb75889ff78049c1801014ae2d2eb32fb4d68cb.tar.zst freebsd-ports-gnome-5fb75889ff78049c1801014ae2d2eb32fb4d68cb.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@
Diffstat (limited to 'x11')
-rw-r--r-- | x11/nvidia-driver-173/Makefile | 2 | ||||
-rw-r--r-- | x11/nvidia-driver-71/Makefile | 1 | ||||
-rw-r--r-- | x11/nvidia-driver-96/Makefile | 1 | ||||
-rw-r--r-- | x11/nvidia-driver/Makefile | 19 | ||||
-rw-r--r-- | x11/nvidia-driver/files/pkg-deinstall.in | 18 | ||||
-rw-r--r-- | x11/nvidia-driver/files/pkg-install.in | 15 | ||||
-rw-r--r-- | x11/nvidia-driver/pkg-plist | 16 |
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 |