11 Release Notes for
22 P4Ruby, Perforce's script API for Ruby
33
4- Version 2022 .1
4+ Version 2023 .1
55
66Introduction
77
@@ -16,8 +16,8 @@ Introduction
1616 release up to the bug fix change level.
1717
1818 Precompiled versions of P4Ruby are built against a corresponding version
19- of the Perforce C++ API, e.g., P4Ruby 2022 .1 will be compiled using a
20- 2022 .1 version of the P4API. You can always install P4Ruby using a
19+ of the Perforce C++ API, e.g., P4Ruby 2023 .1 will be compiled using a
20+ 2023 .1 version of the P4API. You can always install P4Ruby using a
2121 source-only variation, selecting a specific version of the P4API.
2222
2323 To determine the version of your P4Ruby, and which version of the
@@ -26,7 +26,14 @@ Introduction
2626
2727--------------------------------------------------------------------------
2828
29- Installing P4Ruby
29+ Important End-of-Life Notice
30+
31+ This major release of P4Ruby would be the last to test against Ruby 2.7
32+ which is in EOL status. This is part of our commitment to focus on supported
33+ technology platforms
34+
35+ --------------------------------------------------------------------------
36+ Installation
3037
3138 The recommended method of installing P4Ruby is via gems.
3239
@@ -52,69 +59,30 @@ Installing P4Ruby
5259
5360Building P4Ruby from Source
5461
55- 1. Download the Perforce C++ API from the Perforce FTP site at
56- "ftp://ftp.perforce.com/perforce". The API archive is located
57- in release and platform-specific subdirectories and is named
58- "p4api-glibc2.3-openssl1.1.1.tgz" .
59-
60- Note: 32-bit builds of P4Ruby require a 32-bit version of the
61- C++ API and a 32-bit version of Ruby. 64-bit builds of
62- P4Ruby require a 64-bit version of the C++ API and a
63- 64-bit version of Ruby.
64-
65- Unzip the archive into an empty directory.
66-
67- 2. Extract the P4Ruby API archive into a new, empty directory.
68-
69- 3. Execute the build commands:
70-
71- bundle install
72- bundle exec rake compile -- --with-p4api_dir=<absolute path to Perforce C++ API> \
73- --with-ssl-dir=<absolute path to OpenSSL libraries matching Perforce C++ API>
74-
75- OR pass through environment variables
76- bundle exec rake compile p4api_dir=<absolute path to Perforce C++ API>
77-
78- Note: If the --p4api_dir flag is not provided, P4Ruby will attempt
79- to download and extract correct version of Perforce C++ API
62+ The official version of P4Ruby exists as source on:
63+ https://github.com/perforce/p4ruby
8064
81- 4. Test your distribution.
82-
83- bundle exec rake test
84-
85- Tests require the perforce server binary (p4d) present in the path.
86-
87- 5. Install P4Ruby into your local gem cache:
88-
89- bundle exec rake install
90-
91- SSL support
92- -----------
93-
94- Perforce Server 2012.1 and later supports SSL connections and the
95- C++ API has been compiled with this support.
96-
97- If the P4Ruby build detects that OpenSSL is available, it will be
98- included by default. If you want to use libraries deployed to nonstandard
99- paths, use the --ssl_dir=<path to Openssl include and lib folders>
65+ Instructions for building are in the BUILD.md file which can be found
66+ here - https://github.com/perforce/p4ruby/blob/master/build.md
10067
10168--------------------------------------------------------------------------
10269
10370Compatibility Statements
10471
10572 Server Compatibility
10673
107- The 2022.1 release of P4Ruby supports the 2022 .1 Perforce Server.
74+ This release of P4Ruby supports the 2023 .1 Perforce Server.
10875 Older releases might work but are not supported.
10976
11077 API Compatibility
11178
112- The 2022.1 release of P4Ruby supports the 2022 .1 Perforce API.
113- Older releases might work but are not supported.
79+ This release of P4Ruby supports the 2023 .1 Perforce API
80+ (2023.1/2442900). Older releases might work but are not supported.
11481
11582 Ruby Compatibility
11683
117- The 2022.1 release of P4Ruby is supported on Ruby versions 2.7 3.0 and 3.1
84+ This release of P4Ruby is supported on Ruby versions 2.7 3.0, 3.1
85+ and 3.2
11886
11987 For detailed compatibility, please check the following table:
12088
@@ -123,24 +91,28 @@ Compatibility Statements
12391 2.7 | 2020.1 or later
12492 3.0 | 2021.1 or later
12593 3.1 | 2022.1 or later
94+ 3.2 | 2023.1 or later
12695
12796 OpenSSL Compatibility
12897
129- P4Ruby requires OpenSSL 1.0.2+ or 1.1.1+
130-
131- Running P4Ruby linked to an older library will
132- fail with the error:
98+ To build P4Ruby with encrypted communication support, you must use the
99+ version of OpenSSL that Perforce C/C++ API has been built against.
133100
134- "SSL library must be at least version 1.0.2."
101+ Beginning with the 2017.1 release of the Helix C/C++ API, the dependency
102+ on OpenSSL is now enforced and the SSL stub library has been removed.
103+ Executables linked against the P4API libraries must also be linked against
104+ real OpenSSL libraries: The latest 3.0.x or 1.1.1 patch is recommended
135105
136106 Platform Compatibility
137107
138108 While P4Ruby is generally portable, this release is certified
139109 only on the following platforms:
140110
141- - RVM based installs for Ruby 2.7, 3.0 and 3.1 on Ubuntu and CentOS.
142- - rubyinstaller.org for Ruby 2.7, 3.0 and 3.1
143- on Windows Server 2016/2019, and Windows 10
111+ Windows (x64)
112+ Server 2016
113+ Linux
114+ Ubuntu 20.04, 22.04
115+ CentOS 8
144116
145117 Compiler Compatibility
146118
@@ -170,6 +142,40 @@ Key to symbols used in change notes below.
170142 *** -- requires new p4d server program
171143
172144--------------------------------------------------------------------------
145+ --------------------------------------------------------------------------
146+
147+ New functionality in 2023.1 (2023.1/2446234) (2023/05/25)
148+
149+ #2443839 (Job #115709) * ** ***
150+ This release of P4Ruby supports P4API 2023.1 (2023.1/2442900).
151+
152+ #2443217, #2438303 (Job #115281) *
153+ Added support for Ruby 3.2.
154+
155+ #2439606 (Job #2439606) * **
156+ Windows gems for P4Ruby are now shipped with OpenSSL 3.0.8
157+
158+ --------------------------------------------------------------------------
159+ --------------------------------------------------------------------------
160+
161+ New functionality in 2022.1 Patch 2 (2022.1/2405581) (2023/02/10)
162+
163+ Important security note
164+ This version addresses vulnerabilities in OpenSSL (CVE-2023-0286,
165+ CVE-2023-0215, CVE-2022-4450, CVE-2022-4304) by linking in version
166+ 1.1.1t of the library.
167+
168+ --------------------------------------------------------------------------
169+ --------------------------------------------------------------------------
170+
171+ Bugs fixed in 2022.1 Patch 1 (2022.1/2368511) (2022/11/10)
172+
173+ (Job #113209) * **
174+ Correct the handling of untranslated text left in the
175+ compression buffer on Close(). Build only change.
176+
177+ --------------------------------------------------------------------------
178+ --------------------------------------------------------------------------
173179
174180New functionality in 2022.1 (2022.1/2359956) (2022/10/26)
175181
0 commit comments