emulators/i386-wine: Update to 5.0
Update to 5.0 and forward emulators/wine-devel improvements from revisions r528784, r533164 and r533267. In particular, fix bug #244547. PR: 244547, 244368 Approved by: gerald (mentor) Differential Revision: https://reviews.freebsd.org/D24631
This commit is contained in:
parent
827d3f086e
commit
8962cd391c
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=533808
@ -17,4 +17,20 @@ COMMENT= 32-bit Microsoft Windows compatibility environment for 64-bit FreeBSD
|
||||
|
||||
ONLY_FOR_ARCHS= i386 amd64
|
||||
|
||||
CONFLICTS_INSTALL= wine-[0-9]* wine-devel-[0-9]* i386-wine-devel-[0-9]*
|
||||
|
||||
PKGINSTALL= ${.CURDIR}/files/pkg-install
|
||||
PKGDEINSTALL= ${PKGINSTALL}
|
||||
|
||||
distinfo-update:
|
||||
${RM} ${.CURDIR}/distinfo ${.CURDIR}/distinfo~
|
||||
.for osrel in 11 12 13
|
||||
${MAKE} fetch OSREL=${osrel} OSVERSION=${osrel}99999 _OSRELEASE=${osrel}
|
||||
${MAKE} makesum OSREL=${osrel} OSVERSION=${osrel}99999 _OSRELEASE=${osrel}
|
||||
${CAT} ${.CURDIR}/distinfo >> ${.CURDIR}/distinfo~
|
||||
${RM} ${.CURDIR}/distinfo
|
||||
.endfor
|
||||
${SED} -e '2,$${' -e '/^TIMESTAMP/d' -e '}' distinfo~ > ${.CURDIR}/distinfo
|
||||
${RM} ${.CURDIR}/distinfo~
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,57 +1,49 @@
|
||||
# Created by: David Naylor <dbn@FreeBSD.org>
|
||||
# $FreeBSD$
|
||||
|
||||
DISTVERSION= 3.0.4
|
||||
PORTREVISION= 1
|
||||
DISTVERSION= 5.0
|
||||
PORTEPOCH= 1
|
||||
MASTER_SITES= LOCAL/dbn/repos/wine/${DIST_SUBDIR}/
|
||||
MASTER_SITES= LOCAL/salvadore/i386-wine/${DIST_SUBDIR}/
|
||||
DISTNAME= ${PKGNAME}
|
||||
EXTRACT_SUFX= .txz
|
||||
DIST_SUBDIR= freebsd:${OSREL:C/\..*//}:x86:64
|
||||
DIST_SUBDIR= FreeBSD:${OSREL:C/\..*//}:amd64
|
||||
|
||||
LICENSE= LGPL21 LGPL3
|
||||
LICENSE_COMB= dual
|
||||
LICENSE_FILE= ${WRKDIR}/LICENSE
|
||||
|
||||
OPTIONS_DEFINE= GECKO MONO
|
||||
GECKO_DESC= Bundle Gecko MSI package for Wine
|
||||
MONO_DESC= Bundle Mono MSI package for Wine
|
||||
|
||||
CONFLICTS_INSTALL?= wine-[0-9]* wine-staging-[0-9]* wine-devel-[0-9]* \
|
||||
i386-wine-staging-[0-9]* i386-wine-devel-[0-9]*
|
||||
|
||||
EXTRACT_AFTER_ARGS= -C / --exclude +COMPACT_MANIFEST --exclude +MANIFEST \
|
||||
--exclude +MTREE_DIRS --exclude share/licenses/'*' \
|
||||
--exclude libdata/ldconfig32/${PKGNAMEPREFIX}${PORTNAME} \
|
||||
-s '|/usr/local|${STAGEDIR}${PREFIX}|gs'
|
||||
NO_BUILD= yes
|
||||
SLAVEDIR?= ${.CURDIR}
|
||||
PKGINSTALL= ${SLAVEDIR}/files/pkg-install
|
||||
PKGDEINSTALL= ${PKGINSTALL}
|
||||
PKGMESSAGE= ${WRKDIR}/pkg-message
|
||||
SUB_FILES= pkg-message
|
||||
USE_LDCONFIG32= ${PREFIX}/lib32 ${PREFIX}/lib32/wine
|
||||
USES= tar:xz
|
||||
USES= tar:txz
|
||||
BUNDLE_LIBS= yes
|
||||
|
||||
GECKO_RUN_DEPENDS= ${DATADIR}/gecko/wine-gecko-2.47.1-x86.msi:emulators/wine-gecko
|
||||
MONO_RUN_DEPENDS= ${DATADIR}/mono/wine-mono-4.9.4.msi:emulators/wine-mono
|
||||
|
||||
PKGMESSAGE= ${WRKDIR}/pkg-message
|
||||
PORTSCOUT= limitw:1,even
|
||||
|
||||
.for osrel in 11 12 13
|
||||
.if ${OSREL:C/\..*//} == ${osrel}
|
||||
PLIST_SUB+= OSREL${osrel}=""
|
||||
PLIST_SUB+= NOOSREL${osrel}="@comment "
|
||||
.else
|
||||
PLIST_SUB+= OSREL${osrel}="@comment "
|
||||
PLIST_SUB+= NOOSREL${osrel}=""
|
||||
.endif
|
||||
.endfor
|
||||
|
||||
.if ${OPSYS} != FreeBSD || (!(${OSVERSION} >= 1103000 && ${OSVERSION} < 1200000) && !(${OSVERSION} >= 1200086 && ${OSVERSION} < 1300000) && !(${OSVERSION} >= 1300003 && ${OSVERSION} < 1400000))
|
||||
IGNORE= binaries compiled for FreeBSD 11.3+, 12.0+ and -current only
|
||||
DISTFILES=
|
||||
.if ${OPSYS} != FreeBSD || (!(${OSVERSION} >= 1103000 && ${OSVERSION} < 1200000) && !(${OSVERSION} >= 1201000 && ${OSVERSION} < 1300000) && !(${OSVERSION} >= 1300084 && ${OSVERSION} < 1400000))
|
||||
IGNORE= binaries compiled for FreeBSD 11.3+, 12.1+ and 13.0-CURRENT (OSVERSION >= 1300084) only
|
||||
.endif
|
||||
|
||||
OPTIONS_DEFINE= GECKO MONO
|
||||
GECKO_DESC= Bundle Gecko MSI package for Wine
|
||||
MONO_DESC= Bundle Mono MSI package for Wine
|
||||
|
||||
GECKO_RUN_DEPENDS= ${DATADIR}/gecko/wine-gecko-2.47.1-x86.msi:emulators/wine-gecko
|
||||
MONO_RUN_DEPENDS= ${DATADIR}/mono/wine-mono-4.9.4.msi:emulators/wine-mono
|
||||
|
||||
do-extract:
|
||||
@${RM} -r ${WRKDIR}
|
||||
@${MKDIR} ${WRKDIR}
|
||||
@ -59,19 +51,3 @@ do-extract:
|
||||
|
||||
do-install:
|
||||
${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${EXTRACT_ONLY} ${EXTRACT_AFTER_ARGS}
|
||||
|
||||
${PLIST}: checksum
|
||||
${TAR} -tf ${_DISTDIR}/${EXTRACT_ONLY} ${EXTRACT_AFTER_ARGS} | ${GREP} -v '/$$\|ldconfig32' | ${SED} 's|/usr/local/||g' | sort > ${PLIST}
|
||||
|
||||
port-update:
|
||||
${RM} ${SLAVEDIR}/distinfo ${SLAVEDIR}/distinfo~ ${SLAVEDIR}/pkg-plist.*
|
||||
.for osrel in 11 12 13
|
||||
${MAKE} fetch OSREL=${osrel} OSVERSION=${osrel}99999 _OSRELEASE=${osrel}
|
||||
${MAKE} makesum OSREL=${osrel} OSVERSION=${osrel}99999 _OSRELEASE=${osrel}
|
||||
${CAT} ${SLAVEDIR}/distinfo >> ${SLAVEDIR}/distinfo~
|
||||
${RM} ${SLAVEDIR}/distinfo
|
||||
${MAKE} pkg-plist.${osrel}${suffix:tu} PLIST=pkg-plist.${osrel}${suffix:tu} OSREL=${osrel} OSVERSION=${osrel}99999 _OSRELEASE=${osrel} PKGNAMESUFFIX=${suffix}
|
||||
.endfor
|
||||
${SED} -e '2,$${' -e '/^TIMESTAMP/d' -e '}' distinfo~ > ${SLAVEDIR}/distinfo
|
||||
python ${FILESDIR}/mergeplist.py ${SLAVEDIR}/pkg-plist.* > ${PLIST}
|
||||
${RM} ${SLAVEDIR}/distinfo~ ${SLAVEDIR}/pkg-plist.*
|
||||
|
@ -2,16 +2,10 @@
|
||||
# $FreeBSD$
|
||||
|
||||
# Use the wine port to do most of the heavy lifting
|
||||
SLAVEDIR?= ${.CURDIR}
|
||||
MASTERDIR= ${SLAVEDIR}/../wine
|
||||
PKGINSTALL= ${SLAVEDIR}/files/pkg-install
|
||||
PKGDEINSTALL= ${PKGINSTALL}
|
||||
MASTERDIR= ${.CURDIR}/../wine
|
||||
|
||||
RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri
|
||||
|
||||
CONFLICTS_INSTALL?= wine-[0-9]* wine-staging-[0-9]* wine-devel-[0-9]* \
|
||||
i386-wine-staging-[0-9]* i386-wine-devel-[0-9]*
|
||||
|
||||
ACTUAL-PACKAGE-DEPENDS= ${DO_NADA}
|
||||
WINELIBDIR= ${PREFIX}/lib32
|
||||
CONFIGURE_ARGS+= --bindir=${PREFIX}/bin32 --libdir=${WINELIBDIR}
|
||||
@ -31,7 +25,7 @@ post-install-script:
|
||||
# Fix pkg-plist references
|
||||
${REINPLACE_CMD} -e 's!lib/!lib32/!g' ${TMPPLIST}
|
||||
# Install bounce script to access the 32-bit executables
|
||||
${INSTALL_SCRIPT} ${SLAVEDIR}/files/binbounce ${STAGEDIR}${PREFIX}/bin/wine
|
||||
${INSTALL_SCRIPT} ${.CURDIR}/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_CMD} bin32/$${i} >> ${TMPPLIST} ; \
|
||||
@ -68,7 +62,7 @@ post-install-script:
|
||||
fi ; \
|
||||
done
|
||||
# Install nvidia patching script
|
||||
${INSTALL_SCRIPT} ${SLAVEDIR}/files/nvidia.sh ${STAGEDIR}${DATADIR}/patch-nvidia.sh
|
||||
${INSTALL_SCRIPT} ${.CURDIR}/files/nvidia.sh ${STAGEDIR}${DATADIR}/patch-nvidia.sh
|
||||
${ECHO_CMD} ${DATADIR:S|$(PREFIX)/||}/patch-nvidia.sh >> ${TMPPLIST}
|
||||
|
||||
.include "${MASTERDIR}/Makefile"
|
||||
|
@ -1,7 +1,7 @@
|
||||
TIMESTAMP = 1544679897
|
||||
SHA256 (freebsd:11:x86:64/i386-wine-3.0.4_1,1.txz) = fa07f56635e21e510dbefc8283adf672c5c4edefbb9afa16c096cb0fe86d5986
|
||||
SIZE (freebsd:11:x86:64/i386-wine-3.0.4_1,1.txz) = 63947036
|
||||
SHA256 (freebsd:12:x86:64/i386-wine-3.0.4_1,1.txz) = 4c1ed8d80b46c8db08a4240eb119535e33b4af6e2070491da0e9a0ec21251263
|
||||
SIZE (freebsd:12:x86:64/i386-wine-3.0.4_1,1.txz) = 64474636
|
||||
SHA256 (freebsd:13:x86:64/i386-wine-3.0.4_1,1.txz) = ef59c7ad96ece30e781fc61dbe61c5c973f4d46a9bdeb556d5ffef44ce3b12e5
|
||||
SIZE (freebsd:13:x86:64/i386-wine-3.0.4_1,1.txz) = 64524548
|
||||
TIMESTAMP = 1588246565
|
||||
SHA256 (FreeBSD:11:amd64/i386-wine-5.0,1.txz) = 18967945475b8b98f21ee0f0b063b3450c30241ff8127bfd8f829cbe614176e8
|
||||
SIZE (FreeBSD:11:amd64/i386-wine-5.0,1.txz) = 71647480
|
||||
SHA256 (FreeBSD:12:amd64/i386-wine-5.0,1.txz) = a32f4c10ca4062854d47c1a2052c2872458a5d669a00bd4bb52e75f48324af1c
|
||||
SIZE (FreeBSD:12:amd64/i386-wine-5.0,1.txz) = 71924448
|
||||
SHA256 (FreeBSD:13:amd64/i386-wine-5.0,1.txz) = 0b402febf2caa60cfae326ed0f9830fb38eb74494f58bd4355db270dab7a9e43
|
||||
SIZE (FreeBSD:13:amd64/i386-wine-5.0,1.txz) = 73941832
|
||||
|
@ -1,127 +0,0 @@
|
||||
#!/usr/bin/env python2
|
||||
|
||||
import sys
|
||||
|
||||
# <recipe url="http://code.activestate.com/recipes/576694/" license="MIT">
|
||||
# added peek() method
|
||||
import collections
|
||||
|
||||
class OrderedSet(collections.MutableSet):
|
||||
|
||||
def __init__(self, iterable=None):
|
||||
self.end = end = []
|
||||
end += [None, end, end] # sentinel node for doubly linked list
|
||||
self.map = {} # key --> [key, prev, next]
|
||||
if iterable is not None:
|
||||
self |= iterable
|
||||
|
||||
def __len__(self):
|
||||
return len(self.map)
|
||||
|
||||
def __contains__(self, key):
|
||||
return key in self.map
|
||||
|
||||
def add(self, key):
|
||||
if key not in self.map:
|
||||
end = self.end
|
||||
curr = end[1]
|
||||
curr[2] = end[1] = self.map[key] = [key, curr, end]
|
||||
|
||||
def discard(self, key):
|
||||
if key in self.map:
|
||||
key, prev, next = self.map.pop(key)
|
||||
prev[2] = next
|
||||
next[1] = prev
|
||||
|
||||
def peek(self, last=False):
|
||||
end = self.end
|
||||
curr = end[1] if last else end[2]
|
||||
if curr is not end:
|
||||
return curr[0]
|
||||
raise IndexError("OrderedSet is empty, cannot peek item")
|
||||
|
||||
def __iter__(self):
|
||||
end = self.end
|
||||
curr = end[2]
|
||||
while curr is not end:
|
||||
yield curr[0]
|
||||
curr = curr[2]
|
||||
|
||||
def __reversed__(self):
|
||||
end = self.end
|
||||
curr = end[1]
|
||||
while curr is not end:
|
||||
yield curr[0]
|
||||
curr = curr[1]
|
||||
|
||||
def pop(self, last=False):
|
||||
if not self:
|
||||
raise KeyError('set is empty')
|
||||
key = self.end[1][0] if last else self.end[2][0]
|
||||
self.discard(key)
|
||||
return key
|
||||
|
||||
def __repr__(self):
|
||||
if not self:
|
||||
return '%s()' % (self.__class__.__name__,)
|
||||
return '%s(%r)' % (self.__class__.__name__, list(self))
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, OrderedSet):
|
||||
return len(self) == len(other) and list(self) == list(other)
|
||||
return set(self) == set(other)
|
||||
#</recipe>
|
||||
|
||||
def main(plists):
|
||||
prev = prev_short = None
|
||||
for line in gen_list(plists):
|
||||
if line.startswith("%%"):
|
||||
line_short = line.split("%%", 3)[1:]
|
||||
line_short = "%%%%%s%%%%%s" % (line_short[0].split("-", 2)[0], line_short[1])
|
||||
if prev_short == line_short:
|
||||
print(line_short)
|
||||
line = line_short = None
|
||||
elif prev is not None:
|
||||
print(prev)
|
||||
prev, prev_short = line, line_short
|
||||
else:
|
||||
if prev is not None:
|
||||
print(prev)
|
||||
prev = prev_short = None
|
||||
print line
|
||||
if prev is not None:
|
||||
print(prev)
|
||||
|
||||
def gen_list(plists):
|
||||
plists_len = len(plists)
|
||||
plists.sort(key=lambda x: int(x.rsplit('.', 2)[-1].split('-', 2)[0]))
|
||||
names = ["OSREL" + plist.rsplit('.', 2)[-1] for plist in plists]
|
||||
for i in range(plists_len):
|
||||
with open(plists[i], 'r') as file:
|
||||
plists[i] = OrderedSet(line.strip() for line in file.readlines())
|
||||
empty = sum(len(plist) == 0 for plist in plists)
|
||||
while empty < plists_len:
|
||||
line = plists[0].peek()
|
||||
# Test if the top of the plists are all common
|
||||
if not empty and all(line == plist.peek() for plist in plists):
|
||||
yield line
|
||||
for plist in plists:
|
||||
plist.pop()
|
||||
else:
|
||||
# Find which of the plists have non-common lines
|
||||
lines = {}
|
||||
for i in range(plists_len):
|
||||
while len(plists[i]) and not all(plists[i].peek() in plist for plist in plists):
|
||||
lines.setdefault(plists[i].pop(), []).append(names[i])
|
||||
for line in sorted(lines.keys()):
|
||||
suffix = lines[line][0].split('-', 2)
|
||||
suffix = len(suffix) == 2 and suffix[-1]
|
||||
if suffix and all(name.split('-', 2)[-1] == suffix for name in lines[line]):
|
||||
yield "%%" + suffix + "%%" + line
|
||||
else:
|
||||
for name in lines[line]:
|
||||
yield "%%" + name + "%%" + line
|
||||
empty = sum(len(plist) == 0 for plist in plists)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Copyright 2010 to 2015 David Naylor <dbn@FreeBSD.org>
|
||||
# Copyright 2012 Jan Beich <jbeich@tormail.org>
|
||||
# Copyright 2020 Lorenzo Salvadore <salvadore@FreeBSD.org>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@ -74,6 +75,8 @@
|
||||
# - remove support for old pkg_ tools
|
||||
# Version 1.16 - 2017/06/04
|
||||
# - use https download site
|
||||
# Version 1.17 - 2020/03/02
|
||||
# - do not do anything if nvidia-driver version >= 440.59
|
||||
|
||||
set -e
|
||||
|
||||
@ -168,6 +171,11 @@ echo "=> Detected nvidia-driver: ${NV}"
|
||||
NVIDIA=${NV}
|
||||
NV=`echo ${NV} | cut -f 1 -d _ | cut -f 1 -d ,`
|
||||
|
||||
if [ ! "$(pkg version -t ${NV} 440.59)" == "<" ]
|
||||
then
|
||||
terminate 0 "nvidia-driver 440.59+ already includes 32-bit drivers: nothing to do"
|
||||
fi
|
||||
|
||||
if [ ! -f NVIDIA-FreeBSD-x86-${NV}.tar.gz ] || !(tar -tf NVIDIA-FreeBSD-x86-${NV}.tar.gz > /dev/null 2>&1)
|
||||
then
|
||||
[ -n "$NO_FETCH" ] \
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user