aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2017-03-21 16:58:00 +0800
committerglebius <glebius@FreeBSD.org>2017-03-21 16:58:00 +0800
commit15a793e1f4e0ba2e13af8235445d019fc049a210 (patch)
tree1219e8b90d62fa9f50921ceeeb94524e7247a376 /emulators
parent0760131add8d41fc78c36bebb39375f9769ddae3 (diff)
downloadfreebsd-ports-gnome-15a793e1f4e0ba2e13af8235445d019fc049a210.tar.gz
freebsd-ports-gnome-15a793e1f4e0ba2e13af8235445d019fc049a210.tar.zst
freebsd-ports-gnome-15a793e1f4e0ba2e13af8235445d019fc049a210.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-devel/Makefile1
-rw-r--r--emulators/wine-devel/files/patch-dlls_iphlpapi_ipstats.c46
2 files changed, 47 insertions, 0 deletions
diff --git a/emulators/wine-devel/Makefile b/emulators/wine-devel/Makefile
index 28d64d6fa81d..08497a23070a 100644
--- a/emulators/wine-devel/Makefile
+++ b/emulators/wine-devel/Makefile
@@ -3,6 +3,7 @@
PORTNAME= wine
DISTVERSION= 2.3
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= emulators
MASTER_SITES= SF/${PORTNAME}/Source \
diff --git a/emulators/wine-devel/files/patch-dlls_iphlpapi_ipstats.c b/emulators/wine-devel/files/patch-dlls_iphlpapi_ipstats.c
new file mode 100644
index 000000000000..909a317fbbb6
--- /dev/null
+++ b/emulators/wine-devel/files/patch-dlls_iphlpapi_ipstats.c
@@ -0,0 +1,46 @@
+--- dlls/iphlpapi/ipstats.c.orig 2017-03-03 12:18:32.000000000 -0800
++++ dlls/iphlpapi/ipstats.c 2017-03-21 00:43:27.101175000 -0700
+@@ -2235,6 +2235,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;
+@@ -2242,6 +2251,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)
+@@ -2511,11 +2521,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)