Skip to content

Commit 12f89db

Browse files
committed
2020.1 release code drop.
1 parent d025179 commit 12f89db

File tree

6 files changed

+237
-73
lines changed

6 files changed

+237
-73
lines changed

LICENSE.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Copyright (c) Perforce Software, Inc., 1997-2020. 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
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+
3. Neither the name of the copyright holder nor the names of its
14+
contributors may be used to endorse or promote products derived from
15+
this software without specific prior written permission.
16+
17+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20+
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PERFORCE
21+
SOFTWARE, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
26+
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27+
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28+
DAMAGE.

RELNOTES.txt

Lines changed: 57 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Release Notes for
22
P4PHP, Perforce's script API for PHP
33

4-
Version 2019.2
4+
Version 2020.1
55

66
Introduction
77

@@ -36,7 +36,7 @@ Unix and Mac: Building the P4PHP Extension
3636
subdirectory and look in the bin.tools directory for a release which
3737
matches your php version (5 or 7) (for example,
3838
ftp://ftp.perforce.com/perforce/r19.2/bin.tools/p4php-php7.tgz) for
39-
the 2019.2 P4PHP.
39+
the 2020.1 P4PHP.
4040

4141
2. Download the Perforce C++ API from the Perforce FTP site at
4242
"ftp://ftp.perforce.com/perforce". The API archive is located
@@ -99,7 +99,7 @@ Unix and Mac: Building the P4PHP Extension
9999
SSL support
100100
-----------
101101

102-
Perforce Server 2019.2 supports SSL connections and the C++ API has
102+
Perforce Server 2020.1 supports SSL connections and the C++ API has
103103
been compiled with this support. This means that in order to build
104104
P4PHP, the underlying PHP framework must include OpenSSL.
105105

@@ -175,27 +175,25 @@ Compatibility Statements
175175

176176
API Compatibility
177177

178-
The 2019.2 release of P4PHP requires the 2019.2 Perforce API.
179-
Older releases (down to 2008.2) will not work and will fail to compile.
178+
The 2020.1 release of P4PHP requires the 2020.1 Perforce API.
179+
Older releases will not work and will fail to compile.
180180

181181
OpenSSL compatibility
182182

183183
The minimum version of OpenSSL libraries required is driven
184-
by the 2019.2 server; the minimum version needed is 1.0.0.
185-
Please note that many distributions provide OpenSSL version
186-
0.9.8, which is not compatible.
184+
by the 2020.1 server; the minimum version needed is 1.0.0.
187185

188186
PHP compatibility
189187

190-
The 2019.2 release of P4PHP is compatible with PHP versions: 7.0.x - 7.3.x
188+
The 2020.1 release of P4PHP is compatible with PHP versions: 7.0.x - 7.4.x
191189

192190
Platform compatibility
193191

194192
Though P4PHP is generally portable, this release is certified
195193
only on the following platforms:
196194

197195
Linux 2.6 Intel (x86, x86_64)
198-
Windows 7, 10, 2012R2, 2016 Intel (x86, x86_64)
196+
Windows 10, 2016, 2019
199197

200198
Compiler compatibility
201199

@@ -215,12 +213,28 @@ Key to symbols used in change notes below.
215213
** -- requires P4PHP built with new P4API
216214
*** -- requires new p4d server program
217215

216+
--------------------------------------------------------------------------
217+
218+
New functionality in 2020.1
219+
220+
#1993685 (Job #102864) * ** ***
221+
Updated the stored spec templates to match the 2020.1 server
222+
specs. This ensures new features are present in specs which are
223+
accessed offline.
224+
225+
#1928845, #1992229, #1992308 (Jobs #101673, #102863) * **
226+
Added support for PHP 7.4
227+
228+
Bugs fixed since 2020.1/1997425
229+
230+
#880735 (Job #66537) * **
231+
Fixed parameter processing in run_submit() method.
218232

219233
--------------------------------------------------------------------------
220234

221235
New functionality in 2019.2
222236

223-
#1922953 (Bug #101550) * ** ***
237+
#1922953 (Job #101550) * ** ***
224238
Updated the stored spec templates to match the 2019.2 server
225239
specs. This ensures new features are present in specs which are
226240
accessed offline.
@@ -238,58 +252,58 @@ New functionality in 2018.2
238252

239253
New functionality in 2016.2
240254

241-
#1487051 (Bug #86758) *
255+
#1487051 (Job #86758) *
242256
Add support for PHP7. Since PHP5 and PHP7 are so different in their
243257
implementation, two separate releases will be provided. P4PHP will continue
244258
to support PHP5, while P4PHP7 is a release dedicate to PHP7.
245259

246-
#1478705, 1478790 (Bug #89654) * ** ***
260+
#1478705, 1478790 (Job #89654) * ** ***
247261
Add support for proxy-like connections for both PHP5 and PHP7
248262

249263
Bugs fixed since 2014.1/880729
250264

251-
#880735 (Bug #66537) *
265+
#880735 (Job #66537) *
252266
Fixed an array inconsistency issue with 'run_filelog'. It will
253267
also now return the right depotpath as well.
254268

255269
--------------------------------------------------------------------------
256270

257271
New functionality in 2013.1
258272

259-
#491487, #499320, #499365 (Bug #57838) *
273+
#491487, #499320, #499365 (Job #57838) *
260274
Added support for PHP 5.4.
261275

262276
Bugs fixed since 2013.1/617119
263277

264-
#643056 (Bug #65572)
278+
#643056 (Job #65572)
265279
Fixed a problem in the P4 Map Lhs, Rhs and ToA methods that
266280
could cause a crash when under load.
267281

268-
#631971 (Bug #65805)
282+
#631971 (Job #65805)
269283
Correctly set the program version if specified.
270284

271285
Bugs fixed in 2013.1
272286

273-
#597731 (Bug #63968) *
287+
#597731 (Job #63968) *
274288
Fixed memory leak in the output handler code. The memory leak
275289
was particularly noticeable when using output handlers with large
276290
files.
277291

278-
#567338 (Bug #62248)
292+
#567338 (Job #62248)
279293
Test 013 'Identity' will now work correctly on Windows.
280294

281-
#541820, #541832 (Bug #60875) *
295+
#541820, #541832 (Job #60875) *
282296
Correctly determines the kernel version for Linux builds.
283297

284-
#541502 (Bug #60865) *
298+
#541502 (Job #60865) *
285299
Fixed a problem that caused a runtime error when running on
286300
Ubuntu 12.10.
287301

288302
--------------------------------------------------------------------------
289303

290304
New functionality in 2012.1
291305

292-
#408393 (Bug #51084) * ** ***
306+
#408393 (Job #51084) * ** ***
293307
Added support for SSL connections to SSL-enabled servers. No
294308
build changes are needed to include SSL support, as PHP itself
295309
is dynamically linked against OpenSSL libraries.
@@ -304,18 +318,18 @@ New functionality in 2012.1
304318

305319
Bugs fixed since 2012.1/442152
306320

307-
#469976, #469763 (Bugs #55524, #56332) *
321+
#469976, #469763 (Jobs #55524, #56332) *
308322
Fixed a problem where the run_filelog() method could emit
309323
warnings and/or fail to populate revision objects correctly
310324
under some conditions.
311325

312326
Bugs fixed in 2012.1
313327

314-
#439393 (Bug #54125) *
328+
#439393 (Job #54125) *
315329
Setting the 'prog' property of the P4 class now actually takes
316330
effect.
317331

318-
#429067 (Bug #51901) *
332+
#429067 (Job #51901) *
319333
Updated the stored spec templates to match the 2012.1 server
320334
specs. This ensures new features are present in specs which are
321335
accessed offline.
@@ -324,7 +338,7 @@ Bugs fixed in 2012.1
324338

325339
New functionality in 2011.1
326340

327-
#339007 (Bug #42252) * **
341+
#339007 (Job #42252) * **
328342
P4PHP supports a callback interface by providing a P4.handler
329343
property. Set P4.handler to an instance of a
330344
P4_OutputHandlerInterface implementor to enable callbacks. When
@@ -335,7 +349,7 @@ New functionality in 2011.1
335349
large results are expected.
336350
See the documentation for details on the Output Handler.
337351

338-
#332692 (Bug #45863) * ** ***
352+
#332692 (Job #45863) * ** ***
339353
Enable streams in P4PHP by default. With this change, streams
340354
specific specs such as streams depots are listed. To disable the
341355
listing of streams specific specs either set the api_level to a
@@ -344,41 +358,41 @@ New functionality in 2011.1
344358

345359
Bugs fixed in 2011.1
346360

347-
#424881 (Bugs #42375, #51886, #51917) *
361+
#424881 (Jobs #42375, #51886, #51917) *
348362
Fixed issues where p4 filelog could produce an erroneous result
349363
or cause a segmentation fault to occur.
350364

351-
#385159 (Bug #49324) **
365+
#385159 (Job #49324) **
352366
On Windows Vista, Windows 7, or Windows 2008, a client running
353367
as Administrator would fail to properly process file names in
354368
non-ASCII character sets (such as Shift-JIS).
355369

356-
#359248 (Bug #48691) *
370+
#359248 (Job #48691) *
357371
Fixed a dangling pointer issue that caused memory segmentation
358372
faults when P4PHP was run on Windows platforms.
359373

360-
#359180 (Bug #49040) *
374+
#359180 (Job #49040) *
361375
Minor adjustments done to make P4PHP run properly on Mac OS X
362376
Lion.
363377

364-
#342679 (Bug #47726) *
378+
#342679 (Job #47726) *
365379
Fixed a bug where P4PHP would not compile on Windows platforms
366380
due to the tsrm_ls variable not being present.
367381

368-
#339053 (Bug #47423) *
382+
#339053 (Job #47423) *
369383
Made command arguments and the input property support binary
370384
values which contain null bytes.
371385

372-
#308036, #337730 (Bugs #44695, #47235) *
386+
#308036, #337730 (Jobs #44695, #47235) *
373387
Adjusted the version string to be consistent with other APIs.
374388
Added API patch level and made OS names consistent.
375389

376-
#333583 (Bug #45521) *
390+
#333583 (Job #45521) *
377391
Fixed a bug where P4PHP would erroneously convert custom spec
378392
fields which ended in a digit into an array. They are now passed
379393
through unchanged.
380394

381-
#332681 (Bug #47529) *
395+
#332681 (Job #47529) *
382396
Updated the stored spec templates to match the 2011.1 server
383397
specs. This ensures new features such as streams are present in
384398
specs which are accessed offline.
@@ -387,32 +401,32 @@ Bugs fixed in 2011.1
387401

388402
New functionality in 2010.2
389403

390-
#262640 (Bug #39740) * ** ***
404+
#262640 (Job #39740) * ** ***
391405
New methods 'GetStreams' and 'SetStreams' have been added to enable
392406
Streams support.
393407

394408
Bugs fixed in 2010.2
395409

396-
#289739 (Bug #43685) *
410+
#289739 (Job #43685) *
397411
Fixed a bug where P4PHP could segfault when attempting to use the
398412
'P4' instance during the late stages of a PHP process shutdown
399413
(via object destructors), where the instance being referenced may
400414
no longer be present in the zend_object_store. We guard against
401415
this scenario and emit a fatal zend_error.
402416

403-
#273229 (Bug #41378) *
417+
#273229 (Job #41378) *
404418
Fixed a pointer management bug that was causing crashes under
405419
Windows 64-bit.
406420

407-
#264526 (Bugs #38248, #38488, #39008, #39471) *
421+
#264526 (Jobs #38248, #38488, #39008, #39471) *
408422
P4PHP now properly picks up the version string set in config.w32
409423
when compiled on a Windows platform.
410424

411425
--------------------------------------------------------------------------
412426

413427
New functionality in 2010.1
414428

415-
#238024 (Bug #38089) *
429+
#238024 (Job #38089) *
416430
A new property, 'expand_sequences' enables scripts to control
417431
whether keys with trailing numbers are expanded into arrays
418432
in tagged output. By default, 'expand_sequences' is true to
@@ -421,12 +435,12 @@ New functionality in 2010.1
421435

422436
Bugs fixed in 2010.1
423437

424-
#238014 (Bug #38084) *
438+
#238014 (Job #38084) *
425439
Tagged output with numeric sequences (e.g. foo0, foo1, ...)
426440
could conflict with tags that are not numbered (e.g. foo).
427441
This could cause P4PHP to crash. This change detects the
428442
conflict and skips expansion.
429443

430-
#237983 (Bug #38074) *
444+
#237983 (Job #38074) *
431445
Text output could be truncated if it contained null characters.
432446
This change makes handling of text output binary-safe.

php_clientuser.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ void PHPClientUser::InputData( StrBuf *strbuf, Error *e )
379379

380380
zend_string *k;
381381
zend_ulong index;
382-
uint ktype = zend_hash_get_current_key_ex( ht, &k, &index, &pos );
382+
unsigned int ktype = zend_hash_get_current_key_ex( ht, &k, &index, &pos );
383383
bool isHash = ( ktype == HASH_KEY_IS_STRING );
384384

385385
// treat a hash as a spec, copy it's string representation to strbuf.
@@ -392,7 +392,7 @@ void PHPClientUser::InputData( StrBuf *strbuf, Error *e )
392392

393393
// handle one element of a vector at a time. Note, only strings are
394394
// supported at this time.
395-
uint argc = zend_hash_num_elements( ht );
395+
unsigned int argc = zend_hash_num_elements( ht );
396396
zval *val = zend_hash_index_find( ht, 0 );
397397

398398
if ( Z_TYPE_P( val ) == IS_STRING ) {
@@ -743,14 +743,14 @@ PHPClientSSO::Authorize( StrDict &vars, int maxLength, StrBuf &strbuf )
743743

744744
zend_string *k;
745745
zend_ulong index;
746-
uint ktype = zend_hash_get_current_key_ex( ht, &k, &index, &pos );
746+
unsigned int ktype = zend_hash_get_current_key_ex( ht, &k, &index, &pos );
747747
bool isHash = ( ktype == HASH_KEY_IS_STRING );
748748

749749
if( !isHash )
750750
{
751751
// handle one element of a vector at a time. Note, only strings
752752
// are supported at this time.
753-
uint argc = zend_hash_num_elements( ht );
753+
unsigned int argc = zend_hash_num_elements( ht );
754754
zval *val = zend_hash_index_find( ht, 0 );
755755

756756
if( Z_TYPE_P( val ) == IS_STRING ) {

0 commit comments

Comments
 (0)