Skip to content

Commit bb00195

Browse files
Merge branch 'master' of https://github.com/perforce/p4python
2 parents 71c8928 + 3fb8ae5 commit bb00195

1 file changed

Lines changed: 58 additions & 56 deletions

File tree

build.md

Lines changed: 58 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,83 @@
11
## Building P4Python from Source
22

3-
1. Download the r23.1 Perforce C++ API from the Perforce FTP site at
4-
"ftp://ftp.perforce.com/perforce". The API archive is located
5-
in release and platform-specific subdirectories.
3+
1. Download the corresponding Perforce C++ API (e.g. if you trying to build P4Python 2023.1, download the r23.1 P4API) from
4+
https://ftp.perforce.com/perforce. The API archive is located in release and platform-specific subdirectories.
65

7-
Under Linux the p4api is named p4api-glib<GLIBVER>-openssl<SSLVER>.tgz\
8-
Note that setup.py will download the correct p4api automatically from
9-
ftp.perforce.com if you do not provide an --apidir parameter to the
10-
setup.py "build" command.
6+
Under Linux, the p4api is named _p4api-glib\<GLIBVER>-openssl\<SSLVER>.tgz_
7+
8+
Note that setup.py will download the correct p4api automatically from
9+
https://ftp.perforce.com/perforce if you do not provide an\
10+
_--apidir_ parameter to the "setup.py build" command.
1111

1212
Mac OS X users should get the API from the relevant platform directory e.g.
13-
"**bin.macosx1010x86_64**" or "**bin.macosx12arm64**". The p4api is named
14-
p4api-openssl<SSLVER>.tgz
13+
"**bin.macosx1015x86_64**" or "**bin.macosx12arm64**".\
14+
The p4api is named _p4api-openssl\<SSLVER>.tgz_
1515

1616
Under Windows the p4api needs to match your compiler, build type (static
1717
or dynamic) and SSL version. for instance:
18+
"**p4api_vs2019_static_openssl3.zip**" or "**p4api_vs2019_dyn_openssl3.zip**"
1819

19-
"**p4api_vs2010_static_openssl1.1.1.zip**" or\
20-
"**p4api_vs2015_dyn_openssl1.0.2.zip**"
21-
22-
Note: 32-bit builds of P4Python require a 32-bit version of the
23-
C++ API and a 32-bit version of Python. 64-bit builds of
24-
P4Python require a 64-bit version of the C++ API and a
25-
64-bit version of Python.
26-
20+
**Note:** 32-bit builds of P4Python require a 32-bit version of the
21+
C++ API and a 32-bit version of Python. 64-bit builds of
22+
P4Python require a 64-bit version of the C++ API and a
23+
64-bit version of Python.
24+
2725
Unzip the archive into an empty directory.
2826

29-
2. Download and extract the P4Python API archive into a new, empty directory.
30-
31-
3. If needed, install the Openssl libraries.
32-
33-
4. To build P4Python, run the following command:
34-
35-
_python3 setup.py build --apidir <Perforce C++ API absolute path>
36-
--ssl <OpenSSL library path> _
37-
38-
Note: in order to reinstall cleanly P4Python, remove the
39-
directory named "build".
40-
41-
5. To test your P4Python build, run the following command:
27+
4. Download the P4Python source code from this repository or https://ftp.perforce.com \
28+
(e.g. for release 2023.1, source code can be found at https://ftp.perforce.com/perforce/r23.1/bin.tools/) \
29+
extract the archive into a new empty directory.
4230

43-
_python3 p4test.py_
31+
7. If needed, install the Openssl libraries.
4432

45-
Note: this test harness requires the Perforce server executable
46-
p4d 17.1 or better to be installed and in the PATH.
33+
8. To build P4Python, execute setup.py in P4Python source directory, with the following arguments:
4734

48-
6. To install P4Python, run the following command:
35+
```
36+
python3 setup.py build --apidir <Perforce C++ API absolute path> --ssl <OpenSSL library path>
37+
```
4938
50-
_python3 setup.py install_
39+
**Note:** In order to cleanly reinstall P4Python, remove the directory named "build".
5140
52-
if this doesn't work, you may need to both build and install in the same
53-
incantation:
41+
10. To test your P4Python build, excecute p4test.py:
42+
```
43+
python3 p4test.py
44+
```
45+
**Note:** This test requires the Perforce server executable p4d 17.1 or better to be installed and in the PATH.
5446
55-
_python3 setup.py build --apidir <Perforce C++ API absolute path> --ssl <OpenSSL library path> install_
47+
12. To install P4Python, execute the following command:
48+
49+
```
50+
python3 setup.py install
51+
```
52+
53+
54+
If this doesn't work, you may need to build and install in the same command:
5655
57-
Note: on Unix/Mac platforms, the installation must be performed
58-
as the root user, so usually these commands are preceded by "sudo".
59-
Also ensure that the umask is set correctly (typically 0022) before
60-
running the install. With a umask of 027, for example, the resulting
61-
installed files are accessible only by users of group root.
56+
```
57+
python3 setup.py build --apidir <Perforce C++ API absolute path> --ssl <OpenSSL library path> install
58+
```
6259
63-
on Windows platforms, open a Visual Studio Command window
64-
(with administrator permissions) and run the command there.
60+
**Note:** On Unix/Mac platforms, the installation must be performed
61+
as the root user, so usually these commands are preceded by "sudo".
62+
Also ensure that the umask is set correctly (typically 0022) before
63+
running the install. With a umask of 027, for example, the resulting
64+
installed files are accessible only by users of group root.\
65+
On Windows platforms, open a Visual Studio Command window
66+
(with administrator permissions) and run the command there.
6567
6668
SSL support
6769
-----------
6870
69-
Perforce Server 2012.1 and later supports SSL connections and the
70-
C++ API has been compiled with this support. With 2020.1 SSL support
71-
is mandatory, that is, P4Python must be linked with valid OpenSSL libraries.
71+
Perforce Server 2012.1 and later supports SSL connections and the
72+
C++ API has been compiled with this support. With 2020.1 SSL support
73+
is mandatory, that is, P4Python must be linked with valid OpenSSL libraries.
7274
73-
To specify which SSL library to use, provide the --ssl [librarypath]
74-
switch to the build. Without [librarypath] setup will attempt to run
75-
"openssl version" to identify the location of the library path for
76-
openssl and whether openssl has an appropriate version to link to.
75+
To specify which SSL library to use, provide the --ssl \<OpenSSL library path>
76+
switch to the build. Without this setup will attempt to run
77+
"openssl version" to identify the location of the library path for
78+
openssl and whether openssl has an appropriate version to link to.
7779
78-
If on linux, and the build process cannot find the correct openssl
79-
libraries, and the -ssl option was not used, then the openssl source will
80-
be downloaded, compiled and installed (this will require a superuser
81-
password for the installation)
80+
If on linux, and the build process cannot find the correct openssl
81+
libraries, and the -ssl option was not used, then the openssl source will
82+
be downloaded, compiled and installed (this will require a superuser
83+
password for the installation)

0 commit comments

Comments
 (0)