Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jul 2018 09:57:07 +0000 (UTC)
From:      Guido Falsi <madpilot@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r473959 - in head/games/0ad: . files
Message-ID:  <201807050957.w659v7ZE038175@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: madpilot
Date: Thu Jul  5 09:57:06 2018
New Revision: 473959
URL: https://svnweb.freebsd.org/changeset/ports/473959

Log:
  - Update 0ad to Alpha 23 Ken Wood
  - Make build verbose
  - Rename patches to follow new naming convention
  - New version requires WxGTK 3.0 minimum
  - Add missing dependency on desktop-file-utils

Added:
  head/games/0ad/files/patch-build_premake_extern__libs5.lua
     - copied, changed from r473958, head/games/0ad/files/patch-build__premake__extern_libs4.lua
  head/games/0ad/files/patch-build_premake_premake5.lua
     - copied, changed from r473958, head/games/0ad/files/patch-build__premake__premake4.lua
  head/games/0ad/files/patch-build_workspaces_update-workspaces.sh
     - copied unchanged from r473958, head/games/0ad/files/patch-build__workspaces__update-workspaces.sh
  head/games/0ad/files/patch-libraries_source_fcollada_src_FCollada_FUtils_FUStringBuilder.hpp
     - copied unchanged from r473958, head/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp
  head/games/0ad/files/patch-libraries_source_fcollada_src_Makefile
     - copied unchanged from r473958, head/games/0ad/files/patch-libraries__source__fcollada__src__Makefile
  head/games/0ad/files/patch-libraries_source_spidermonkey_FixpsutilFreeBSD.diff
     - copied, changed from r473958, head/games/0ad/files/psutil.diff
  head/games/0ad/files/patch-libraries_source_spidermonkey_build.sh
     - copied, changed from r473958, head/games/0ad/files/patch-libraries__source__spidermonkey__build.sh
  head/games/0ad/files/patch-source_tools_atlas_AtlasObject_AtlasObjectImpl.cpp   (contents, props changed)
  head/games/0ad/files/patch-source_tools_atlas_AtlasUI_CustomControls_MapDialog_MapDialog.cpp   (contents, props changed)
  head/games/0ad/files/patch-source_tools_atlas_AtlasUI_ScenarioEditor_ScenarioEditor.cpp   (contents, props changed)
Deleted:
  head/games/0ad/files/patch-build__premake__extern_libs4.lua
  head/games/0ad/files/patch-build__premake__premake4.lua
  head/games/0ad/files/patch-build__workspaces__update-workspaces.sh
  head/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp
  head/games/0ad/files/patch-libraries__source__fcollada__src__Makefile
  head/games/0ad/files/patch-libraries__source__spidermonkey__build.sh
  head/games/0ad/files/patch-source_lobby_XmppClient.cpp
  head/games/0ad/files/psutil.diff
Modified:
  head/games/0ad/Makefile
  head/games/0ad/distinfo

Modified: head/games/0ad/Makefile
==============================================================================
--- head/games/0ad/Makefile	Thu Jul  5 09:37:37 2018	(r473958)
+++ head/games/0ad/Makefile	Thu Jul  5 09:57:06 2018	(r473959)
@@ -1,8 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	0ad
-PORTVERSION=	0.0.22
-PORTREVISION=	10
+PORTVERSION=	0.0.23
 CATEGORIES=	games
 MASTER_SITES=	http://releases.wildfiregames.com/ \
 		SF/zero-ad/releases
@@ -24,13 +23,14 @@ LIB_DEPENDS=	libboost_thread.so:devel/boost-libs \
 		libminiupnpc.so:net/miniupnpc \
 		libnspr4.so:devel/nspr \
 		libenet.so:net/enet \
-		libtiff.so:graphics/tiff
+		libtiff.so:graphics/tiff \
+		libsodium.so:security/libsodium
 
 WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}-alpha
 BUILD_WRKSRC=	${WRKSRC}/build/workspaces/gcc
-MAKE_ARGS=	config=release
+MAKE_ARGS=	config=release verbose=1
 CPPFLAGS+=	-DU_USING_ICU_NAMESPACE=1
-USES=		compiler:c++11-lib dos2unix gmake iconv jpeg openal:al \
+USES=		compiler:c++11-lib desktop-file-utils dos2unix gmake iconv jpeg openal:al \
 		pkgconfig python:build tar:xz
 USE_GNOME=	libxml2 gtk20
 USE_GL=		gl
@@ -40,7 +40,7 @@ BUNDLE_LIBS=	yes
 DOS2UNIX_REGEX=	.*\.([ch]p{0,2}|make)
 BINARY_ALIAS=	python=${PYTHON_CMD}
 
-USE_WX=		2.8+
+USE_WX=		3.0+
 WX_COMPS=	wx:lib
 MAKE_ENV+=	JOBS=${_MAKE_JOBS}
 
@@ -56,28 +56,26 @@ PORTDATA=	*
 post-patch:
 	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
 			-e 's|%%CC%%|${CC}|' \
-		${WRKSRC}/build/premake/premake4.lua
+		${WRKSRC}/build/premake/premake5.lua ${WRKSRC}/build/premake/extern_libs5.lua
 .if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == gcc
 	@${REINPLACE_CMD} -e '1055,1251s/-rdynamic/-lssp_nonshared &/' \
 			-e '1441s/"execinfo",/& "ssp_nonshared",/' \
-		${WRKSRC}/build/premake/premake4.lua
+		${WRKSRC}/build/premake/premake5.lua
 .endif
 	@${REINPLACE_CMD} 's,^\(Exec=\)/usr/local,\1${PREFIX},' \
 		${WRKSRC}/build/resources/0ad.desktop
 	@${REINPLACE_CMD} 's|%%PREFIX%%|${PREFIX}|' \
 		${WRKSRC}/build/resources/0ad.sh
-	@${CP} ${FILESDIR}/psutil.diff ${WRKSRC}/libraries/source/spidermonkey/
 
 pre-build:
-	(cd ${WRKSRC}/build/workspaces && ${SETENV} ${MAKE_ENV} ./update-workspaces.sh ${0ADSDLARG} --bindir=${PREFIX}/bin --datadir=${DATADIR} --libdir=${PREFIX}/lib/${PORTNAME})
+	(cd ${WRKSRC}/build/workspaces && ${SETENV} ${MAKE_ENV} ./update-workspaces.sh --bindir=${PREFIX}/bin --datadir=${DATADIR} --libdir=${PREFIX}/lib/${PORTNAME})
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/binaries/system/pyrogenesis ${STAGEDIR}${PREFIX}/bin
 	${INSTALL_SCRIPT} ${WRKSRC}/build/resources/0ad.sh ${STAGEDIR}${PREFIX}/bin/0ad
 	${INSTALL_PROGRAM} ${WRKSRC}/binaries/system/ActorEditor ${STAGEDIR}${PREFIX}/bin
 	${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
-	(cd ${WRKSRC}/binaries/system && ${INSTALL_LIB} libAtlasUI.so libCollada.so libnvcore.so libnvimage.so libnvmath.so libnvtt.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME})
-	(cd ${WRKSRC}/binaries/system && ${INSTALL_LIB} libmozjs38-ps-release.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME})
+	(cd ${WRKSRC}/binaries/system && ${INSTALL_LIB} libAtlasUI.so libCollada.so libmozjs38-ps-release.so libnvcore.so libnvimage.so libnvmath.so libnvtt.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME})
 	${INSTALL_DATA} ${WRKSRC}/build/resources/0ad.desktop ${STAGEDIR}${PREFIX}/share/applications
 	${INSTALL_DATA} ${WRKSRC}/build/resources/0ad.png ${STAGEDIR}${PREFIX}/share/pixmaps
 	${MKDIR} ${STAGEDIR}${DATADIR}

Modified: head/games/0ad/distinfo
==============================================================================
--- head/games/0ad/distinfo	Thu Jul  5 09:37:37 2018	(r473958)
+++ head/games/0ad/distinfo	Thu Jul  5 09:57:06 2018	(r473959)
@@ -1,5 +1,5 @@
-TIMESTAMP = 1501175300
-SHA256 (0ad-0.0.22-alpha-unix-build.tar.xz) = fddd36df4fd32b5b31fd8871bc5ed3ec71a921de79517fb6199ba7571ec9f5b1
-SIZE (0ad-0.0.22-alpha-unix-build.tar.xz) = 29199308
-SHA256 (0ad-0.0.22-alpha-unix-data.tar.xz) = 4c32cd0a346815cd260357d55d5a61430f670c78a2fa7a321957c0e4559a766e
-SIZE (0ad-0.0.22-alpha-unix-data.tar.xz) = 632555792
+TIMESTAMP = 1530535030
+SHA256 (0ad-0.0.23-alpha-unix-build.tar.xz) = cfa1e3b6989466961451c95a96c19c274cd373ce6d98f83836e6f862c9d3e163
+SIZE (0ad-0.0.23-alpha-unix-build.tar.xz) = 31907988
+SHA256 (0ad-0.0.23-alpha-unix-data.tar.xz) = fdbf774637252dbedf339fbe29b77d7d585ab53a9a5ddede56dd7b8fda66d8ac
+SIZE (0ad-0.0.23-alpha-unix-data.tar.xz) = 691973492

Copied and modified: head/games/0ad/files/patch-build_premake_extern__libs5.lua (from r473958, head/games/0ad/files/patch-build__premake__extern_libs4.lua)
==============================================================================
--- head/games/0ad/files/patch-build__premake__extern_libs4.lua	Thu Jul  5 09:37:37 2018	(r473958, copy source)
+++ head/games/0ad/files/patch-build_premake_extern__libs5.lua	Thu Jul  5 09:57:06 2018	(r473959)
@@ -1,16 +1,16 @@
---- build/premake/extern_libs4.lua.orig	2015-11-19 23:47:41 UTC
-+++ build/premake/extern_libs4.lua
-@@ -237,7 +237,7 @@ extern_lib_defs = {
+--- build/premake/extern_libs5.lua.orig	2018-04-29 15:44:48 UTC
++++ build/premake/extern_libs5.lua
+@@ -191,7 +191,7 @@ extern_lib_defs = {
  			end
  			-- TODO: This actually applies to most libraries we use on BSDs, make this a global setting.
- 			if os.is("bsd") then
--				includedirs { "/usr/local/include" }
-+				includedirs { "%%LOCALBASE%%/include" }
+ 			if os.istarget("bsd") then
+-				sysincludedirs { "/usr/local/include" }
++				sysincludedirs { "%%LOCALBASE%%/include" }
  			end
  		end,
  		link_settings = function()
-@@ -347,9 +347,6 @@ extern_lib_defs = {
- 			elseif os.is("macosx") then
+@@ -301,9 +301,6 @@ extern_lib_defs = {
+ 			elseif os.istarget("macosx") then
  				add_default_include_paths("iconv")
  				defines { "LIBICONV_STATIC" }
 -			elseif os.getversion().description == "FreeBSD" then

Copied and modified: head/games/0ad/files/patch-build_premake_premake5.lua (from r473958, head/games/0ad/files/patch-build__premake__premake4.lua)
==============================================================================
--- head/games/0ad/files/patch-build__premake__premake4.lua	Thu Jul  5 09:37:37 2018	(r473958, copy source)
+++ head/games/0ad/files/patch-build_premake_premake5.lua	Thu Jul  5 09:57:06 2018	(r473959)
@@ -1,7 +1,7 @@
---- build/premake/premake4.lua.orig	2017-07-06 17:29:49 UTC
-+++ build/premake/premake4.lua
-@@ -388,11 +388,11 @@ function project_add_x11_dirs()
- 		includedirs {
+--- build/premake/premake5.lua.orig	2018-04-22 18:14:45 UTC
++++ build/premake/premake5.lua
+@@ -376,11 +376,11 @@ function project_add_x11_dirs()
+ 		sysincludedirs {
  			"/usr/X11R6/include/X11",
  			"/usr/X11R6/include",
 -			"/usr/local/include/X11",

Copied: head/games/0ad/files/patch-build_workspaces_update-workspaces.sh (from r473958, head/games/0ad/files/patch-build__workspaces__update-workspaces.sh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/games/0ad/files/patch-build_workspaces_update-workspaces.sh	Thu Jul  5 09:57:06 2018	(r473959, copy of r473958, head/games/0ad/files/patch-build__workspaces__update-workspaces.sh)
@@ -0,0 +1,13 @@
+--- build/workspaces/update-workspaces.sh.orig	2014-09-20 19:02:24 UTC
++++ build/workspaces/update-workspaces.sh
+@@ -1,10 +1,5 @@
+ #!/bin/sh
+ 
+-if [ "$(id -u)" = "0" ]; then
+-   echo "Running as root will mess up file permissions. Aborting ..." 1>&2
+-   exit 1
+-fi
+-
+ die()
+ {
+   echo ERROR: $*

Copied: head/games/0ad/files/patch-libraries_source_fcollada_src_FCollada_FUtils_FUStringBuilder.hpp (from r473958, head/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/games/0ad/files/patch-libraries_source_fcollada_src_FCollada_FUtils_FUStringBuilder.hpp	Thu Jul  5 09:57:06 2018	(r473959, copy of r473958, head/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp)
@@ -0,0 +1,157 @@
+--- libraries/source/fcollada/src/FCollada/FUtils/FUStringBuilder.hpp.orig	2017-07-28 19:57:27 UTC
++++ libraries/source/fcollada/src/FCollada/FUtils/FUStringBuilder.hpp
+@@ -26,63 +26,6 @@
+ #define SAFE_DELETE_ARRAY(ptr) if (ptr != NULL) { delete [] ptr; ptr = NULL; }
+ #endif
+ 
+-template <class Char, class FloatType>
+-void FloatToString(FloatType f, Char* sz)
+-{
+-	Char* buffer = sz + 1;
+-	static const int digitCount = 6;
+-	int decimal, sign;
+-
+-	// ecvt rounds the string for us: http://www.datafocus.com/docs/man3/ecvt.3.asp
+-	char* end = ecvt(f, digitCount, &decimal, &sign);
+-
+-	if (sign != 0) (*buffer++) = '-';
+-	int count = digitCount;
+-	if (decimal > digitCount)
+-	{
+-		// We use the scientific notation: P.MeX
+-		(*buffer++) = (*end++); // P is one character.
+-		(*buffer++) = '.';
+-
+-		// Mantissa (cleaned for zeroes)
+-		for (--count; count > 0; --count) if (end[count - 1] != '0') break;
+-		for (int i = 0; i < count; ++i) (*buffer++) = (*end++);
+-		if (buffer[-1] == '.') --buffer;
+-
+-		// Exponent
+-		(*buffer++) = 'e';
+-		uint32 exponent = decimal - 1; // X
+-		if (exponent >= 10) (*buffer++) = (Char) ('0' + (exponent / 10));
+-		(*buffer++) = (Char) ('0' + (exponent % 10));
+-		(*buffer) = 0;
+-		return;
+-	}
+-	else if (decimal > 0)
+-	{
+-		// Simple number: A.B
+-		for (int i = 0; i < decimal; ++i) (*buffer++) = (*end++);
+-		if (decimal < digitCount) (*buffer++) = '.';
+-		count = digitCount - decimal;
+-	}
+-	else if (decimal < -digitCount)
+-	{
+-		// What case is this?
+-		decimal = count = 0;
+-	}
+-	else if (decimal < 0 || (decimal == 0 && *end != '0'))
+-	{
+-		// Tiny number: 0.Me-X
+-		(*buffer++) = '0'; (*buffer++) = '.';
+-		for (int i = 0; i < -decimal; ++i) (*buffer++) = '0';
+-		count = digitCount + decimal;
+-	}
+-	for (; count > 0; --count) if (end[count - 1] != '0') break;
+-	for (int i = 0; i < count; ++i) (*buffer++) = (*end++);
+-	if (decimal == 0 && count == 0) (*buffer++) = '0';
+-	if (buffer[-1] == '.') --buffer;
+-	(*buffer) = 0;
+-}
+-
+ template <class Char>
+ FUStringBuilderT<Char>::FUStringBuilderT(const String& sz)
+ {
+@@ -234,53 +177,50 @@ void FUStringBuilderT<Char>::append(const FUStringBuil
+ template <class Char>
+ void FUStringBuilderT<Char>::append(float f)
+ {
+-#ifdef WIN32
+-	// use <float.h> _isnan method to detect the 1.#IND00 NaN.
+-	if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN() && !_isnan((double)f))
+-#else
+-	if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN())
+-#endif
+-	{
+-		if (IsEquivalent(f, 0.0f, std::numeric_limits<float>::epsilon())) append((Char)'0');
+-		else
+-		{
+-			Char sz[128];
+-			FloatToString(f, sz);
+-			append(sz + 1);
+-		}
+-	}
+-	else if (f == std::numeric_limits<float>::infinity())
+-	{ append((Char)'I'); append((Char)'N'); append((Char)'F'); }
+-	else if (f == -std::numeric_limits<float>::infinity())
+-	{ append((Char)'-'); append((Char)'I'); append((Char)'N'); append((Char)'F'); }
+-	else
+-	{ append((Char)'N'); append((Char)'a'); append((Char)'N'); }
++	append((double)f);
+ }
+ 
+ template <class Char>
+ void FUStringBuilderT<Char>::append(double f)
+ {
+-#ifdef WIN32
+-	// use <float.h> _isnan method to detect the .#IND00 NaN.
+-	if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN() && !_isnan(f))
+-#else
+-	if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN())
+-#endif
+-	{
+-		if (IsEquivalent(f, 0.0, std::numeric_limits<double>::epsilon())) append((Char)'0');
+-		else
+-		{
+-			Char sz[128];
+-			FloatToString(f, sz);
+-			append(sz + 1);
+-		}
++	if (f == -std::numeric_limits<double>::infinity()) {
++		append("-INF");
++		return;
++	} else if (f == std::numeric_limits<double>::infinity()) {
++		append("INF");
++		return;
++	} else if (f != f) {
++		append("NaN");
++		return;
++	} else if (-std::numeric_limits<double>::epsilon() < f && f < std::numeric_limits<double>::epsilon()) {
++		append("0.0E0");
++		return;
+ 	}
+-	else if (f == std::numeric_limits<double>::infinity())
+-	{ append((Char)'I'); append((Char)'N'); append((Char)'F'); }
+-	else if (f == -std::numeric_limits<double>::infinity())
+-	{ append((Char)'-'); append((Char)'I'); append((Char)'N'); append((Char)'F'); }
++
++	if (f < 0.0) {
++		f = -f;
++		append('-');
++	}
++
++	int e = 0;
++// 	e = floor(log10(f));
++// 	f = f / pow(10.0, e);
++
++	if (f < 1.0)
++		for (; f < 1.0; f *= 10.0)
++			e--;
+ 	else
+-	{ append((Char)'N'); append((Char)'a'); append((Char)'N'); }
++		for (; f >= 10.0; f /= 10.0)
++			e++;
++
++	char tmp[10];
++	sprintf(tmp, "%.6g", f);
++	append(tmp);
++	if (tmp[1] == 0) // only one digit, add missing part according canonical representation
++		append(".0");
++
++	sprintf(tmp, "E%d", e);
++	append(tmp);
+ }
+ 
+ template <class Char>

Copied: head/games/0ad/files/patch-libraries_source_fcollada_src_Makefile (from r473958, head/games/0ad/files/patch-libraries__source__fcollada__src__Makefile)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/games/0ad/files/patch-libraries_source_fcollada_src_Makefile	Thu Jul  5 09:57:06 2018	(r473959, copy of r473958, head/games/0ad/files/patch-libraries__source__fcollada__src__Makefile)
@@ -0,0 +1,11 @@
+--- libraries/source/fcollada/src/Makefile.orig	2014-09-24 14:39:28 UTC
++++ libraries/source/fcollada/src/Makefile
+@@ -227,7 +227,7 @@ OBJECTS_ALL = $(OBJECTS_DEBUG) $(OBJECTS_RELEASE) $(OB
+ all: output/libFColladaSD.a output/libFColladaSR.a install
+ 
+ output_dirs:
+-	bash -c 'mkdir -p output/{debug,release,test}/{FCollada/{FCDocument,FMath,FUtils,FColladaTest/{FCTestAssetManagement,FCTestExportImport,FCTestXRef}},FColladaPlugins/FArchiveXML}'
++	csh -c 'mkdir -p output/{debug,release,test}/{FCollada/{FCDocument,FMath,FUtils,FColladaTest/{FCTestAssetManagement,FCTestExportImport,FCTestXRef}},FColladaPlugins/FArchiveXML}'
+ 
+ test: FCollada/FColladaTest/ output/FColladaTest
+ 	( cd FCollada/FColladaTest/ ; ../../output/FColladaTest )

Copied and modified: head/games/0ad/files/patch-libraries_source_spidermonkey_FixpsutilFreeBSD.diff (from r473958, head/games/0ad/files/psutil.diff)
==============================================================================
--- head/games/0ad/files/psutil.diff	Thu Jul  5 09:37:37 2018	(r473958, copy source)
+++ head/games/0ad/files/patch-libraries_source_spidermonkey_FixpsutilFreeBSD.diff	Thu Jul  5 09:57:06 2018	(r473959)
@@ -1,50 +1,168 @@
---- python/psutil/psutil/_psutil_bsd.c.orig	2015-09-17 20:12:23 UTC
-+++ python/psutil/psutil/_psutil_bsd.c
-@@ -957,11 +957,19 @@ psutil_sockaddr_matches(int family, int port, void *pc
-                    psutil_sockaddr_addrlen(family)) == 0);
- }
- 
-+#if __FreeBSD_version >= 1200026
-+static struct xtcpcb *
-+psutil_search_tcplist(char *buf, struct kinfo_file *kif)
-+{
-+    struct xtcpcb *tp;
-+    struct xinpcb *inp;
-+#else
- static struct tcpcb *
- psutil_search_tcplist(char *buf, struct kinfo_file *kif)
- {
-     struct tcpcb *tp;
-     struct inpcb *inp;
-+#endif
-     struct xinpgen *xig, *oxig;
-     struct xsocket *so;
- 
-@@ -969,9 +977,15 @@ psutil_search_tcplist(char *buf, struct kinfo_file *ki
-     for (xig = (struct xinpgen *)((char *)xig + xig->xig_len);
-             xig->xig_len > sizeof(struct xinpgen);
-             xig = (struct xinpgen *)((char *)xig + xig->xig_len)) {
-+#if __FreeBSD_version >= 1200026
-+        tp = (struct xtcpcb *)xig;
-+        inp = &tp->xt_inp;
-+        so = &inp->xi_socket;
-+#else
-         tp = &((struct xtcpcb *)xig)->xt_tp;
-         inp = &((struct xtcpcb *)xig)->xt_inp;
-         so = &((struct xtcpcb *)xig)->xt_socket;
-+#endif
- 
-         if (so->so_type != kif->kf_sock_type ||
-                 so->xso_family != kif->kf_sock_domain ||
-@@ -1019,7 +1033,11 @@ psutil_proc_connections(PyObject *self, PyObject *args
-     struct kinfo_file *freep = NULL;
-     struct kinfo_file *kif;
-     char *tcplist = NULL;
-+#if __FreeBSD_version >= 1200026
-+    struct xtcpcb *tcp;
-+#else
-     struct tcpcb *tcp;
-+#endif
- 
-     PyObject *retList = PyList_New(0);
-     PyObject *tuple = NULL;
+--- libraries/source/spidermonkey/FixpsutilFreeBSD.diff.orig	2017-09-13 00:10:27 UTC
++++ libraries/source/spidermonkey/FixpsutilFreeBSD.diff
+@@ -1,6 +1,6 @@
+---- python/psutil/psutil/_psutil_bsd.c
+-+++ python/psutil/psutil/_psutil_bsd.c
+-@@ -957,11 +957,19 @@ psutil_sockaddr_matches(int family, int port, void *pc
++--- ./python/psutil/psutil/_psutil_bsd.c.orig	2015-09-17 22:12:23.000000000 +0200
+++++ ./python/psutil/psutil/_psutil_bsd.c
++@@ -957,11 +957,19 @@
+                     psutil_sockaddr_addrlen(family)) == 0);
+  }
+  
+@@ -20,7 +20,7 @@
+      struct xinpgen *xig, *oxig;
+      struct xsocket *so;
+  
+-@@ -969,9 +977,15 @@ psutil_search_tcplist(char *buf, struct kinfo_file *ki
++@@ -969,9 +977,15 @@
+      for (xig = (struct xinpgen *)((char *)xig + xig->xig_len);
+              xig->xig_len > sizeof(struct xinpgen);
+              xig = (struct xinpgen *)((char *)xig + xig->xig_len)) {
+@@ -36,7 +36,44 @@
+  
+          if (so->so_type != kif->kf_sock_type ||
+                  so->xso_family != kif->kf_sock_domain ||
+-@@ -1019,7 +1033,11 @@ psutil_proc_connections(PyObject *self, PyObject *args
++@@ -981,20 +995,36 @@
++         if (kif->kf_sock_domain == AF_INET) {
++             if (!psutil_sockaddr_matches(
++                     AF_INET, inp->inp_lport, &inp->inp_laddr,
+++#if __FreeBSD_version < 1200031
++                     &kif->kf_sa_local))
+++#else
+++                    &kif->kf_un.kf_sock.kf_sa_local))
+++#endif
++                 continue;
++             if (!psutil_sockaddr_matches(
++                     AF_INET, inp->inp_fport, &inp->inp_faddr,
+++#if __FreeBSD_version < 1200031
++                     &kif->kf_sa_peer))
+++#else
+++                    &kif->kf_un.kf_sock.kf_sa_peer))
+++#endif
++                 continue;
++         } else {
++             if (!psutil_sockaddr_matches(
++                     AF_INET6, inp->inp_lport, &inp->in6p_laddr,
+++#if __FreeBSD_version < 1200031
++                     &kif->kf_sa_local))
+++#else
+++                    &kif->kf_un.kf_sock.kf_sa_peer))
+++#endif
++                 continue;
++             if (!psutil_sockaddr_matches(
++                     AF_INET6, inp->inp_fport, &inp->in6p_faddr,
+++#if __FreeBSD_version < 1200031
++                     &kif->kf_sa_peer))
+++#else
+++                    &kif->kf_un.kf_sock.kf_sa_peer))
+++#endif
++                 continue;
++         }
++ 
++@@ -1019,7 +1049,11 @@
+      struct kinfo_file *freep = NULL;
+      struct kinfo_file *kif;
+      char *tcplist = NULL;
+@@ -48,3 +85,100 @@
+  
+      PyObject *retList = PyList_New(0);
+      PyObject *tuple = NULL;
++@@ -1094,19 +1128,35 @@
++                 inet_ntop(
++                     kif->kf_sock_domain,
++                     psutil_sockaddr_addr(kif->kf_sock_domain,
+++#if __FreeBSD_version < 1200031
++                                          &kif->kf_sa_local),
+++#else
+++                                         &kif->kf_un.kf_sock.kf_sa_local),
+++#endif
++                     lip,
++                     sizeof(lip));
++                 inet_ntop(
++                     kif->kf_sock_domain,
++                     psutil_sockaddr_addr(kif->kf_sock_domain,
+++#if __FreeBSD_version < 1200031
++                                          &kif->kf_sa_peer),
+++#else
+++                                         &kif->kf_un.kf_sock.kf_sa_peer),
+++#endif
++                     rip,
++                     sizeof(rip));
++                 lport = htons(psutil_sockaddr_port(kif->kf_sock_domain,
+++#if __FreeBSD_version < 1200031
++                                                    &kif->kf_sa_local));
+++#else
+++                                                   &kif->kf_un.kf_sock.kf_sa_local));
+++#endif
++                 rport = htons(psutil_sockaddr_port(kif->kf_sock_domain,
+++#if __FreeBSD_version < 1200031
++                                                    &kif->kf_sa_peer));
+++#else
+++                                                   &kif->kf_un.kf_sock.kf_sa_peer));
+++#endif
++ 
++                 // construct python tuple/list
++                 laddr = Py_BuildValue("(si)", lip, lport);
++@@ -1137,7 +1187,11 @@
++             else if (kif->kf_sock_domain == AF_UNIX) {
++                 struct sockaddr_un *sun;
++ 
+++#if __FreeBSD_version < 1200031
++                 sun = (struct sockaddr_un *)&kif->kf_sa_local;
+++#else
+++                sun = (struct sockaddr_un *)&kif->kf_un.kf_sock.kf_sa_local;
+++#endif
++                 snprintf(
++                     path, sizeof(path), "%.*s",
++                     (sun->sun_len - (sizeof(*sun) - sizeof(sun->sun_path))),
++@@ -1779,7 +1833,11 @@
++     struct xinpgen *xig, *exig;
++     struct xinpcb *xip;
++     struct xtcpcb *xtp;
+++#if __FreeBSD_version >= 1200026
+++    struct xinpcb *inp;
+++#else
++     struct inpcb *inp;
+++#endif
++     struct xsocket *so;
++     struct sock *sock;
++     const char *varname;
++@@ -1849,13 +1907,21 @@
++                 PyErr_Format(PyExc_RuntimeError, "struct xinpcb size mismatch");
++                 goto error;
++             }
+++#if __FreeBSD_version >= 1200026
+++            inp = xip;
+++#else
++             inp = &xip->xi_inp;
+++#endif
++             so = &xip->xi_socket;
++             break;
++         }
++ 
++         inp = &xtp->xt_inp;
+++#if __FreeBSD_version >= 1200026
+++        so = &xtp->xt_inp.xi_socket;
+++#else
++         so = &xtp->xt_socket;
+++#endif
++         char lip[200], rip[200];
++         int family, lport, rport, pid, status;
++ 
++@@ -1863,9 +1929,14 @@
++         pid = psutil_get_pid_from_sock(hash);
++         if (pid < 0)
++             continue;
+++
++         lport = ntohs(inp->inp_lport);
++         rport = ntohs(inp->inp_fport);
+++#if __FreeBSD_version >= 1200026
+++        status = xtp->t_state;
+++#else
++         status = xtp->xt_tp.t_state;
+++#endif
++ 
++         if (inp->inp_vflag & INP_IPV4) {
++             family = AF_INET;

Copied and modified: head/games/0ad/files/patch-libraries_source_spidermonkey_build.sh (from r473958, head/games/0ad/files/patch-libraries__source__spidermonkey__build.sh)
==============================================================================
--- head/games/0ad/files/patch-libraries__source__spidermonkey__build.sh	Thu Jul  5 09:37:37 2018	(r473958, copy source)
+++ head/games/0ad/files/patch-libraries_source_spidermonkey_build.sh	Thu Jul  5 09:57:06 2018	(r473959)
@@ -1,17 +1,9 @@
 --- libraries/source/spidermonkey/build.sh.orig	2016-10-04 15:01:34 UTC
 +++ libraries/source/spidermonkey/build.sh
-@@ -90,11 +90,21 @@ cd $FOLDER
- # Apply patches
- . ../patch.sh
- 
-+patch <../psutil.diff
-+
- cd js/src
- 
- # Clean up data generated by previous builds that could cause problems
+@@ -96,6 +96,14 @@ cd js/src
  rm -rf build-debug
  rm -rf build-release
-+
+ 
 +cp jsnativestack.cpp jsnativestack.cpp.orig
 +sed 's/#  include <pthread_np.h>/#pragma GCC visibility push(default)\
 +#include <pthread_np.h>\
@@ -19,6 +11,7 @@
 +
 +cp configure configure.orig
 +sed -e 's/"$ac_cv_have_visibility_class_bug" = "no"; then/"$ac_cv_have_visibility_class_bug" = "no" -a "$OS_ARCH" != "FreeBSD" ; then/' -e 's/-Werror=conversion-null//' configure.orig >configure
- 
++
  # We want separate debug/release versions of the library, so we have to change
  # the LIBRARY_NAME for each build.
+ # (We use perl instead of sed so that it works with MozillaBuild on Windows,

Added: head/games/0ad/files/patch-source_tools_atlas_AtlasObject_AtlasObjectImpl.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/games/0ad/files/patch-source_tools_atlas_AtlasObject_AtlasObjectImpl.cpp	Thu Jul  5 09:57:06 2018	(r473959)
@@ -0,0 +1,30 @@
+--- source/tools/atlas/AtlasObject/AtlasObjectImpl.cpp.orig	2016-11-23 14:09:58 UTC
++++ source/tools/atlas/AtlasObject/AtlasObjectImpl.cpp
+@@ -164,7 +164,12 @@ void AtObj::add(const char* key, AtObj& data)
+ 
+ void AtObj::add(const char* key, const wxString& value)
+ {
+-	add(key, value.wc_str());
++	const AtNode* o = new AtNode(value.wc_str());
++
++	if (!p)
++		p = new AtNode();
++
++	p = p->addChild(key, AtNode::Ptr(o));
+ }
+ 
+ void AtObj::add(const char* key, const wchar_t* value)
+@@ -187,7 +192,12 @@ void AtObj::set(const char* key, AtObj& data)
+ 
+ void AtObj::set(const char* key, const wxString& value)
+ {
+-	set(key, value.wc_str());
++	const AtNode* o = new AtNode(value.wc_str());
++
++	if (!p)
++		p = new AtNode();
++
++	p = p->setChild(key, AtNode::Ptr(o));
+ }
+ 
+ void AtObj::set(const char* key, const wchar_t* value)

Added: head/games/0ad/files/patch-source_tools_atlas_AtlasUI_CustomControls_MapDialog_MapDialog.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/games/0ad/files/patch-source_tools_atlas_AtlasUI_CustomControls_MapDialog_MapDialog.cpp	Thu Jul  5 09:57:06 2018	(r473959)
@@ -0,0 +1,34 @@
+--- source/tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp.orig	2018-03-13 20:26:30 UTC
++++ source/tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp
+@@ -166,11 +166,11 @@ void MapDialog::OnListBox(wxCommandEvent& evt)
+ 	else
+ 	{
+ 		wxString filePath = GetSelectedFilePath();
+-		AtlasMessage::qVFSFileExists qry(filePath.wc_str());
++		AtlasMessage::qVFSFileExists qry(filePath.ToStdWstring());
+ 		qry.Post();
+ 		if (!filePath.IsEmpty() && qry.exists)
+ 		{
+-			AtlasMessage::qVFSFileRealPath qry(filePath.wc_str());
++			AtlasMessage::qVFSFileRealPath qry(filePath.ToStdWstring());
+ 			qry.Post();
+ 			wxDynamicCast(FindWindow(ID_MapDialogFilename), wxTextCtrl)->ChangeValue(*qry.realPath);
+ 		}
+@@ -221,7 +221,7 @@ void MapDialog::OpenFile()
+ 	if (filePath.empty())
+ 		return;
+ 
+-	AtlasMessage::qVFSFileExists qry(filePath.wc_str());
++	AtlasMessage::qVFSFileExists qry(filePath.ToStdWstring());
+ 	qry.Post();
+ 	if (!qry.exists)
+ 		return;
+@@ -236,7 +236,7 @@ void MapDialog::SaveFile()
+ 		return;
+ 
+ 	// TODO: this test would work better outside the VFS
+-	AtlasMessage::qVFSFileExists qry(filePath.wc_str());
++	AtlasMessage::qVFSFileExists qry(filePath.ToStdWstring());
+ 	qry.Post();
+ 	if (qry.exists)
+ 	{

Added: head/games/0ad/files/patch-source_tools_atlas_AtlasUI_ScenarioEditor_ScenarioEditor.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/games/0ad/files/patch-source_tools_atlas_AtlasUI_ScenarioEditor_ScenarioEditor.cpp	Thu Jul  5 09:57:06 2018	(r473959)
@@ -0,0 +1,56 @@
+--- source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp.orig	2018-03-13 20:20:45 UTC
++++ source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp
+@@ -723,7 +723,7 @@ bool ScenarioEditor::OpenFile(const wxString& name, co
+ 	wxBusyInfo busy(_("Loading ") + name);
+ 	wxBusyCursor busyc;
+ 
+-	AtlasMessage::qVFSFileExists qry(filename.wc_str());
++	AtlasMessage::qVFSFileExists qry(filename.ToStdWstring());
+ 	qry.Post();
+ 	if (!qry.exists)
+ 		return false;
+@@ -733,7 +733,7 @@ bool ScenarioEditor::OpenFile(const wxString& name, co
+ 	m_ToolManager.SetCurrentTool(_T(""));
+ 	// TODO: clear the undo buffer, etc
+ 
+-	std::wstring map(filename.wc_str());
++	std::wstring map(filename.ToStdWstring());
+ 	POST_MESSAGE(LoadMap, (map));
+ 
+ 	SetOpenFilename(name);
+@@ -786,7 +786,7 @@ void ScenarioEditor::OnImportHeightmap(wxCommandEvent&
+ 
+ 	OpenFile(_T(""), _T("maps/scenarios/_default.xml"));
+ 
+-	std::wstring image(dlg.GetPath().wc_str());
++	std::wstring image(dlg.GetPath().ToStdWstring());
+ 	POST_MESSAGE(ImportHeightmap, (image));
+ 
+ 	// TODO: Make this a non-undoable command
+@@ -830,7 +830,7 @@ void ScenarioEditor::OnSave(wxCommandEvent& event)
+ 		// the preview units.)
+ 		m_ToolManager.SetCurrentTool(_T(""));
+ 
+-		std::wstring map(m_OpenFilename.wc_str());
++		std::wstring map(m_OpenFilename.ToStdWstring());
+ 		POST_MESSAGE(SaveMap, (map));
+ 
+ 		// Wait for it to finish saving
+@@ -852,7 +852,7 @@ void ScenarioEditor::OnSaveAs(wxCommandEvent& WXUNUSED
+ 
+ 		m_ToolManager.SetCurrentTool(_T(""));
+ 
+-		std::wstring map(filePath.wc_str());
++		std::wstring map(filePath.ToStdWstring());
+ 		POST_MESSAGE(SaveMap, (map));
+ 
+ 		SetOpenFilename(filePath);
+@@ -920,7 +920,7 @@ void ScenarioEditor::OnJavaScript(wxCommandEvent& WXUN
+ 	wxString cmd = ::wxGetTextFromUser(_T(""), _("JS command"), _T(""), this);
+ 	if (cmd.IsEmpty())
+ 		return;
+-	POST_MESSAGE(JavaScript, ((std::wstring)cmd.wc_str()));
++	POST_MESSAGE(JavaScript, ((std::wstring)cmd.ToStdWstring()));
+ }
+ 
+ void ScenarioEditor::OnCameraReset(wxCommandEvent& WXUNUSED(event))



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