View | Details | Raw Unified | Return to bug 222291 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (-2 / +1 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=		Ice
4
PORTNAME=		Ice
5
PORTVERSION=		3.6.3
5
PORTVERSION=		3.6.4
6
PORTREVISION=		3
7
DISTVERSIONPREFIX=	v
6
DISTVERSIONPREFIX=	v
8
CATEGORIES=		devel
7
CATEGORIES=		devel
9
8
(-)distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1483464992
1
TIMESTAMP = 1505206779
2
SHA256 (zeroc-ice-ice-v3.6.3_GH0.tar.gz) = 82ff74e6d24d9fa396dbb4d9697dc183b17bc9c3f6f076fecdc05632be80a2dc
2
SHA256 (zeroc-ice-ice-v3.6.4_GH0.tar.gz) = 4f5cc5e09586eab7de7745bbdc5fbf383c59f8fdc561264d4010bba19afdde2a
3
SIZE (zeroc-ice-ice-v3.6.3_GH0.tar.gz) = 5512741
3
SIZE (zeroc-ice-ice-v3.6.4_GH0.tar.gz) = 5523841
(-)files/patch-cpp-src-IceGrid-ServerI.cpp (-35 lines)
Lines 1-35 Link Here
1
--- cpp/src/IceGrid/ServerI.cpp.orig	2016-11-15 12:22:54.201742997 +0100
2
+++ cpp/src/IceGrid/ServerI.cpp	2017-09-07 12:48:01.409625996 +0100
3
@@ -341,7 +341,22 @@
4
         {
5
             assert(_p->first.find("config_") == 0);
6
             const string service = _p->first.substr(7);
7
-            facet = "IceBox.Service." + service + ".Properties";
8
+            bool useSharedCommunicator = false;
9
+            for (PropertyDescriptorSeq::const_iterator d = _properties.at("config").begin(); d != _properties.at("config").end(); ++d)
10
+            {
11
+                if (d->name == "IceBox.UseSharedCommunicator." + service)
12
+                {
13
+                   useSharedCommunicator = (atoi(d->value.c_str()) > 0);
14
+                }
15
+            }
16
+            if (useSharedCommunicator)
17
+            {
18
+                facet = "IceBox.SharedCommunicator.Properties";
19
+            }
20
+            else
21
+            {
22
+                facet = "IceBox.Service." + service + ".Properties";
23
+            }
24
             if(_traceLevels->server > 1)
25
             {
26
                 const string id = _server->getId();
27
@@ -1232,7 +1232,7 @@ ServerI::load(const AMD_Node_loadServerPtr& amdCB, const InternalServerDescripto
28
             updateRevision(desc->uuid, desc->revision);
29
         }
30
 
31
-        if(!_desc)
32
+        if(!_desc || (_load && descriptorUpdated(_load->getInternalServerDescriptor(), _desc)))
33
         {
34
             _load->addCallback(amdCB);
35
             return 0;
(-)files/patch-cpp-src-IceSSL-OpenSSLEngine.cpp (-84 lines)
Lines 1-84 Link Here
1
--- cpp/src/IceSSL/OpenSSLEngine.cpp.orig	2016-10-05 16:59:08.000000000 +0200
2
+++ cpp/src/IceSSL/OpenSSLEngine.cpp	2016-10-12 01:59:40.150375902 +0200
3
@@ -43,7 +43,7 @@
4
 int instanceCount = 0;
5
 bool initOpenSSL = false;
6
 
7
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
8
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
9
 IceUtil::Mutex* locks = 0;
10
 #endif
11
 
12
@@ -62,7 +62,7 @@
13
         // OpenSSL 1.1.0 introduces a new thread API and removes 
14
         // the need to use a custom thread callback.
15
         //
16
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
17
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
18
         CRYPTO_set_locking_callback(0);
19
         CRYPTO_set_id_callback(0);
20
 
21
@@ -87,7 +87,7 @@
22
 // OpenSSL 1.1.0 introduces a new thread API and removes 
23
 // the need to use a custom thread callback.
24
 //
25
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
26
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
27
 //
28
 // OpenSSL mutex callback.
29
 //
30
@@ -158,7 +158,7 @@
31
 DH*
32
 IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength)
33
 {
34
-#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
36
     SSL_CTX* ctx = SSL_get_SSL_CTX(ssl);
37
 #  else
38
     SSL_CTX* ctx = ssl->ctx;
39
@@ -219,7 +219,7 @@
40
             //
41
             // OpenSSL 1.1.0 remove the need for library initialization and cleanup.
42
             //
43
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
44
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
45
             //
46
             // Create the mutexes and set the callbacks.
47
             //
48
@@ -292,7 +292,9 @@
49
             string entropyDaemon = properties->getProperty("IceSSL.EntropyDaemon");
50
             if(!entropyDaemon.empty())
51
             {
52
+#    ifndef OPENSSL_NO_EGD
53
                 if(RAND_egd(entropyDaemon.c_str()) <= 0)
54
+#    endif
55
                 {
56
                     throw PluginInitializationException(__FILE__, __LINE__,
57
                                                         "IceSSL: EGD failure using file " + entropyDaemon);
58
@@ -326,7 +328,7 @@
59
 //
60
 // OpenSSL 1.1.0 remove the need for library initialization and cleanup.
61
 //
62
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
63
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
64
     //
65
     // Clean up OpenSSL resources.
66
     //
67
@@ -399,7 +401,7 @@
68
                                                     "IceSSL: unable to create SSL context:\n" + sslErrors());
69
             }
70
 
71
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
72
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
73
             int securityLevel = properties->getPropertyAsIntWithDefault(propPrefix + "SecurityLevel", -1);
74
             if(securityLevel != -1)
75
             {
76
@@ -954,7 +956,7 @@
77
 SSL_METHOD*
78
 OpenSSLEngine::getMethod(int /*protocols*/)
79
 {
80
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
81
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
82
     SSL_METHOD* meth = const_cast<SSL_METHOD*>(TLS_method());
83
 #else
84
     //
(-)files/patch-cpp-src-IceSSL-Util.cpp (-29 lines)
Lines 1-29 Link Here
1
--- cpp/src/IceSSL/Util.cpp~	2016-10-05 16:59:08.000000000 +0200
2
+++ cpp/src/IceSSL/Util.cpp	2016-10-12 01:55:08.517427902 +0200
3
@@ -110,7 +110,7 @@
4
 {
5
 
6
 #  ifndef OPENSSL_NO_DH
7
-#    if OPENSSL_VERSION_NUMBER < 0x10100000L
8
+#    if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
9
 
10
 // The following arrays are predefined Diffie Hellman group parameters.
11
 // These are known strong primes, distributed with the OpenSSL library
12
@@ -338,7 +338,7 @@
13
 //
14
 // Convert a predefined parameter set into a DH value.
15
 //
16
-#    if OPENSSL_VERSION_NUMBER >= 0x10100000L
17
+#    if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
18
 static DH*
19
 convertDH(const unsigned char* buf, int len)
20
 {
21
@@ -428,7 +428,7 @@
22
     // No match found. Use one of the predefined parameter sets instead.
23
     //
24
     IceUtil::Mutex::Lock sync(*this);
25
-#    if OPENSSL_VERSION_NUMBER >= 0x10100000L
26
+#    if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
27
     if(keyLength >= 4096)
28
     {
29
         if(!_dh4096)
(-)files/patch-cpp-src-IceUtil-Cond.cpp (-11 lines)
Lines 1-11 Link Here
1
--- cpp/src/IceUtil/Cond.cpp.orig	2016-10-12 00:34:17.622732906 +0200
2
+++ cpp/src/IceUtil/Cond.cpp	2016-10-12 00:34:40.133725906 +0200
3
@@ -332,7 +332,7 @@
4
         throw ThreadSyscallException(__FILE__, __LINE__, rc);
5
     }
6
 
7
-#if !defined(__hppa) && !defined(__APPLE__) && !defined(__FreeBSD__)
8
+#if !defined(__hppa) && !defined(__APPLE__)
9
     rc = pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); 
10
     if(rc != 0)
11
     {
(-)files/patch-php-config-Make.rules.php (-16 / +16 lines)
Lines 1-22 Link Here
1
--- php/config/Make.rules.php.orig	2015-06-23 15:30:20.000000000 +0000
1
--- php/config/Make.rules.php.orig	2017-09-13 13:20:00.000000000 +0200
2
+++ php/config/Make.rules.php	2015-06-27 19:48:31.900063596 +0000
2
+++ php/config/Make.rules.php	2017-09-13 13:20:00.000000000 +0200
3
@@ -108,13 +108,8 @@
3
@@ -81,13 +81,8 @@ ifeq ($(findstring /php/test/,$(abspath $(MAKEFILE_LIST))),)
4
         $(error $(PHP_CONFIG) not found review your PHP installation and ensure $(PHP_CONFIG) is in your PATH)
5
     endif
4
 
6
 
5
 libdir		= $(top_srcdir)/lib
7
-    ifndef usr_dir_install
8
-        install_phpdir	= $(prefix)/php
9
-        install_libdir  	= $(prefix)/php
10
-    else
11
-        install_phpdir  	= $(prefix)/share/php
12
-        install_libdir  	= $(shell $(PHP_CONFIG) --extension-dir)
13
-    endif
14
+    install_phpdir         = $(prefix)/share/pear
15
+    install_libdir         = $(prefix)/lib/php/$(PHP_EXT_DIR)
16
 endif
6
 
17
 
7
-ifndef usr_dir_install
8
-    install_phpdir	= $(prefix)/php
9
-    install_libdir  	= $(prefix)/php
10
-else
11
-    install_phpdir  	= $(prefix)/share/php
12
-    install_libdir  	= $(shell $(PHP_CONFIG) --extension-dir)
13
-endif
14
+install_phpdir  	= $(prefix)/share/pear
15
+install_libdir  	= $(prefix)/lib/php/$(PHP_EXT_DIR)
16
 
17
 ifdef ice_src_dist
18
 ifdef ice_src_dist
18
     RPATH_DIR	= $(LOADER_PATH)/../../cpp/$(libsubdir)
19
@@ -145,7 +140,8 @@ else
19
@@ -172,7 +167,8 @@
20
 endif
20
 endif
21
 
21
 
22
 ifeq ($(installphplib),)
22
 ifeq ($(installphplib),)
(-)files/patch-python-modules-IcePy-Operation.cpp (-186 lines)
Lines 1-186 Link Here
1
--- python/modules/IcePy/Operation.cpp.orig	2017-01-29 22:23:51.186130998 +0100
2
+++ python/modules/IcePy/Operation.cpp	2017-01-29 22:24:55.929130998 +0100
3
@@ -1682,11 +1682,11 @@
4
             }
5
             else
6
             {
7
-                if(PyTuple_SET_ITEM(results.get(), info->pos, Unset) < 0)
8
+                if(PyTuple_SetItem(results.get(), info->pos, Unset) < 0)
9
                 {
10
                     return 0;
11
                 }
12
-                Py_INCREF(Unset); // PyTuple_SET_ITEM steals a reference.
13
+                Py_INCREF(Unset); // PyTuple_SetItem steals a reference.
14
             }
15
         }
16
 
17
@@ -2546,7 +2546,7 @@
18
             throwPythonException();
19
         }
20
 
21
-        if(PyTuple_SET_ITEM(result.get(), 0, ok ? incTrue() : incFalse()) < 0)
22
+        if(PyTuple_SetItem(result.get(), 0, ok ? incTrue() : incFalse()) < 0)
23
         {
24
             throwPythonException();
25
         }
26
@@ -2586,11 +2586,11 @@
27
         }
28
 #endif
29
 
30
-        if(PyTuple_SET_ITEM(result.get(), 1, op.get()) < 0)
31
+        if(PyTuple_SetItem(result.get(), 1, op.get()) < 0)
32
         {
33
             throwPythonException();
34
         }
35
-        op.release(); // PyTuple_SET_ITEM steals a reference.
36
+        op.release(); // PyTuple_SetItem steals a reference.
37
 
38
         return result.release();
39
     }
40
@@ -2827,7 +2827,7 @@
41
             return 0;
42
         }
43
 
44
-        if(PyTuple_SET_ITEM(args.get(), 0, ok ? incTrue() : incFalse()) < 0)
45
+        if(PyTuple_SetItem(args.get(), 0, ok ? incTrue() : incFalse()) < 0)
46
         {
47
             return 0;
48
         }
49
@@ -2867,11 +2867,11 @@
50
         memcpy(buf, results.first, sz);
51
 #endif
52
 
53
-        if(PyTuple_SET_ITEM(args.get(), 1, op.get()) < 0)
54
+        if(PyTuple_SetItem(args.get(), 1, op.get()) < 0)
55
         {
56
             return 0;
57
         }
58
-        op.release(); // PyTuple_SET_ITEM steals a reference.
59
+        op.release(); // PyTuple_SetItem steals a reference.
60
 
61
         return args.release();
62
     }
63
@@ -2910,7 +2910,7 @@
64
             return;
65
         }
66
 
67
-        if(PyTuple_SET_ITEM(args.get(), 0, ok ? incTrue() : incFalse()) < 0)
68
+        if(PyTuple_SetItem(args.get(), 0, ok ? incTrue() : incFalse()) < 0)
69
         {
70
             assert(PyErr_Occurred());
71
             PyErr_Print();
72
@@ -2958,13 +2958,13 @@
73
         memcpy(buf, results.first, sz);
74
 #endif
75
 
76
-        if(PyTuple_SET_ITEM(args.get(), 1, op.get()) < 0)
77
+        if(PyTuple_SetItem(args.get(), 1, op.get()) < 0)
78
         {
79
             assert(PyErr_Occurred());
80
             PyErr_Print();
81
             return;
82
         }
83
-        op.release(); // PyTuple_SET_ITEM steals a reference.
84
+        op.release(); // PyTuple_SetItem steals a reference.
85
 
86
         PyObjectHandle tmp = PyObject_Call(_response, args.get(), 0);
87
         if(PyErr_Occurred())
88
@@ -3126,7 +3126,7 @@
89
             return;
90
         }
91
 
92
-        if(PyTuple_SET_ITEM(args.get(), 0, ok ? incTrue() : incFalse()) < 0)
93
+        if(PyTuple_SetItem(args.get(), 0, ok ? incTrue() : incFalse()) < 0)
94
         {
95
             assert(PyErr_Occurred());
96
             PyErr_Print();
97
@@ -3174,13 +3174,13 @@
98
         memcpy(buf, results.first, sz);
99
 #endif
100
 
101
-        if(PyTuple_SET_ITEM(args.get(), 1, op.get()) < 0)
102
+        if(PyTuple_SetItem(args.get(), 1, op.get()) < 0)
103
         {
104
             assert(PyErr_Occurred());
105
             PyErr_Print();
106
             return;
107
         }
108
-        op.release(); // PyTuple_SET_ITEM steals a reference.
109
+        op.release(); // PyTuple_SetItem steals a reference.
110
 
111
         const string methodName = "ice_response";
112
         if(!PyObject_HasAttrString(_callback, STRCAST(methodName.c_str())))
113
@@ -3302,11 +3302,11 @@
114
                 }
115
                 else
116
                 {
117
-                    if(PyTuple_SET_ITEM(args.get(), info->pos + offset, Unset) < 0)
118
+                    if(PyTuple_SetItem(args.get(), info->pos + offset, Unset) < 0)
119
                     {
120
                         throwPythonException();
121
                     }
122
-                    Py_INCREF(Unset); // PyTuple_SET_ITEM steals a reference.
123
+                    Py_INCREF(Unset); // PyTuple_SetItem steals a reference.
124
                 }
125
             }
126
 
127
@@ -3329,11 +3329,11 @@
128
     // Create an object to represent Ice::Current. We need to append this to the argument tuple.
129
     //
130
     PyObjectHandle curr = createCurrent(current);
131
-    if(PyTuple_SET_ITEM(args.get(), PyTuple_GET_SIZE(args.get()) - 1, curr.get()) < 0)
132
+    if(PyTuple_SetItem(args.get(), PyTuple_GET_SIZE(args.get()) - 1, curr.get()) < 0)
133
     {
134
         throwPythonException();
135
     }
136
-    curr.release(); // PyTuple_SET_ITEM steals a reference.
137
+    curr.release(); // PyTuple_SetItem steals a reference.
138
 
139
     if(_op->amd)
140
     {
141
@@ -3347,7 +3347,7 @@
142
         }
143
         obj->upcall = new UpcallPtr(this);
144
         obj->encoding = current.encoding;
145
-        if(PyTuple_SET_ITEM(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SET_ITEM steals a reference.
146
+        if(PyTuple_SetItem(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SetItem steals a reference.
147
         {
148
             Py_DECREF(obj);
149
             throwPythonException();
150
@@ -3698,23 +3698,23 @@
151
     }
152
 #endif
153
 
154
-    if(PyTuple_SET_ITEM(args.get(), start, ip.get()) < 0)
155
+    if(PyTuple_SetItem(args.get(), start, ip.get()) < 0)
156
     {
157
         throwPythonException();
158
     }
159
     ++start;
160
-    ip.release(); // PyTuple_SET_ITEM steals a reference.
161
+    ip.release(); // PyTuple_SetItem steals a reference.
162
 
163
     //
164
     // Create an object to represent Ice::Current. We need to append
165
     // this to the argument tuple.
166
     //
167
     PyObjectHandle curr = createCurrent(current);
168
-    if(PyTuple_SET_ITEM(args.get(), start, curr.get()) < 0)
169
+    if(PyTuple_SetItem(args.get(), start, curr.get()) < 0)
170
     {
171
         throwPythonException();
172
     }
173
-    curr.release(); // PyTuple_SET_ITEM steals a reference.
174
+    curr.release(); // PyTuple_SetItem steals a reference.
175
 
176
     string dispatchName = "ice_invoke";
177
     if(_amd)
178
@@ -3730,7 +3730,7 @@
179
         }
180
         obj->upcall = new UpcallPtr(this);
181
         obj->encoding = current.encoding;
182
-        if(PyTuple_SET_ITEM(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SET_ITEM steals a reference.
183
+        if(PyTuple_SetItem(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SetItem steals a reference.
184
         {
185
             Py_DECREF(obj);
186
             throwPythonException();
(-)pkg-plist (-15 / +15 lines)
Lines 241-289 Link Here
241
include/Slice/RubyUtil.h
241
include/Slice/RubyUtil.h
242
include/Slice/Util.h
242
include/Slice/Util.h
243
lib/libFreeze.so
243
lib/libFreeze.so
244
lib/libFreeze.so.3.6.3
244
lib/libFreeze.so.3.6.4
245
lib/libFreeze.so.36
245
lib/libFreeze.so.36
246
lib/libGlacier2.so
246
lib/libGlacier2.so
247
lib/libGlacier2.so.3.6.3
247
lib/libGlacier2.so.3.6.4
248
lib/libGlacier2.so.36
248
lib/libGlacier2.so.36
249
lib/libGlacier2CryptPermissionsVerifier.so
249
lib/libGlacier2CryptPermissionsVerifier.so
250
lib/libGlacier2CryptPermissionsVerifier.so.3.6.3
250
lib/libGlacier2CryptPermissionsVerifier.so.3.6.4
251
lib/libGlacier2CryptPermissionsVerifier.so.36
251
lib/libGlacier2CryptPermissionsVerifier.so.36
252
lib/libIce.so
252
lib/libIce.so
253
lib/libIce.so.3.6.3
253
lib/libIce.so.3.6.4
254
lib/libIce.so.36
254
lib/libIce.so.36
255
lib/libIceBox.so
255
lib/libIceBox.so
256
lib/libIceBox.so.3.6.3
256
lib/libIceBox.so.3.6.4
257
lib/libIceBox.so.36
257
lib/libIceBox.so.36
258
lib/libIceDiscovery.so
258
lib/libIceDiscovery.so
259
lib/libIceDiscovery.so.3.6.3
259
lib/libIceDiscovery.so.3.6.4
260
lib/libIceDiscovery.so.36
260
lib/libIceDiscovery.so.36
261
lib/libIceGrid.so
261
lib/libIceGrid.so
262
lib/libIceGrid.so.3.6.3
262
lib/libIceGrid.so.3.6.4
263
lib/libIceGrid.so.36
263
lib/libIceGrid.so.36
264
lib/libIceLocatorDiscovery.so
264
lib/libIceLocatorDiscovery.so
265
lib/libIceLocatorDiscovery.so.3.6.3
265
lib/libIceLocatorDiscovery.so.3.6.4
266
lib/libIceLocatorDiscovery.so.36
266
lib/libIceLocatorDiscovery.so.36
267
lib/libIcePatch2.so
267
lib/libIcePatch2.so
268
lib/libIcePatch2.so.3.6.3
268
lib/libIcePatch2.so.3.6.4
269
lib/libIcePatch2.so.36
269
lib/libIcePatch2.so.36
270
lib/libIceSSL.so
270
lib/libIceSSL.so
271
lib/libIceSSL.so.3.6.3
271
lib/libIceSSL.so.3.6.4
272
lib/libIceSSL.so.36
272
lib/libIceSSL.so.36
273
lib/libIceStorm.so
273
lib/libIceStorm.so
274
lib/libIceStorm.so.3.6.3
274
lib/libIceStorm.so.3.6.4
275
lib/libIceStorm.so.36
275
lib/libIceStorm.so.36
276
lib/libIceStormService.so
276
lib/libIceStormService.so
277
lib/libIceStormService.so.3.6.3
277
lib/libIceStormService.so.3.6.4
278
lib/libIceStormService.so.36
278
lib/libIceStormService.so.36
279
lib/libIceUtil.so
279
lib/libIceUtil.so
280
lib/libIceUtil.so.3.6.3
280
lib/libIceUtil.so.3.6.4
281
lib/libIceUtil.so.36
281
lib/libIceUtil.so.36
282
lib/libIceXML.so
282
lib/libIceXML.so
283
lib/libIceXML.so.3.6.3
283
lib/libIceXML.so.3.6.4
284
lib/libIceXML.so.36
284
lib/libIceXML.so.36
285
lib/libSlice.so
285
lib/libSlice.so
286
lib/libSlice.so.3.6.3
286
lib/libSlice.so.3.6.4
287
lib/libSlice.so.36
287
lib/libSlice.so.36
288
man/man1/dumpdb.1.gz
288
man/man1/dumpdb.1.gz
289
man/man1/glacier2router.1.gz
289
man/man1/glacier2router.1.gz

Return to bug 222291