aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2017-03-21 16:27:28 +0800
committerGleb Smirnoff <glebius@FreeBSD.org>2017-03-21 16:27:28 +0800
commitc869d2c52967311e0bc05dd5fef30158aaa49680 (patch)
treece54aa79ca7bdfbd7a415c5790e0839ea8034ab3 /emulators
parent7982d4ecade18ef98ef9747cc9d171a1a3e3d117 (diff)
downloadfreebsd-ports-gnome-c869d2c52967311e0bc05dd5fef30158aaa49680.tar.gz
freebsd-ports-gnome-c869d2c52967311e0bc05dd5fef30158aaa49680.tar.zst
freebsd-ports-gnome-c869d2c52967311e0bc05dd5fef30158aaa49680.zip
Make it compilable on FreeBSD 12 after struct inpcb and struct tcpcb were
stopped being exported.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/wine/Makefile1
-rw-r--r--emulators/wine/files/patch-dlls_iphlpapi_ipstats.c46
2 files changed, 47 insertions, 0 deletions
diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile
index 041f1f382dc6..d1eb70dbcf11 100644
--- a/emulators/wine/Makefile
+++ b/emulators/wine/Makefile
@@ -3,6 +3,7 @@
PORTNAME= wine
DISTVERSION= 2.0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= SF/${PORTNAME}/Source \
diff --git a/emulators/wine/files/patch-dlls_iphlpapi_ipstats.c b/emulators/wine/files/patch-dlls_iphlpapi_ipstats.c
new file mode 100644
index 000000000000..c702152e8fef
--- /dev/null
+++ b/emulators/wine/files/patch-dlls_iphlpapi_ipstats.c
@@ -0,0 +1,46 @@
+--- dlls/iphlpapi/ipstats.c.orig 2017-03-21 00:03:25.304042000 -0700
++++ dlls/iphlpapi/ipstats.c 2017-03-21 00:09:42.312023000 -0700
+@@ -2233,6 +2233,15 @@
+ pXIG->xig_len > sizeof (struct xinpgen);
+ pXIG = (struct xinpgen *)((char *)pXIG + pXIG->xig_len))
+ {
++#if __FreeBSD_version >= 1200026
++ struct xtcpcb *pTCPData;
++ struct xinpcb *pINData;
++ struct xsocket *pSockData;
++
++ pTCPData = (struct xtcpcb *)pXIG;
++ pINData = &pTCPData->xt_inp;
++ pSockData = &pINData->xi_socket;
++#else
+ struct tcpcb *pTCPData = NULL;
+ struct inpcb *pINData;
+ struct xsocket *pSockData;
+@@ -2240,6 +2249,7 @@
+ pTCPData = &((struct xtcpcb *)pXIG)->xt_tp;
+ pINData = &((struct xtcpcb *)pXIG)->xt_inp;
+ pSockData = &((struct xtcpcb *)pXIG)->xt_socket;
++#endif
+
+ /* Ignore sockets for other protocols */
+ if (pSockData->xso_protocol != IPPROTO_TCP)
+@@ -2509,11 +2519,19 @@
+ pXIG->xig_len > sizeof (struct xinpgen);
+ pXIG = (struct xinpgen *)((char *)pXIG + pXIG->xig_len))
+ {
++#if __FreeBSD_version >= 1200026
++ struct xinpcb *pINData;
++ struct xsocket *pSockData;
++
++ pINData = (struct xinpcb *)pXIG;
++ pSockData = &pINData->xi_socket;
++#else
+ struct inpcb *pINData;
+ struct xsocket *pSockData;
+
+ pINData = &((struct xinpcb *)pXIG)->xi_inp;
+ pSockData = &((struct xinpcb *)pXIG)->xi_socket;
++#endif
+
+ /* Ignore sockets for other protocols */
+ if (pSockData->xso_protocol != IPPROTO_UDP)