-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELNOTES.txt
478 lines (330 loc) · 16.2 KB
/
RELNOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
Release Notes for
P4PHP, Perforce's script API for PHP
Version 2024.2
Introduction
This document contains release notes for P4PHP.
Perforce numbers releases YYYY.R/CCCCC, e.g. 2009.2/234567.
YYYY is the year; R is the release of that year; CCCCCC is the
bug fix change level. Each bug fix in these release notes is
marked by its change number. Any build includes (1) all bug fixes
of all previous releases and (2) all bug fixes of the current
release up to the bug fix change level.
To determine the version of your P4PHP, run the following command:
php --ri perforce
--------------------------------------------------------------------------
Installation
Unix and Mac: Building the P4PHP Extension
The official version of P4PHP exists as source on:
https://github.com/perforce/p4php
Instructions for building are in the build.md file which can be found
here - https://github.com/perforce/p4php/blob/master/build.md
Windows: Building the P4PHP DLL
For instructions how to build P4PHP on windows please contact
--------------------------------------------------------------------------
Compatibility Statements
Server Compatibility
You can use any release of P4PHP with any release of the Perforce server
later than 2001.1 but it is recommended to use the 2024.2 release
API Compatibility
This release of P4PHP requires the 2024.2 (2024.2/2675662) Perforce API.
Older releases will not work and will fail to compile.
OpenSSL compatibility
The minimum version of OpenSSL libraries required is driven by the
2024.2 server; the minimum version needed is 1.1.1. The latest 3.0.x or
1.1.1 patch is recommended.
PHP compatibility
This release of P4PHP is compatible with PHP versions: 8.1.x - 8.3.x
Platform compatibility
Though P4PHP is generally portable, this release is tested on the
following platforms:
Linux kernel 2.6+ for Intel(x86_64)
Ubuntu 20.04, 22.04, 24.04
Rocky Linux 8, 9
Linux kernel 2.6+ for ARM(aarch64)
Ubuntu 22.04, 24.04
Rocky Linux 9
Windows for Intel(ntx64)
Server 2016, 2019, 2022
Compiler compatibility
To build P4PHP from source, you must use a version of PHP that has been
compiled with the same compiler used to build the Perforce C++ API. For
most platforms, use gcc/g++.
Attempting to use a different compiler or a different version of the
compiler causes linker errors due to differences in name handling.
--------------------------------------------------------------------------
Testing P4PHP
You can use the following small script to test P4PHP. Place it into a file
named "p4php_info.php":
<?php
$p4 = new P4();
print_r($p4->identify());
$p4->port = '<server>:<port>';
$p4->user = '<user>';
$p4->connect();
print_r($p4->run('info'));
$p4->disconnect();
?>
Note: substitute <server> for the fully qualified server name,
<port> for the port p4d/p4s is running on, and <user> for a
valid Perforce user.
To execute the test script, run the following command:
php -f p4php_info.php
If it succeeds, you should see output like this:
> php -f p4php_info.php
Perforce - The Fast Software Configuration Management System.
Copyright 1995-2010 Perforce Software. All rights reserved.
Rev. P4PHP/NTX86/2009.2/239532 (2009.2 API) (2010/03/24).
Array
(
[0] => Array
(
[userName] => jdoe
[password] => enabled
[clientName] => jdoe-ws
[clientRoot] => c:\Users\jdoe\ws
[clientCwd] => C:\Users\jdoe\ws
[clientHost] => jdoe-host
[clientAddress] => 127.0.0.1:12345
[monitor] => enabled
[security] => enabled
[serverAddress] => jdoe-host:1666
[serverRoot] => C:\Program Files\Perforce\Server
[serverDate] => 2010/03/29 15:09:00 -0700
[serverUptime] => 102:44:51
[serverVersion] => P4D/NTX64/2016.2/1457671 (2016/10/26)
[serverLicense] => none
)
)
--------------------------------------------------------------------------
Key to symbols used in change notes below.
* -- requires new P4PHP
** -- requires P4PHP built with new P4API
*** -- requires new p4d server program
--------------------------------------------------------------------------
New functionality in 2024.2 (2024.2/2681996) (2024/11/14)
#2678429 (Job #122595) * ** ***
This release of P4PHP is built against P4API 2024.2 (2024.2/2675662)
#2661895 (Job #122168) * **
Added support for Linux ARM64/AARCH64 architecture.
--------------------------------------------------------------------------
New functionality in 2024.1 (2024.1/2601561) (2024/05/22)
#2599291 (Job #120163) * ** ***
This release of P4PHP is built against P4API 2024.1 (2024.1/2596294)
#2585123 (Job #119913) * **
Added support for PHP 8.3
Bugs fixed in 2024.1 (2024.1/2601561) (2024/05/22)
#2588747 (Job #119723) * **
Fixed version mismatch issue in the output of identify() method
when running with windows DLL
--------------------------------------------------------------------------
New functionality in 2023.2 Patch 1 (2023.2/2568001) (2024/03/07)
(Job #119717) * **
This release of P4PHP is built against P4API 2023.2 Patch 3 (2023.2/2563409)
--------------------------------------------------------------------------
New functionality in 2023.2 (2023.2/2552260) (2024/02/06)
#2545331 (Job #119067) * **
This release of P4PHP is built against P4API 2023.2 (2023.2/2519561)
--------------------------------------------------------------------------
New functionality in 2023.1 Patch 1 (2023.1/2541299) (2024/01/12)
(Job #118832) * **
This release is built against P4API (2023.1/2513900),
to address possible vulnerability: CVE-2023-5759.
--------------------------------------------------------------------------
New functionality in 2023.1 (2023.1/2469314) (2023/07/26)
#2457062 (Job #116145) * **
This release is built against latest P4API (2023.1/2442900)
#2468224, #2460254 (Job #114508) * **
Added support for Windows builds for PHP 8.2
--------------------------------------------------------------------------
New functionality in 2022.2 Patch 2 (2022.2/2541286) (2024/01/12)
(Job #118832) * **
This release is built against P4API (2022.2/2531894),
to address possible vulnerability: CVE-2023-5759.
--------------------------------------------------------------------------
New functionality in 2022.2 Patch 1
#2389314, #2388708 (Job #113738) * **
Added support for PHP 8.2
(Job #113737) * **
This release is built against latest P4API (2022.2/2407422), which
supports OpenSSL3
--------------------------------------------------------------------------
New functionality in 2022.2
#2371665 (Job #111053) * **
Added support for PHP 8.1
--------------------------------------------------------------------------
New functionality in 2020.2
#2106233 (Job #106089) * ** ***
Updated the stored spec templates to match the 2020.2 server
specs. This ensures new features are present in specs which are
accessed offline.
#2102271 (Job #102149) * **
Added support for PHP 8.0
#2093736 (Job #106090) * **
Parallel sync no longer requires p4 executable.
--------------------------------------------------------------------------
New functionality in 2020.1
#1993685 (Job #102864) * ** ***
Updated the stored spec templates to match the 2020.1 server
specs. This ensures new features are present in specs which are
accessed offline.
#1928845, #1992229, #1992308 (Jobs #101673, #102863) * **
Added support for PHP 7.4
Bugs fixed since 2020.1/1997425
#880735 (Job #66537) * **
Fixed parameter processing in run_submit() method.
--------------------------------------------------------------------------
New functionality in 2019.2
#1922953 (Job #101550) * ** ***
Updated the stored spec templates to match the 2019.2 server
specs. This ensures new features are present in specs which are
accessed offline.
--------------------------------------------------------------------------
New functionality in 2018.2
#1664628 * **
A new handler interface for P4LOGINSSO has been added, allowing web
applications to handle the callback rather than an external executable
being invoked.
--------------------------------------------------------------------------
New functionality in 2016.2
#1487051 (Job #86758) *
Add support for PHP7. Since PHP5 and PHP7 are so different in their
implementation, two separate releases will be provided. P4PHP will continue
to support PHP5, while P4PHP7 is a release dedicate to PHP7.
#1478705, 1478790 (Job #89654) * ** ***
Add support for proxy-like connections for both PHP5 and PHP7
Bugs fixed since 2014.1/880729
#880735 (Job #66537) *
Fixed an array inconsistency issue with 'run_filelog'. It will
also now return the right depotpath as well.
--------------------------------------------------------------------------
New functionality in 2013.1
#491487, #499320, #499365 (Job #57838) *
Added support for PHP 5.4.
Bugs fixed since 2013.1/617119
#643056 (Job #65572)
Fixed a problem in the P4 Map Lhs, Rhs and ToA methods that
could cause a crash when under load.
#631971 (Job #65805)
Correctly set the program version if specified.
Bugs fixed in 2013.1
#597731 (Job #63968) *
Fixed memory leak in the output handler code. The memory leak
was particularly noticeable when using output handlers with large
files.
#567338 (Job #62248)
Test 013 'Identity' will now work correctly on Windows.
#541820, #541832 (Job #60875) *
Correctly determines the kernel version for Linux builds.
#541502 (Job #60865) *
Fixed a problem that caused a runtime error when running on
Ubuntu 12.10.
--------------------------------------------------------------------------
New functionality in 2012.1
#408393 (Job #51084) * ** ***
Added support for SSL connections to SSL-enabled servers. No
build changes are needed to include SSL support, as PHP itself
is dynamically linked against OpenSSL libraries.
The identify() method will then report the version of the OpenSSL
library used for building the Perforce C++ API (not the version
PHP is dynamically linked against).
#Note:
Although the 2012.1 server now supports action-resolve, P4PHP
does not include support for this at this time.
Bugs fixed since 2012.1/442152
#469976, #469763 (Jobs #55524, #56332) *
Fixed a problem where the run_filelog() method could emit
warnings and/or fail to populate revision objects correctly
under some conditions.
Bugs fixed in 2012.1
#439393 (Job #54125) *
Setting the 'prog' property of the P4 class now actually takes
effect.
#429067 (Job #51901) *
Updated the stored spec templates to match the 2012.1 server
specs. This ensures new features are present in specs which are
accessed offline.
--------------------------------------------------------------------------
New functionality in 2011.1
#339007 (Job #42252) * **
P4PHP supports a callback interface by providing a P4.handler
property. Set P4.handler to an instance of a
P4_OutputHandlerInterface implementor to enable callbacks. When
a handler is defined, P4PHP will invoke the handler for every
response it receives from the Perforce Server immediately instead
of collecting all results together in an array first. This can be
used to make applications more scalable and more responsive if
large results are expected.
See the documentation for details on the Output Handler.
#332692 (Job #45863) * ** ***
Enable streams in P4PHP by default. With this change, streams
specific specs such as streams depots are listed. To disable the
listing of streams specific specs either set the api_level to a
value below 70 or disable stream handling by explicitly setting
the P4.streams property to false.
Bugs fixed in 2011.1
#424881 (Jobs #42375, #51886, #51917) *
Fixed issues where p4 filelog could produce an erroneous result
or cause a segmentation fault to occur.
#385159 (Job #49324) **
On Windows Vista, Windows 7, or Windows 2008, a client running
as Administrator would fail to properly process file names in
non-ASCII character sets (such as Shift-JIS).
#359248 (Job #48691) *
Fixed a dangling pointer issue that caused memory segmentation
faults when P4PHP was run on Windows platforms.
#359180 (Job #49040) *
Minor adjustments done to make P4PHP run properly on Mac OS X
Lion.
#342679 (Job #47726) *
Fixed a bug where P4PHP would not compile on Windows platforms
due to the tsrm_ls variable not being present.
#339053 (Job #47423) *
Made command arguments and the input property support binary
values which contain null bytes.
#308036, #337730 (Jobs #44695, #47235) *
Adjusted the version string to be consistent with other APIs.
Added API patch level and made OS names consistent.
#333583 (Job #45521) *
Fixed a bug where P4PHP would erroneously convert custom spec
fields which ended in a digit into an array. They are now passed
through unchanged.
#332681 (Job #47529) *
Updated the stored spec templates to match the 2011.1 server
specs. This ensures new features such as streams are present in
specs which are accessed offline.
--------------------------------------------------------------------------
New functionality in 2010.2
#262640 (Job #39740) * ** ***
New methods 'GetStreams' and 'SetStreams' have been added to enable
Streams support.
Bugs fixed in 2010.2
#289739 (Job #43685) *
Fixed a bug where P4PHP could segfault when attempting to use the
'P4' instance during the late stages of a PHP process shutdown
(via object destructors), where the instance being referenced may
no longer be present in the zend_object_store. We guard against
this scenario and emit a fatal zend_error.
#273229 (Job #41378) *
Fixed a pointer management bug that was causing crashes under
Windows 64-bit.
#264526 (Jobs #38248, #38488, #39008, #39471) *
P4PHP now properly picks up the version string set in config.w32
when compiled on a Windows platform.
--------------------------------------------------------------------------
New functionality in 2010.1
#238024 (Job #38089) *
A new property, 'expand_sequences' enables scripts to control
whether keys with trailing numbers are expanded into arrays
in tagged output. By default, 'expand_sequences' is true to
maintain backwards compatibility. Note that expansion can be
enabled and disabled on a per-command basis.
Bugs fixed in 2010.1
#238014 (Job #38084) *
Tagged output with numeric sequences (e.g. foo0, foo1, ...)
could conflict with tags that are not numbered (e.g. foo).
This could cause P4PHP to crash. This change detects the
conflict and skips expansion.
#237983 (Job #38074) *
Text output could be truncated if it contained null characters.
This change makes handling of text output binary-safe.