Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Dec 2014 18:52:17 +0000 (UTC)
From:      David Naylor <dbn@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r375648 - in head/emulators: i386-wine i386-wine/files wine
Message-ID:  <201412261852.sBQIqHiQ062499@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dbn
Date: Fri Dec 26 18:52:16 2014
New Revision: 375648
URL: https://svnweb.freebsd.org/changeset/ports/375648
QAT: https://qat.redports.org/buildarchive/r375648/

Log:
  Backport changes from emulators/i386-wine-devel to emulators/i386-wine.
  
  Changes:
   - Fix install conflicts [1] (for the "newly" added compholio port)
   - nvidia.sh: Gracefully handle a corrupt nVidia tarball
   - nvidia.sh: Provide checksum and size information for nVidia tarball
   - Reduce diff between i386-wine and i386-wine-devel:
     - Add support for sub-ports (unused by this port)
     - Properly detect linked (and dlopen) libraries
     - binbounce: Properly set LD_(32_)?LIBRARY_PATH_RPATH variables
     - nvidia.sh: Add detection for i386-wine-compholio
   - Bump master port [1] due to changes to binbounce, nvidia.sh and shared
     library handling.
  
  Approved by:    gerald@ [1]

Modified:
  head/emulators/i386-wine/Makefile.i386
  head/emulators/i386-wine/files/binbounce
  head/emulators/i386-wine/files/nvidia.sh
  head/emulators/wine/Makefile

Modified: head/emulators/i386-wine/Makefile.i386
==============================================================================
--- head/emulators/i386-wine/Makefile.i386	Fri Dec 26 18:45:52 2014	(r375647)
+++ head/emulators/i386-wine/Makefile.i386	Fri Dec 26 18:52:16 2014	(r375648)
@@ -4,16 +4,18 @@
 PKGNAMEPREFIX=	i386-
 
 MAINTAINER=	dbn@FreeBSD.org
-COMMENT=	32bit Microsoft Windows compatibility environment for 64bit FreeBSD
+COMMENT?=	32bit Microsoft Windows compatibility environment for 64bit FreeBSD
 
 # Use the wine port to do most of the heavy lifting
-MASTERDIR=	${.CURDIR}/../wine
-PKGINSTALL=	${.CURDIR}/files/pkg-install
+SLAVEDIR?=	${.CURDIR}
+MASTERDIR=	${SLAVEDIR}/../wine
+PKGINSTALL=	${SLAVEDIR}/files/pkg-install
 PKGDEINSTALL=	${PKGINSTALL}
 
 RUN_DEPENDS=	dri>0:${PORTSDIR}/graphics/dri
 
-CONFLICTS_INSTALL=	i386-wine-devel-[0-9]* wine-[0-9]* wine-devel-[0-9]*
+CONFLICTS_INSTALL?=	wine-[0-9]* wine-compholio-[0-9]* wine-devel-[0-9]* \
+			i386-wine-compholio-[0-9]* i386-wine-devel-[0-9]*
 
 ACTUAL-PACKAGE-DEPENDS=	${DO_NADA}
 WINELIBDIR=	${PREFIX}/lib32
@@ -33,17 +35,30 @@ post-install-script:
 	# Fix pkg-plist references
 	${REINPLACE_CMD} -e 's!lib/!lib32/!g' ${TMPPLIST}
 	# Install bounce script to access the 32bit executables
-	${INSTALL_SCRIPT} ${.CURDIR}/files/binbounce ${STAGEDIR}${PREFIX}/bin/wine
+	${INSTALL_SCRIPT} ${SLAVEDIR}/files/binbounce ${STAGEDIR}${PREFIX}/bin/wine
 	for i in `grep ^bin ${TMPPLIST} | xargs -n1 basename` ; do \
 		[ "$${i}" = "wine" ] || ${LN} -f ${STAGEDIR}${PREFIX}/bin/wine ${STAGEDIR}${PREFIX}/bin/$${i} ; \
 		echo bin32/$${i} >> ${TMPPLIST} ; \
 	done
-	# Install dri libraries (internal libGL requirements)
+	# Install libGL
 	${MKDIR} ${STAGEDIR}${PREFIX}/lib32/.libGL/dri
+	${INSTALL_DATA} ${LOCALBASE}/lib/libGL.so.1 ${STAGEDIR}${PREFIX}/lib32/.libGL/	
+	echo lib32/.libGL/libGL.so.1 >> ${TMPPLIST}
+	# Install dri libraries (internal libGL requirements)
 	for i in ${LOCALBASE}/lib/dri/*.so; do \
 		${INSTALL_DATA} $${i} ${STAGEDIR}${PREFIX}/lib32/.libGL/dri/ ; \
 		echo lib32/.libGL/dri/$${i##*/} >> ${TMPPLIST} ; \
 	done
+	# Find all soft dependencies (via strings(1))
+	grep -v '[@%]' ${TMPPLIST} | sed "s!^!${STAGEDIR}${PREFIX}/!g" | \
+	xargs -n1 file -F' ' | grep ELF | cut -f1 -d' ' | xargs strings | \
+	grep '^lib.*\.so' | sort -u > ${WRKDIR}/winesoftlibs
+	for i in `cat ${WRKDIR}/winesoftlibs` ; do \
+		if [ -e ${LOCALBASE}/lib/$${i} ] && [ -z "`grep $${i} ${TMPPLIST}`" ]; then \
+			${INSTALL_DATA} ${LOCALBASE}/lib/$${i} ${STAGEDIR}${PREFIX}/lib32/ ; \
+			echo lib32/$${i} >> ${TMPPLIST} ; \
+		fi ; \
+	done
 	# Find all libraries that are linked too (via ldd(1))
 	grep -v '[@%]' ${TMPPLIST} | sed "s!^!${STAGEDIR}${PREFIX}/!g" | \
 	xargs -n1 file -F' ' | grep ELF | cut -f1 -d' ' | \
@@ -51,22 +66,9 @@ post-install-script:
 	| sort -u | grep -v '^\(/usr\)\?/lib' | grep -v "^${STAGEDIR}${PREFIX}/lib32/libwine.so" \
 	| grep -v "^${STAGEDIR}${PREFIX}/lib32/wine" > ${WRKDIR}/winelibs
 	for i in `cat ${WRKDIR}/winelibs` ; do \
-		if [ `basename $${i}` != libGL.so.1 ]; then \
+		if [ -z "`grep $${i##*/} ${TMPPLIST}`" ]; then \
 			${INSTALL_DATA} $${i} ${STAGEDIR}${PREFIX}/lib32/ ; \
 			echo lib32/$${i##*/} >> ${TMPPLIST} ; \
-		else \
-			${INSTALL_DATA} $${i} ${STAGEDIR}${PREFIX}/lib32/.libGL/ ; \
-			echo lib32/.libGL/libGL.so.1 >> ${TMPPLIST} ; \
-		fi ; \
-	done
-	# Find all soft dependancies (via strings(1))
-	grep -v '[@%]' ${TMPPLIST} | sed "s!^!${STAGEDIR}${PREFIX}/!g" | \
-	xargs -n1 file -F' ' | grep ELF | cut -f1 -d' ' | xargs strings | \
-	grep '^lib.*\.so' | sort -u > ${WRKDIR}/winesoftlibs
-	for i in `cat ${WRKDIR}/winesoftlibs` ; do \
-		if [ -e ${LOCALBASE}/lib/$${i} ] && [ -z "`grep $${i} ${TMPPLIST}`" ] ; then \
-			${INSTALL_DATA} ${LOCALBASE}/lib/$${i} ${STAGEDIR}${PREFIX}/lib32/ ; \
-			echo lib32/$${i} >> ${TMPPLIST} ; \
 		fi ; \
 	done
 	echo '@dirrm lib32/.libGL/dri' >> ${TMPPLIST}
@@ -74,7 +76,7 @@ post-install-script:
 	echo '@dirrmtry lib32' >> ${TMPPLIST}; \
 	echo '@dirrm bin32' >> ${TMPPLIST}
 	# Install nvidia patching script
-	${INSTALL_SCRIPT} ${.CURDIR}/files/nvidia.sh ${STAGEDIR}${DATADIR}/patch-nvidia.sh
+	${INSTALL_SCRIPT} ${SLAVEDIR}/files/nvidia.sh ${STAGEDIR}${DATADIR}/patch-nvidia.sh
 	echo ${DATADIR:S|$(PREFIX)/||}/patch-nvidia.sh >> ${TMPPLIST}
 	@${CAT} ${PKGMESSAGE}
 

Modified: head/emulators/i386-wine/files/binbounce
==============================================================================
--- head/emulators/i386-wine/files/binbounce	Fri Dec 26 18:45:52 2014	(r375647)
+++ head/emulators/i386-wine/files/binbounce	Fri Dec 26 18:52:16 2014	(r375648)
@@ -11,10 +11,13 @@ then
   if [ `uname -p` = i386 ]
   then
     export LD_LIBRARY_PATH="$LOCALBASE/lib32":"$LOCALBASE/lib32/wine":"$LD_LIBRARY_PATH"
+    export LD_LIBRARY_PATH_RPATH=y
   else
     export LD_32_LIBRARY_PATH="$LOCALBASE/lib32":"$LOCALBASE/lib32/wine":"$LD_32_LIBRARY_PATH":/usr/lib32
+    export LD_32_LIBRARY_PATH_RPATH=y
   fi
   export PATH="$LOCALBASE/bin32":"$PATH"
+  export __BINBOUNCE_BOOTSTRAP="1"
 fi
 
 exec "$LOCALBASE/bin32/$BINNAME" "$@"

Modified: head/emulators/i386-wine/files/nvidia.sh
==============================================================================
--- head/emulators/i386-wine/files/nvidia.sh	Fri Dec 26 18:45:52 2014	(r375647)
+++ head/emulators/i386-wine/files/nvidia.sh	Fri Dec 26 18:52:16 2014	(r375648)
@@ -63,6 +63,11 @@
 #  - add deinstall option
 # Version 1.12 - 2013/11/03
 #  - add detection for i386-wine-devel
+# Version 1.13 - 2014/08/05
+#  - add detection for i386-wine-compholio
+# Version 1.14 - 2014/12/26
+#  - gracefully handle a corrupt nVidia tarball
+#  - provide checksum and size information for nVidia tarball
 
 set -e
 
@@ -147,7 +152,7 @@ echo "===> Patching i386-wine to work wi
 
 if [ -z "${WINE}" ]
 then
-  WINE=`version i386-wine; version i386-wine-devel`
+  WINE=`version i386-wine; version i386-wine-devel; version i386-wine-compholio`
 fi
 [ -n "$WINE" ] \
   || terminate 255 "Unable to detect i386-wine, please install first"
@@ -161,13 +166,18 @@ echo "=> Detected nvidia-driver: ${NV}"
 NVIDIA=${NV}
 NV=`echo ${NV} | cut -f 1 -d _ | cut -f 1 -d ,`
 
-if [ ! -f NVIDIA-FreeBSD-x86-${NV}.tar.gz ]
+if [ ! -f NVIDIA-FreeBSD-x86-${NV}.tar.gz ] || !(tar -tf NVIDIA-FreeBSD-x86-${NV}.tar.gz > /dev/null 2>&1)
 then
   [ -n "$NO_FETCH" ] \
     && terminate 8 "NVIDIA-FreeBSD-x86-${NV}.tar.gz unavailable"
   echo "=> Downloading NVIDIA-FreeBSD-x86-${NV}.tar.gz from ftp://download.nvidia.com..."
+  rm -f NVIDIA-FreeBSD-x86-${NV}.tar.gz
   fetch -apRr ftp://download.nvidia.com/XFree86/FreeBSD-x86/${NV}/NVIDIA-FreeBSD-x86-${NV}.tar.gz \
     || terminate 2 "Failed to download NVIDIA-FreeBSD-x86-${NV}.tar.gz"
+  echo "=> Downloaded NVIDIA-FreeBSD-x86-${NV}.tar.gz"
+  echo "Please check the following information against /usr/ports/x11/nvidia-driver/distinfo"
+  sha256 NVIDIA-FreeBSD-x86-${NV}.tar.gz
+  echo "SIZE (NVIDIA-FreeBSD-x86-${NV}.tar.gz) = `stat -f "%z" NVIDIA-FreeBSD-x86-${NV}.tar.gz`"
 fi
 
 echo "=> Extracting NVIDIA-FreeBSD-x86-${NV}.tar.gz to $PREFIX/lib32..."

Modified: head/emulators/wine/Makefile
==============================================================================
--- head/emulators/wine/Makefile	Fri Dec 26 18:45:52 2014	(r375647)
+++ head/emulators/wine/Makefile	Fri Dec 26 18:52:16 2014	(r375648)
@@ -3,7 +3,7 @@
 
 PORTNAME=	wine
 DISTVERSION=	1.6.2
-PORTREVISION=	8
+PORTREVISION=	9
 PORTEPOCH=	1
 CATEGORIES=	emulators
 MASTER_SITES=	SF/${PORTNAME}/Source \
@@ -19,7 +19,8 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 BUILD_DEPENDS=	${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex
 LIB_DEPENDS=	libxml2.so:${PORTSDIR}/textproc/libxml2
 
-CONFLICTS_INSTALL=	i386-wine-[0-9]* i386-wine-devel-[0-9]* wine-devel-[0-9]*
+CONFLICTS_INSTALL=	wine-compholio-[0-9]* wine-devel-[0-9]* i386-wine-[0-9]* \
+			i386-wine-compholio-[0-9]* i386-wine-devel-[0-9]*
 
 CPPFLAGS+=	-I${LOCALBASE}/include
 LDFLAGS+=	-L${LOCALBASE}/lib



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201412261852.sBQIqHiQ062499>