p4ruby 2020.1.2056123 → 2021.1.2156749

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e5610527695e89a26cc22b7418d48a4579b3d8d7ea3b9adaf6971e801f178af
4
- data.tar.gz: 502669cdd982a3881d3c118e05ac7e161de5682043408469436a699fd6aa6c30
3
+ metadata.gz: caea2db119dc72c9cbcdbb6d3218e0a548f75eb47c7e6471c66db6dd7d5bdb36
4
+ data.tar.gz: 3eb17c7df1baa55c73b3c195de8fa0e31bd86a5dd688970d831f5f4e205e3bf6
5
5
  SHA512:
6
- metadata.gz: 6ced573b1076fdfdba4b3b59f61235c64d790d94491e831e431ac34e870c146bdeb29cf723e53d3025e83a151b7753ce0fdd242bb7ca61fa0aa0fdb8badd9004
7
- data.tar.gz: 2492e93581b93465e717901080487954fb65fb13cbfd8e6ce23fba4c64ab2baa174cf14645664a59bdbf239297234d84459b08976b558b8e902e153fb61cafcc
6
+ metadata.gz: 9f43e94cc99bc92157512f438138610364959eeb8ccb57f313027f01e8767b699b03615ed01dac042315a6b4a5a7775c7e5cd09469733d9a73d7bbc1808624c9
7
+ data.tar.gz: f492d5051540489a0f62bd07b5d994148e02181f969523c633e5857d62253e2c983d83b9c90e7bab83b44efe2ef33770dfa025086badd89c99fbff0137e3a58d
data/LICENSE.txt CHANGED
@@ -1,24 +1,455 @@
1
- Copyright (c) 2001-2014, Perforce Software, Inc. All rights reserved.
1
+ Copyright (c) 2021, Perforce Software, Inc. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are met:
5
+
6
+ 1. Redistributions of source code must retain the above copyright notice, this
7
+ list of conditions and the following disclaimer.
8
+
9
+ 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+
13
+ 3. Neither the name of the copyright holder nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software without
15
+ specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
21
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ -----------------------
28
+
29
+ The following are the license statements for code used in
30
+ this program.
31
+
32
+
33
+ sol2 License
34
+ -----------------------
35
+
36
+ Copyright (c) 2013-2018 Rapptz, ThePhD, and contributors
37
+
38
+ Permission is hereby granted, free of charge, to any person obtaining
39
+ a copy of this software and associated documentation files (the
40
+ "Software"), to deal in the Software without restriction, including
41
+ without limitation the rights to use, copy, modify, merge, publish,
42
+ distribute, sublicense, and/or sell copies of the Software, and to
43
+ permit persons to whom the Software is furnished to do so, subject to
44
+ the following conditions:
45
+
46
+ The above copyright notice and this permission notice shall be
47
+ included in all copies or substantial portions of the Software.
48
+
49
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
50
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
51
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
52
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
53
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
54
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
55
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
56
+
57
+
58
+ Lua License
59
+ -----------------------
60
+
61
+ Copyright (c) 1994-2018 Lua.org, PUC-Rio.
62
+
63
+ Permission is hereby granted, free of charge, to any person obtaining
64
+ a copy of this software and associated documentation files (the
65
+ "Software"), to deal in the Software without restriction, including
66
+ without limitation the rights to use, copy, modify, merge, publish,
67
+ distribute, sublicense, and/or sell copies of the Software, and to
68
+ permit persons to whom the Software is furnished to do so, subject to
69
+ the following conditions:
70
+
71
+ The above copyright notice and this permission notice shall be
72
+ included in all copies or substantial portions of the Software.
73
+
74
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
75
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
76
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
77
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
78
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
79
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
80
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
81
+
82
+
83
+ cURL License
84
+ -----------------------
85
+
86
+ This code uses a permissive license. Please use the following
87
+ attribution in the documentation of the open source code.
88
+
89
+ Copyright (c) 1996 - 2018, Daniel Stenberg, daniel@haxx.se, and many
90
+ contributors, see the THANKS file.
91
+
92
+ All rights reserved.
93
+
94
+ Permission to use, copy, modify, and distribute this software for any
95
+ purpose with or without fee is hereby granted, provided that the above
96
+ copyright notice and this permission notice appear in all copies.
97
+
98
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
99
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
100
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
101
+ THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
102
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
103
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
104
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
105
+ SOFTWARE.
106
+
107
+ Except as contained in this notice, the name of a copyright holder shall
108
+ not be used in advertising or otherwise to promote the sale, use or
109
+ other dealings in this Software without prior written authorization of
110
+ the copyright holder.
111
+
112
+
113
+ Lua-cURLv3 License
114
+ -----------------------
115
+
116
+ Copyright (c) 2014-2018 Alexey Melnichuk
117
+
118
+ Permission is hereby granted, free of charge, to any person obtaining a
119
+ copy of this software and associated documentation files (the
120
+ "Software"), to deal in the Software without restriction, including
121
+ without limitation the rights to use, copy, modify, merge, publish,
122
+ distribute, sublicense, and/or sell copies of the Software, and to permit
123
+ persons to whom the Software is furnished to do so, subject to the
124
+ following conditions:
125
+
126
+ The above copyright notice and this permission notice shall be included
127
+ in all copies or substantial portions of the Software.
128
+
129
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
130
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
131
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
132
+ NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
133
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
134
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
135
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
136
+
137
+
138
+ LuaSQLite3 License
139
+ -----------------------
140
+
141
+ Copyright (C) 2002-2016 Tiago Dionizio, Doug Currie
142
+ All rights reserved.
143
+ Author : Tiago Dionizio <tiago.dionizio@ist.utl.pt>
144
+ Author : Doug Currie <doug.currie@alum.mit.edu>
145
+ Library : lsqlite3 - an SQLite 3 database binding for Lua 5
146
+
147
+ Permission is hereby granted, free of charge, to any person obtaining
148
+ a copy of this software and associated documentation files (the
149
+ "Software"), to deal in the Software without restriction, including
150
+ without limitation the rights to use, copy, modify, merge, publish,
151
+ distribute, sublicense, and/or sell copies of the Software, and to
152
+ permit persons to whom the Software is furnished to do so, subject to
153
+ the following conditions:
154
+
155
+ The above copyright notice and this permission notice shall be
156
+ included in all copies or substantial portions of the Software.
157
+
158
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
159
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
160
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
161
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
162
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
163
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
164
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
165
+
166
+
167
+ lua-cjson License
168
+ -----------------------
169
+
170
+ Copyright (c) 2010-2012 Mark Pulford <mark@kyne.com.au>
171
+
172
+ Permission is hereby granted, free of charge, to any person obtaining
173
+ a copy of this software and associated documentation files (the
174
+ "Software"), to deal in the Software without restriction, including
175
+ without limitation the rights to use, copy, modify, merge, publish,
176
+ distribute, sublicense, and/or sell copies of the Software, and to
177
+ permit persons to whom the Software is furnished to do so, subject to
178
+ the following conditions:
179
+
180
+ The above copyright notice and this permission notice shall be
181
+ included in all copies or substantial portions of the Software.
182
+
183
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
184
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
185
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
186
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
187
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
188
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
189
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
190
+
191
+
192
+ libc++ and libc++abi License
193
+ -----------------------
194
+
195
+ These libraries are dual-licensed:
196
+
197
+ The University of Illinois/NCSA Open Source License (NCSA)
198
+ Developed under the LLVM Project
199
+
200
+ Permission is hereby granted, free of charge, to any person obtaining a
201
+ copy of this software and associated documentation files (the
202
+ "Software"), to deal with the Software without restriction, including
203
+ without limitation the rights to use, copy, modify, merge, publish,
204
+ distribute, sublicense, and/or sell copies of the Software, and to
205
+ permit persons to whom the Software is furnished to do so, subject to the
206
+ following conditions:
207
+
208
+ Redistributions of source code must retain the above copyright notice,
209
+ this list of conditions and the following disclaimers.
210
+ Redistributions in binary form must reproduce the above copyright
211
+ notice, this list of conditions and the following disclaimers in the
212
+ documentation and/or other materials provided with the distribution.
213
+ Neither the names of <Name of Development Group, Name of Institution>,
214
+ nor the names of its contributors may be used to endorse or promote
215
+ products derived from this Software without specific prior written
216
+ permission.
217
+
218
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
219
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
220
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
221
+ IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
222
+ ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
223
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
224
+ SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
225
+
226
+ MIT
227
+ Developed under the LLVM Project
228
+
229
+ Permission is hereby granted, free of charge, to any person obtaining a
230
+ copy of this software and associated documentation files (the
231
+ "Software"), to deal in the Software without restriction, including
232
+ without limitation the rights to use, copy, modify, merge, publish,
233
+ distribute, sublicense, and/or sell copies of the Software, and to permit
234
+ persons to whom the Software is furnished to do so, subject to the
235
+ following conditions:
236
+
237
+ The above copyright notice and this permission notice shall be included
238
+ in all copies or substantial portions of the Software.
239
+
240
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
241
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
242
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
243
+ NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
244
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
245
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
246
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
247
+
248
+
249
+ jemalloc
250
+ -----------------------
251
+
252
+ Copyright (C) 2002-present Jason Evans <jasone@canonware.com>.
253
+ All rights reserved.
254
+ Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved.
255
+ Copyright (C) 2009-present Facebook, Inc. All rights reserved.
2
256
 
3
257
  Redistribution and use in source and binary forms, with or without
4
258
  modification, are permitted provided that the following conditions are met:
259
+ 1. Redistributions of source code must retain the above copyright
260
+ notice(s), this list of conditions and the following disclaimer.
261
+ 2. Redistributions in binary form must reproduce the above copyright
262
+ notice(s), this list of conditions and the following disclaimer in the
263
+ documentation and/or other materials provided with the distribution.
264
+
265
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
266
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
267
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
268
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
269
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
270
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
271
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
272
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
273
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
274
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
275
+ SUCH DAMAGE.
276
+
277
+
278
+ JSON for Modern C++
279
+ -----------------------
280
+
281
+ Copyright (c) 2013-2018 Niels Lohmann
282
+
283
+ Permission is hereby granted, free of charge, to any person obtaining
284
+ a copy of this software and associated documentation files (the
285
+ "Software"), to deal in the Software without restriction, including
286
+ without limitation the rights to use, copy, modify, merge, publish,
287
+ distribute, sublicense, and/or sell copies of the Software, and to permit
288
+ persons to whom the Software is furnished to do so, subject to the
289
+ following conditions:
290
+
291
+ The above copyright notice and this permission notice shall be included
292
+ in all copies or substantial portions of the Software.
293
+
294
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
295
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
296
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
297
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
298
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
299
+ OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
300
+ THE USE OR OTHER DEALINGS IN THE SOFTWARE.
301
+
302
+ optional-lite and any-lite
303
+ Martin Moene
304
+ -----------------------
305
+
306
+ Boost Software License - Version 1.0 - August 17th, 2003
307
+
308
+ Permission is hereby granted, free of charge, to any person or organization
309
+ obtaining a copy of the software and accompanying documentation covered by
310
+ this license (the "Software") to use, reproduce, display, distribute,
311
+ execute, and transmit the Software, and to prepare derivative works of the
312
+ Software, and to permit third-parties to whom the Software is furnished to
313
+ do so, all subject to the following:
314
+
315
+ The copyright notices in the Software and this entire statement, including
316
+ the above license grant, this restriction and the following disclaimer,
317
+ must be included in all copies of the Software, in whole or in part, and
318
+ all derivative works of the Software, unless such copies or derivative
319
+ works are solely in the form of machine-executable object code generated by
320
+ a source language processor.
321
+
322
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
323
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
324
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
325
+ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
326
+ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
327
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
328
+ DEALINGS IN THE SOFTWARE.
329
+
330
+
331
+
332
+ LICENSE ISSUES
333
+ ==============
334
+
335
+ The OpenSSL toolkit stays under a double license, i.e. both the conditions of
336
+ the OpenSSL License and the original SSLeay license apply to the toolkit.
337
+ See below for the actual license texts.
338
+
339
+ OpenSSL License
340
+ ---------------
341
+
342
+ /* ====================================================================
343
+ * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved.
344
+ *
345
+ * Redistribution and use in source and binary forms, with or without
346
+ * modification, are permitted provided that the following conditions
347
+ * are met:
348
+ *
349
+ * 1. Redistributions of source code must retain the above copyright
350
+ * notice, this list of conditions and the following disclaimer.
351
+ *
352
+ * 2. Redistributions in binary form must reproduce the above copyright
353
+ * notice, this list of conditions and the following disclaimer in
354
+ * the documentation and/or other materials provided with the
355
+ * distribution.
356
+ *
357
+ * 3. All advertising materials mentioning features or use of this
358
+ * software must display the following acknowledgment:
359
+ * "This product includes software developed by the OpenSSL Project
360
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
361
+ *
362
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
363
+ * endorse or promote products derived from this software without
364
+ * prior written permission. For written permission, please contact
365
+ * openssl-core@openssl.org.
366
+ *
367
+ * 5. Products derived from this software may not be called "OpenSSL"
368
+ * nor may "OpenSSL" appear in their names without prior written
369
+ * permission of the OpenSSL Project.
370
+ *
371
+ * 6. Redistributions of any form whatsoever must retain the following
372
+ * acknowledgment:
373
+ * "This product includes software developed by the OpenSSL Project
374
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
375
+ *
376
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
377
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
378
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
379
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
380
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
381
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
382
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
383
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
384
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
385
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
386
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
387
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
388
+ * ====================================================================
389
+ *
390
+ * This product includes cryptographic software written by Eric Young
391
+ * (eay@cryptsoft.com). This product includes software written by Tim
392
+ * Hudson (tjh@cryptsoft.com).
393
+ *
394
+ */
395
+
396
+ Original SSLeay License
397
+ -----------------------
398
+
399
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
400
+ * All rights reserved.
401
+ *
402
+ * This package is an SSL implementation written
403
+ * by Eric Young (eay@cryptsoft.com).
404
+ * The implementation was written so as to conform with Netscapes SSL.
405
+ *
406
+ * This library is free for commercial and non-commercial use as long as
407
+ * the following conditions are aheared to. The following conditions
408
+ * apply to all code found in this distribution, be it the RC4, RSA,
409
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
410
+ * included with this distribution is covered by the same copyright terms
411
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
412
+ *
413
+ * Copyright remains Eric Young's, and as such any Copyright notices in
414
+ * the code are not to be removed.
415
+ * If this package is used in a product, Eric Young should be given attribution
416
+ * as the author of the parts of the library used.
417
+ * This can be in the form of a textual message at program startup or
418
+ * in documentation (online or textual) provided with the package.
419
+ *
420
+ * Redistribution and use in source and binary forms, with or without
421
+ * modification, are permitted provided that the following conditions
422
+ * are met:
423
+ * 1. Redistributions of source code must retain the copyright
424
+ * notice, this list of conditions and the following disclaimer.
425
+ * 2. Redistributions in binary form must reproduce the above copyright
426
+ * notice, this list of conditions and the following disclaimer in the
427
+ * documentation and/or other materials provided with the distribution.
428
+ * 3. All advertising materials mentioning features or use of this software
429
+ * must display the following acknowledgement:
430
+ * "This product includes cryptographic software written by
431
+ * Eric Young (eay@cryptsoft.com)"
432
+ * The word 'cryptographic' can be left out if the rouines from the library
433
+ * being used are not cryptographic related :-).
434
+ * 4. If you include any Windows specific code (or a derivative thereof) from
435
+ * the apps directory (application code) you must include an acknowledgement:
436
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
437
+ *
438
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
439
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
440
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
441
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
442
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
443
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
444
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
445
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
446
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
447
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
448
+ * SUCH DAMAGE.
449
+ *
450
+ * The licence and distribution terms for any publically available version or
451
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
452
+ * copied and put under another distribution licence
453
+ * [including the GNU Public Licence.]
454
+ */
5
455
 
6
- 1. Redistributions of source code must retain the above copyright
7
- notice, this list of conditions and the following disclaimer.
8
-
9
- 2. Redistributions in binary form must reproduce the above copyright
10
- notice, this list of conditions and the following disclaimer in the
11
- documentation and/or other materials provided with the distribution.
12
-
13
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
16
- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PERFORCE
17
- SOFTWARE, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
22
- TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
23
- THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
24
- DAMAGE.
@@ -56,7 +56,6 @@ ClientProgressRuby::ClientProgressRuby(VALUE prog, int t) {
56
56
  }
57
57
 
58
58
  ClientProgressRuby::~ClientProgressRuby() {
59
- rb_gc_mark( progress );
60
59
  }
61
60
 
62
61
  void ClientProgressRuby::Description(const StrPtr *d, int u) {
@@ -38,6 +38,7 @@
38
38
  #include <ruby.h>
39
39
  #include "undefdups.h"
40
40
  #include <p4/clientapi.h>
41
+ #include <p4/strtable.h>
41
42
  #include <p4/clientprog.h>
42
43
  #include <p4/spec.h>
43
44
  #include <p4/diff.h>
@@ -77,6 +78,7 @@ ClientUserRuby::ClientUserRuby(SpecMgr *s) {
77
78
  rubyExcept = 0;
78
79
  alive = 1;
79
80
  track = false;
81
+ SetSSOHandler( ssoHandler = new P4ClientSSO( s ) );
80
82
 
81
83
  ID idP4 = rb_intern("P4");
82
84
  ID idP4OH = rb_intern("OutputHandler");
@@ -723,4 +725,157 @@ void ClientUserRuby::GCMark() {
723
725
  rb_gc_mark( cProgress );
724
726
 
725
727
  results.GCMark();
728
+ ssoHandler->GCMark();
726
729
  }
730
+
731
+ //
732
+ // SSO handler
733
+ //
734
+
735
+ P4ClientSSO::P4ClientSSO( SpecMgr *s )
736
+ {
737
+ specMgr = s;
738
+ resultSet = 0;
739
+ ssoEnabled = 0;
740
+ result = Qnil;
741
+ }
742
+
743
+ ClientSSOStatus
744
+ P4ClientSSO::Authorize( StrDict &vars, int maxLength, StrBuf &strbuf )
745
+ {
746
+ ssoVars.Clear();
747
+
748
+ if( !ssoEnabled )
749
+ return CSS_SKIP;
750
+
751
+ if( ssoEnabled < 0 )
752
+ return CSS_UNSET;
753
+
754
+ if( resultSet )
755
+ {
756
+ strbuf.Clear();
757
+ VALUE resval = result;
758
+
759
+ //if( P4RDB_CALLS )
760
+ // std::cerr << "[P4] ClientSSO::Authorize(). Using supplied input"
761
+ // << std::endl;
762
+
763
+ if (Qtrue == rb_obj_is_kind_of(result, rb_cArray)) {
764
+ resval = rb_ary_shift(result);
765
+ }
766
+
767
+ if( resval != Qnil ) {
768
+ // Convert whatever's left into a string
769
+ ID to_s = rb_intern("to_s");
770
+ VALUE str = rb_funcall(resval, to_s, 0);
771
+ strbuf.Set(StringValuePtr(str));
772
+ }
773
+
774
+ return resultSet == 2 ? CSS_FAIL
775
+ : CSS_PASS;
776
+ }
777
+
778
+ ssoVars.CopyVars( vars );
779
+ return CSS_EXIT;
780
+ }
781
+
782
+ VALUE
783
+ P4ClientSSO::EnableSSO( VALUE e )
784
+ {
785
+ if( e == Qnil )
786
+ {
787
+ ssoEnabled = 0;
788
+ return Qtrue;
789
+ }
790
+
791
+ if( e == Qtrue )
792
+ {
793
+ ssoEnabled = 1;
794
+ return Qtrue;
795
+ }
796
+
797
+ if( e == Qfalse )
798
+ {
799
+ ssoEnabled = -1;
800
+ return Qtrue;
801
+ }
802
+
803
+ return Qfalse;
804
+ }
805
+
806
+ VALUE
807
+ P4ClientSSO::SSOEnabled()
808
+ {
809
+ if( ssoEnabled == 1 )
810
+ {
811
+ return Qtrue;
812
+ }
813
+ else if( ssoEnabled == -1 )
814
+ {
815
+ return Qfalse;
816
+ }
817
+ else
818
+ {
819
+ return Qnil;
820
+ }
821
+ }
822
+
823
+ VALUE
824
+ P4ClientSSO::SetPassResult( VALUE i )
825
+ {
826
+ resultSet = 1;
827
+ return SetResult( i );
828
+ }
829
+
830
+ VALUE
831
+ P4ClientSSO::GetPassResult()
832
+ {
833
+ if( resultSet == 1 )
834
+ {
835
+ return result;
836
+ }
837
+ else
838
+ {
839
+ return Qnil;
840
+ }
841
+ }
842
+
843
+ VALUE
844
+ P4ClientSSO::SetFailResult( VALUE i )
845
+ {
846
+ resultSet = 2;
847
+ return SetResult( i );
848
+ }
849
+
850
+ VALUE
851
+ P4ClientSSO::GetFailResult()
852
+ {
853
+ if( resultSet == 2 )
854
+ {
855
+ return result;
856
+ }
857
+ else
858
+ {
859
+ return Qnil;
860
+ }
861
+ }
862
+
863
+ VALUE
864
+ P4ClientSSO::SetResult( VALUE i )
865
+ {
866
+ //if (P4RDB_CALLS) fprintf(stderr, "[P4] P4ClientSSO::SetResult()\n");
867
+
868
+ result = i;
869
+ return Qtrue;
870
+ }
871
+
872
+ VALUE
873
+ P4ClientSSO::GetSSOVars()
874
+ {
875
+ return specMgr->StrDictToHash( &ssoVars );
876
+ }
877
+
878
+ void
879
+ P4ClientSSO::GCMark() {
880
+ if (result != Qnil) rb_gc_mark( result );
881
+ }
@@ -42,6 +42,39 @@
42
42
  class SpecMgr;
43
43
  class ClientProgress;
44
44
 
45
+ class P4ClientSSO : public ClientSSO
46
+ {
47
+ public:
48
+ P4ClientSSO( SpecMgr *s );
49
+
50
+ // Client SSO methods overridden here
51
+ virtual ClientSSOStatus Authorize( StrDict &vars, int maxLength,
52
+ StrBuf &result );
53
+
54
+ // Local methods
55
+ VALUE EnableSSO( VALUE e );
56
+ VALUE SSOEnabled();
57
+ VALUE SetPassResult( VALUE i );
58
+ VALUE GetPassResult();
59
+ VALUE SetFailResult( VALUE i );
60
+ VALUE GetFailResult();
61
+ VALUE GetSSOVars();
62
+
63
+ void GCMark();
64
+
65
+ private:
66
+
67
+ VALUE SetResult( VALUE i );
68
+
69
+ int ssoEnabled;
70
+ int resultSet;
71
+
72
+ StrBufDict ssoVars;
73
+ SpecMgr * specMgr;
74
+
75
+ VALUE result;
76
+ };
77
+
45
78
  class ClientUserRuby: public ClientUser, public KeepAlive {
46
79
  public:
47
80
  ClientUserRuby(SpecMgr *s);
@@ -101,6 +134,16 @@ public:
101
134
  return progress;
102
135
  }
103
136
 
137
+ // SSO handler support
138
+
139
+ VALUE EnableSSO( VALUE e ) { return ssoHandler->EnableSSO( e ); }
140
+ VALUE SSOEnabled() { return ssoHandler->SSOEnabled(); }
141
+ VALUE SetSSOPassResult( VALUE i ) { return ssoHandler->SetPassResult( i ); }
142
+ VALUE GetSSOPassResult(){ return ssoHandler->GetPassResult();}
143
+ VALUE SetSSOFailResult( VALUE i ) { return ssoHandler->SetFailResult( i ); }
144
+ VALUE GetSSOFailResult(){ return ssoHandler->GetFailResult();}
145
+ VALUE GetSSOVars() { return ssoHandler->GetSSOVars(); }
146
+
104
147
  // override from KeepAlive
105
148
  virtual int IsAlive() {
106
149
  return alive;
@@ -129,5 +172,6 @@ private:
129
172
  int alive;
130
173
  int rubyExcept;
131
174
  bool track;
175
+ P4ClientSSO * ssoHandler;
132
176
  };
133
177
 
data/ext/P4/extconf.rb CHANGED
@@ -425,6 +425,8 @@ def p4_cpu(os)
425
425
  when :darwin, :linux
426
426
  if cpu =~ /i686/
427
427
  'x86'
428
+ elsif cpu =~ /universal/
429
+ 'x86_64'
428
430
  else
429
431
  cpu
430
432
  end
@@ -451,7 +453,9 @@ def p4_platform_label
451
453
  else
452
454
  'mingwx86'
453
455
  end
454
- when /darwin/
456
+ when /darwin19|darwin[2-9][0-9]/
457
+ "macosx1015#{p4_cpu(:darwin)}"
458
+ when /darwin/
455
459
  "darwin90#{p4_cpu(:darwin)}"
456
460
  when /solaris/
457
461
  "solaris10#{p4_cpu(:solaris)}"
@@ -484,6 +488,8 @@ def filename
484
488
  filename = 'p4api-openssl1.0.2.zip'
485
489
  end
486
490
  end
491
+ elsif RbConfig::CONFIG['target_os'].downcase =~ /darwin19|darwin[2-9][0-9]/
492
+ filename = 'p4api-openssl1.1.1.tgz'
487
493
  else
488
494
  filename = 'p4api.tgz'
489
495
  if !openssl_number.to_s.empty?
data/ext/P4/p4.cpp CHANGED
@@ -314,6 +314,25 @@ static VALUE p4_set_enviro_file( VALUE self, VALUE rbstr )
314
314
  return Qtrue;
315
315
  }
316
316
 
317
+ static VALUE p4_get_evar( VALUE self, VALUE var )
318
+ {
319
+ P4ClientApi *p4;
320
+ const StrPtr *val;
321
+ Data_Get_Struct( self, P4ClientApi, p4 );
322
+ val = p4->GetEVar( StringValuePtr( var ) );
323
+ if( !val ) return Qnil;
324
+
325
+ return P4Utils::ruby_string( val->Text() );
326
+ }
327
+
328
+ static VALUE p4_set_evar( VALUE self, VALUE var, VALUE val )
329
+ {
330
+ P4ClientApi *p4;
331
+ Data_Get_Struct( self, P4ClientApi, p4 );
332
+ p4->SetEVar( StringValuePtr( var ), StringValuePtr( val ) );
333
+ return Qtrue;
334
+ }
335
+
317
336
  static VALUE p4_get_host( VALUE self )
318
337
  {
319
338
  P4ClientApi *p4;
@@ -642,7 +661,7 @@ static VALUE p4_run( VALUE self, VALUE args )
642
661
 
643
662
  // Allocate storage on the stack so it's automatically reclaimed
644
663
  // when we exit.
645
- char **p4args = ALLOCA_N( char *, argc + 1 );
664
+ char **p4args = RB_ALLOC_N( char *, argc + 1 );
646
665
 
647
666
  // Copy the args across
648
667
  for ( i = 0; i < argc; i++ )
@@ -808,6 +827,58 @@ static VALUE p4_set_progress( VALUE self, VALUE progress )
808
827
  return p4->SetProgress( progress );
809
828
  }
810
829
 
830
+ /*******************************************************************************
831
+ * SSO handler support
832
+ ******************************************************************************/
833
+ static VALUE p4_get_enabled_sso( VALUE self )
834
+ {
835
+ P4ClientApi *p4;
836
+ Data_Get_Struct( self, P4ClientApi, p4 );
837
+ return p4->GetEnableSSO();
838
+ }
839
+
840
+ static VALUE p4_set_enable_sso( VALUE self, VALUE enable )
841
+ {
842
+ P4ClientApi *p4;
843
+ Data_Get_Struct( self, P4ClientApi, p4 );
844
+ return p4->SetEnableSSO( enable );
845
+ }
846
+
847
+ static VALUE p4_get_sso_vars( VALUE self )
848
+ {
849
+ P4ClientApi *p4;
850
+ Data_Get_Struct( self, P4ClientApi, p4 );
851
+ return p4->GetSSOVars();
852
+ }
853
+
854
+ static VALUE p4_get_sso_passresult( VALUE self )
855
+ {
856
+ P4ClientApi *p4;
857
+ Data_Get_Struct( self, P4ClientApi, p4 );
858
+ return p4->GetSSOPassResult();
859
+ }
860
+
861
+ static VALUE p4_set_sso_passresult( VALUE self, VALUE result )
862
+ {
863
+ P4ClientApi *p4;
864
+ Data_Get_Struct( self, P4ClientApi, p4 );
865
+ return p4->SetSSOPassResult( result );
866
+ }
867
+
868
+ static VALUE p4_get_sso_failresult( VALUE self )
869
+ {
870
+ P4ClientApi *p4;
871
+ Data_Get_Struct( self, P4ClientApi, p4 );
872
+ return p4->GetSSOFailResult();
873
+ }
874
+
875
+ static VALUE p4_set_sso_failresult( VALUE self, VALUE result )
876
+ {
877
+ P4ClientApi *p4;
878
+ Data_Get_Struct( self, P4ClientApi, p4 );
879
+ return p4->SetSSOFailResult( result );
880
+ }
881
+
811
882
  /*******************************************************************************
812
883
  * P4::MergeData methods. Construction/destruction defined elsewhere
813
884
  ******************************************************************************/
@@ -1262,6 +1333,8 @@ void Init_P4()
1262
1333
  rb_define_method( cP4, "set_env", RUBY_METHOD_FUNC(p4_set_env) , 2 );
1263
1334
  rb_define_method( cP4, "enviro_file", RUBY_METHOD_FUNC(p4_get_enviro_file), 0);
1264
1335
  rb_define_method( cP4, "enviro_file=", RUBY_METHOD_FUNC(p4_set_enviro_file), 1);
1336
+ rb_define_method( cP4, "evar", RUBY_METHOD_FUNC(p4_get_evar) , 1 );
1337
+ rb_define_method( cP4, "set_evar", RUBY_METHOD_FUNC(p4_set_evar) , 2 );
1265
1338
  rb_define_method( cP4, "host", RUBY_METHOD_FUNC(p4_get_host) , 0 );
1266
1339
  rb_define_method( cP4, "host=", RUBY_METHOD_FUNC(p4_set_host) , 1 );
1267
1340
  rb_define_method( cP4, "ignore_file",RUBY_METHOD_FUNC(p4_get_ignore) , 0 );
@@ -1335,6 +1408,16 @@ void Init_P4()
1335
1408
  rb_define_method( cP4, "progress", RUBY_METHOD_FUNC(p4_get_progress), 0);
1336
1409
  rb_define_method( cP4, "progress=", RUBY_METHOD_FUNC(p4_set_progress), 1);
1337
1410
 
1411
+ // SSO handling
1412
+ rb_define_method( cP4, "loginsso", RUBY_METHOD_FUNC(p4_get_enabled_sso), 0);
1413
+ rb_define_method( cP4, "loginsso=", RUBY_METHOD_FUNC(p4_set_enable_sso), 1);
1414
+ rb_define_method( cP4, "ssovars", RUBY_METHOD_FUNC(p4_get_sso_vars), 0);
1415
+ rb_define_method( cP4, "ssopassresult", RUBY_METHOD_FUNC(p4_get_sso_passresult), 0);
1416
+ rb_define_method( cP4, "ssopassresult=", RUBY_METHOD_FUNC(p4_set_sso_passresult), 1);
1417
+ rb_define_method( cP4, "ssofailresult", RUBY_METHOD_FUNC(p4_get_sso_failresult), 0);
1418
+ rb_define_method( cP4, "ssofailresult=", RUBY_METHOD_FUNC(p4_set_sso_failresult), 1);
1419
+
1420
+
1338
1421
  // P4::MergeData class
1339
1422
  cP4MD = rb_define_class_under( cP4, "MergeData", rb_cObject );
1340
1423
 
@@ -37,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
37
  #include <ruby.h>
38
38
  #include "undefdups.h"
39
39
  #include <p4/clientapi.h>
40
+ #include <p4/strtable.h>
40
41
  #include <p4/i18napi.h>
41
42
  #include <p4/enviro.h>
42
43
  #include <p4/hostenv.h>
@@ -142,6 +143,21 @@ P4ClientApi::GetEnviroFile()
142
143
  return enviro->GetEnviroFile();
143
144
  }
144
145
 
146
+ void
147
+ P4ClientApi::SetEVar( const char *var, const char *val )
148
+ {
149
+ StrRef sVar( var );
150
+ StrRef sVal( val );
151
+ client.SetEVar( sVar, sVal );
152
+ }
153
+
154
+ const StrPtr *
155
+ P4ClientApi::GetEVar( const char *var )
156
+ {
157
+ StrRef sVar( var );
158
+ return client.GetEVar( sVar );
159
+ }
160
+
145
161
  void
146
162
  P4ClientApi::SetApiLevel( int level )
147
163
  {
@@ -760,3 +776,49 @@ P4ClientApi::Except( const char *func, Error *e )
760
776
  e->Fmt( &m );
761
777
  Except( func, m.Text() );
762
778
  }
779
+
780
+ //
781
+ // SSO Handlers
782
+ //
783
+
784
+ VALUE
785
+ P4ClientApi::SetEnableSSO( VALUE e )
786
+ {
787
+ return ui.EnableSSO( e );
788
+ }
789
+
790
+ VALUE
791
+ P4ClientApi::GetEnableSSO()
792
+ {
793
+ return ui.SSOEnabled();
794
+ }
795
+
796
+ VALUE
797
+ P4ClientApi::GetSSOVars()
798
+ {
799
+ return ui.GetSSOVars();
800
+ }
801
+
802
+ VALUE
803
+ P4ClientApi::SetSSOPassResult( VALUE r )
804
+ {
805
+ return ui.SetSSOPassResult( r );
806
+ }
807
+
808
+ VALUE
809
+ P4ClientApi::GetSSOPassResult()
810
+ {
811
+ return ui.GetSSOPassResult();
812
+ }
813
+
814
+ VALUE
815
+ P4ClientApi::SetSSOFailResult( VALUE r )
816
+ {
817
+ return ui.SetSSOFailResult( r );
818
+ }
819
+
820
+ VALUE
821
+ P4ClientApi::GetSSOFailResult()
822
+ {
823
+ return ui.GetSSOFailResult();
824
+ }
data/ext/P4/p4clientapi.h CHANGED
@@ -73,6 +73,7 @@ public:
73
73
  void SetClient( const char *c ) { client.SetClient( c ); }
74
74
  void SetCwd( const char *c );
75
75
  void SetEnviroFile( const char *c );
76
+ void SetEVar( const char *var, const char *val );
76
77
  void SetHost( const char *h ) { client.SetHost( h ); }
77
78
  void SetIgnoreFile( const char *f ) { client.SetIgnoreFile( f ); }
78
79
  void SetMaxResults( int v ) { maxResults = v; }
@@ -96,6 +97,7 @@ public:
96
97
  const StrPtr &GetCwd() { return client.GetCwd(); }
97
98
  const char * GetEnv( const char *v);
98
99
  const StrPtr *GetEnviroFile();
100
+ const StrPtr *GetEVar(const char *v);
99
101
  const StrPtr &GetHost() { return client.GetHost(); }
100
102
  const StrPtr &GetIgnoreFile() { return client.GetIgnoreFile();}
101
103
  const StrPtr &GetLanguage() { return client.GetLanguage(); }
@@ -169,6 +171,15 @@ public:
169
171
  VALUE SetProgress( VALUE progress );
170
172
  VALUE GetProgress() { return ui.GetProgress(); }
171
173
 
174
+ // SSO handler
175
+ VALUE SetEnableSSO( VALUE e );
176
+ VALUE GetEnableSSO();
177
+ VALUE GetSSOVars();
178
+ VALUE SetSSOPassResult( VALUE r );
179
+ VALUE GetSSOPassResult();
180
+ VALUE SetSSOFailResult( VALUE r );
181
+ VALUE GetSSOFailResult();
182
+
172
183
  // Ruby garbage collection
173
184
  void GCMark();
174
185
 
@@ -106,3 +106,32 @@ SpecDataRuby::SetLine( SpecElem *sd, int x, const StrPtr *v, Error *e )
106
106
  }
107
107
  return;
108
108
  }
109
+
110
+ void
111
+ SpecDataRuby::Comment ( SpecElem *sd, int x, const char **wv, int nl, Error *e )
112
+ {
113
+ VALUE key;
114
+ VALUE val;
115
+ VALUE ary;
116
+ StrBuf t;
117
+
118
+ key = P4Utils::ruby_string( sd->tag.Text(), sd->tag.Length() );
119
+ val = P4Utils::ruby_string( *wv );
120
+
121
+ if( sd->IsList() )
122
+ {
123
+
124
+ ary = rb_hash_aref( hash, key ); // rb_hash_aref - get the value for hash key
125
+ if( ary == Qnil )
126
+ {
127
+ ary = rb_ary_new();
128
+ rb_hash_aset( hash, key, ary ); // rb_hash_aset(hash, key, value) - set the hash key to value
129
+ }
130
+ rb_ary_store( ary, x, val );
131
+ }
132
+ else
133
+ {
134
+ rb_hash_aset( hash, key, val );
135
+ }
136
+ return;
137
+ }
data/ext/P4/p4specdata.h CHANGED
@@ -44,6 +44,8 @@ class SpecDataRuby : public SpecData
44
44
  virtual StrPtr *GetLine( SpecElem *sd, int x, const char **cmt );
45
45
  virtual void SetLine( SpecElem *sd, int x, const StrPtr *val,
46
46
  Error *e );
47
+ virtual void Comment( SpecElem *sd, int x, const char **wv,
48
+ int nl, Error *e );
47
49
 
48
50
  private:
49
51
  VALUE hash;
data/ext/P4/specmgr.cpp CHANGED
@@ -126,13 +126,13 @@ struct defaultspec {
126
126
  "MaxResults;code:402;type:word;len:12;;"
127
127
  "MaxScanRows;code:403;type:word;len:12;;"
128
128
  "MaxLockTime;code:407;type:word;len:12;;"
129
- "MaxOpenFiles;code:413;type:word;len:12;;"
129
+ "MaxOpenFiles;code:413;type:word;len:12;;"
130
130
  "Timeout;code:406;type:word;len:12;;"
131
131
  "PasswordTimeout;code:409;type:word;len:12;;"
132
132
  "LdapConfig;code:410;type:line;len:128;;"
133
133
  "LdapSearchQuery;code:411;type:line;len:128;;"
134
134
  "LdapUserAttribute;code:412;type:line;len:128;;"
135
- "LdapUserDNAttribute;code:414;type:line;len:128;;"
135
+ "LdapUserDNAttribute;code:414;type:line;len:128;;"
136
136
  "Subgroups;code:404;type:wlist;len:32;opt:default;;"
137
137
  "Owners;code:408;type:wlist;len:32;opt:default;;"
138
138
  "Users;code:405;type:wlist;len:32;opt:default;;"
@@ -200,12 +200,13 @@ struct defaultspec {
200
200
  "Clients;code:458;len:8;;"
201
201
  "Users;code:459;len:8;;"
202
202
  "Files;code:460;len:8;;"
203
- "Repos;code:462;len:8;;"
204
- },
203
+ "Repos;code:462;len:8;;"
204
+ "ExtraCapabilities;code:463;type:llist;len:512;;"
205
+ },
205
206
  {
206
207
  "protect",
207
- "SubPath;code:502;ro;len:64;;"
208
- "Update;code:503;type:date;ro;fmt:L;len:20;;"
208
+ "SubPath;code:502;ro;len:64;;"
209
+ "Update;code:503;type:date;ro;fmt:L;len:20;;"
209
210
  "Protections;code:501;fmt:C;type:wlist;words:5;opt:default;z;len:64;;"
210
211
  },
211
212
  {
@@ -226,36 +227,40 @@ struct defaultspec {
226
227
  },
227
228
  {
228
229
  "repo",
229
- "Repo;code:1001;rq;ro;len:128;;"
230
- "Owner;code:1002;len:32;;"
231
- "Created;code:1003;type:date;ro;fmt:L;len:20;;"
232
- "Pushed;code:1004;type:date;ro;fmt:L;len:20;;"
233
- "ForkedFrom;code:1005;ro;len:128;;"
234
- "Description;code:1006;type:text;len:128;;"
235
- "DefaultBranch;code:1007;len:32;;"
236
- "MirroredFrom;code:1008;len:32;;"
237
- "Options;code:1009;type:select;len:10;val:lfs/nolfs;;"
238
- "GconnMirrorServerId;code:1010;len:32;;"
230
+ "Repo;code:1001;rq;ro;fmt:L;len:128;;"
231
+ "Owner;code:1002;fmt:R;len:32;;"
232
+ "Created;code:1003;type:date;ro;fmt:L;len:20;;"
233
+ "Pushed;code:1004;type:date;ro;fmt:R;len:20;;"
234
+ "ForkedFrom;code:1005;ro;fmt:L;len:128;;"
235
+ "Description;code:1006;type:text;len:128;;"
236
+ "DefaultBranch;code:1007;fmt:L;len:32;;"
237
+ "MirroredFrom;code:1008;fmt:R;len:32;;"
238
+ "Options;code:1009;type:select;len:10;val:lfs/nolfs;;"
239
+ "GconnMirrorServerId;code:1010;fmt:L;len:32;;"
240
+ "GconnMirrorSecretToken;code:NNN;len:36;;"
241
+ "GconnMirrorStatus;code:NNN;len:8;;"
242
+ "GconnMirrorExcludedBranches;code:NNN;len:256;;"
243
+ "GconnMirrorHideFetchUrl;code:NNN;len:5;;"
239
244
  },
240
245
  {
241
246
  "server",
242
247
  "ServerID;code:751;rq;ro;len:32;;"
243
- "Type;code:752;rq;len:32;;"
244
- "Name;code:753;type:line;len:32;;"
245
- "Address;code:754;type:line;len:32;;"
246
- "ExternalAddress;code:755;type:line;len:32;;"
247
- "Services;code:756;rq;len:128;;"
248
- "Options;code:764;type:line;len:32;val:"
249
- "nomandatory/mandatory;;"
250
- "ReplicatingFrom;code:765;type:line;len:32;;"
251
- "Description;code:757;type:text;len:128;;"
252
- "User;code:761;type:line;len:64;;"
253
- "AllowedAddresses;code:763;type:wlist;len:64;;"
254
- "UpdateCachedRepos;code:766;type:wlist;len:64;;"
255
- "ClientDataFilter;code:758;type:wlist;len:64;;"
256
- "RevisionDataFilter;code:759;type:wlist;len:64;;"
257
- "ArchiveDataFilter;code:760;type:wlist;len:64;;"
258
- "DistributedConfig;code:762;type:text;len:128;;"
248
+ "Type;code:752;rq;len:32;;"
249
+ "Name;code:753;type:line;len:32;;"
250
+ "Address;code:754;type:line;len:32;;"
251
+ "ExternalAddress;code:755;type:line;len:32;;"
252
+ "Services;code:756;rq;len:128;;"
253
+ "Options;code:764;type:line;len:32;val:"
254
+ "nomandatory/mandatory;;"
255
+ "ReplicatingFrom;code:765;type:line;len:32;;"
256
+ "Description;code:757;type:text;len:128;;"
257
+ "User;code:761;type:line;len:64;;"
258
+ "AllowedAddresses;code:763;type:wlist;len:64;;"
259
+ "UpdateCachedRepos;code:766;type:wlist;len:64;;"
260
+ "ClientDataFilter;code:758;type:wlist;len:64;;"
261
+ "RevisionDataFilter;code:759;type:wlist;len:64;;"
262
+ "ArchiveDataFilter;code:760;type:wlist;len:64;;"
263
+ "DistributedConfig;code:762;type:text;len:128;;"
259
264
  },
260
265
  {
261
266
  "spec",
@@ -265,6 +270,7 @@ struct defaultspec {
265
270
  "Values;code:354;type:wlist;words:2;;"
266
271
  "Presets;code:355;type:wlist;words:2;;"
267
272
  "Openable;code:362;type:wlist;words:2;;"
273
+ "Maxwords;code:361;type:wlist;words:2;;"
268
274
  "Comments;code:356;type:text;;"
269
275
  },
270
276
  {
@@ -281,9 +287,11 @@ struct defaultspec {
281
287
  "allsubmit/ownersubmit,unlocked/locked,"
282
288
  "toparent/notoparent,fromparent/nofromparent,"
283
289
  "mergedown/mergeany;open:isolate;;"
284
- "Paths;code:710;rq;type:wlist;words:2;maxwords:3;len:64;open:propagate;;"
285
- "Remapped;code:711;type:wlist;words:2;len:64;open:propagate;;"
286
- "Ignored;code:712;type:wlist;words:1;len:64;open:propagate;;"
290
+ "ParentView;code:NNN;rq;open:isolate;"
291
+ "pre:inherit;val:noinherit/inherit;;"
292
+ "Paths;code:710;rq;type:wlist;words:2;maxwords:3;len:64;open:propagate;fmt:C;;"
293
+ "Remapped;code:711;type:wlist;words:2;len:64;open:propagate;fmt:C;;"
294
+ "Ignored;code:712;type:wlist;words:1;len:64;open:propagate;fmt:C;;"
287
295
  "View;code:713;type:wlist;words:2;len:64;;"
288
296
  "ChangeView;code:714;type:llist;ro;len:64;;"
289
297
  },
data/lib/P4/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class P4
2
- Version = VERSION = '2020.1.2056123'
2
+ Version = VERSION = '2021.1.2156749'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: p4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2020.1.2056123
4
+ version: 2021.1.2156749
5
5
  platform: ruby
6
6
  authors:
7
7
  - Perforce Software, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-16 00:00:00.000000000 Z
11
+ date: 2021-07-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby extensions to the C++ Perforce API.
14
14
  email: support@perforce.com
@@ -51,7 +51,7 @@ licenses:
51
51
  - MIT
52
52
  metadata:
53
53
  documentation_uri: https://www.perforce.com/manuals/p4ruby/Content/P4Ruby/Home-p4ruby.html
54
- post_install_message:
54
+ post_install_message:
55
55
  rdoc_options: []
56
56
  require_paths:
57
57
  - lib
@@ -66,8 +66,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  requirements: []
69
- rubygems_version: 3.1.2
70
- signing_key:
69
+ rubygems_version: 3.2.15
70
+ signing_key:
71
71
  specification_version: 4
72
72
  summary: Ruby extensions to the C++ Perforce API
73
73
  test_files: []