aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorgrembo <grembo@FreeBSD.org>2016-11-15 22:52:35 +0800
committergrembo <grembo@FreeBSD.org>2016-11-15 22:52:35 +0800
commit20e494e31d94fe637fbb1214bbda9d00fc74f805 (patch)
treeaa7c709b39b4c121559900e35895778a38ef3edf /devel
parent1b2279bd0f0110aafec1abb790e986170107688d (diff)
downloadfreebsd-ports-gnome-20e494e31d94fe637fbb1214bbda9d00fc74f805.tar.gz
freebsd-ports-gnome-20e494e31d94fe637fbb1214bbda9d00fc74f805.tar.zst
freebsd-ports-gnome-20e494e31d94fe637fbb1214bbda9d00fc74f805.zip
Fix icegridnode, so it applies property changes to shared communicators
correctly. Without this fix, updates to icebox applications that use a shared communicator will fail silently (unless specific trace properties are set), which also stops other configuration changes to propagate properly. This will also be escalated to upstream. Approved by: mentors (implicit)
Diffstat (limited to 'devel')
-rw-r--r--devel/ice/Makefile1
-rw-r--r--devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp26
2 files changed, 27 insertions, 0 deletions
diff --git a/devel/ice/Makefile b/devel/ice/Makefile
index 856d85d46630..ba6fab6facd3 100644
--- a/devel/ice/Makefile
+++ b/devel/ice/Makefile
@@ -3,6 +3,7 @@
PORTNAME= Ice
PORTVERSION= 3.6.3
+PORTREVISION= 1
DISTVERSIONPREFIX= v
CATEGORIES= devel
diff --git a/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp b/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp
new file mode 100644
index 000000000000..83a3eade43b4
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp
@@ -0,0 +1,26 @@
+--- cpp/src/IceGrid/ServerI.cpp.orig 2016-11-15 12:22:54.201742997 +0100
++++ cpp/src/IceGrid/ServerI.cpp 2016-11-15 12:48:01.409625996 +0100
+@@ -341,7 +341,22 @@
+ {
+ assert(_p->first.find("config_") == 0);
+ const string service = _p->first.substr(7);
+- facet = "IceBox.Service." + service + ".Properties";
++ bool useSharedCommunicator = false;
++ for (PropertyDescriptorSeq::const_iterator d = _properties.at("config").begin(); d != _properties.at("config").end(); ++d)
++ {
++ if (d->name == "IceBox.UseSharedCommunicator." + service)
++ {
++ useSharedCommunicator = (atoi(d->value.c_str()) > 0);
++ }
++ }
++ if (useSharedCommunicator)
++ {
++ facet = "IceBox.SharedCommunicator.Properties";
++ }
++ else
++ {
++ facet = "IceBox.Service." + service + ".Properties";
++ }
+ if(_traceLevels->server > 1)
+ {
+ const string id = _server->getId();