aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authordbn <dbn@FreeBSD.org>2014-12-27 02:52:16 +0800
committerdbn <dbn@FreeBSD.org>2014-12-27 02:52:16 +0800
commit39fdee6ae755865def7e6a706bd097b00fbc7a39 (patch)
tree9dedc783ccc883fe65a8579015308e80688a0153 /emulators
parent20dea88391db366212136becefa2e53ba0642205 (diff)
downloadfreebsd-ports-graphics-39fdee6ae755865def7e6a706bd097b00fbc7a39.tar.gz
freebsd-ports-graphics-39fdee6ae755865def7e6a706bd097b00fbc7a39.tar.zst
freebsd-ports-graphics-39fdee6ae755865def7e6a706bd097b00fbc7a39.zip
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]
Diffstat (limited to 'emulators')
-rw-r--r--emulators/i386-wine/Makefile.i38644
-rw-r--r--emulators/i386-wine/files/binbounce3
-rw-r--r--emulators/i386-wine/files/nvidia.sh14
-rw-r--r--emulators/wine/Makefile5
4 files changed, 41 insertions, 25 deletions
diff --git a/emulators/i386-wine/Makefile.i386 b/emulators/i386-wine/Makefile.i386
index 12522fbf8c7..e62ef27b8d7 100644
--- a/emulators/i386-wine/Makefile.i386
+++ b/emulators/i386-wine/Makefile.i386
@@ -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}
diff --git a/emulators/i386-wine/files/binbounce b/emulators/i386-wine/files/binbounce
index ed7564cf488..6f950fa4155 100644
--- a/emulators/i386-wine/files/binbounce
+++ b/emulators/i386-wine/files/binbounce
@@ -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" "$@"
diff --git a/emulators/i386-wine/files/nvidia.sh b/emulators/i386-wine/files/nvidia.sh
index 0f5c572f735..77bc58d8461 100644
--- a/emulators/i386-wine/files/nvidia.sh
+++ b/emulators/i386-wine/files/nvidia.sh
@@ -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 with x11/nvidia-driver:"
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..."
diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile
index 8044037c1d5..59b3adbcf1c 100644
--- a/emulators/wine/Makefile
+++ b/emulators/wine/Makefile
@@ -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