# P4 Binary for armhf I had a customer request for a compiled P4 binary for Raspberry Pi. Since, Perforce removed ARM binaries in 2016, I thought I would try with the currently available p4 source. ## 2018.2: You will need to follow the instructions for build and installation for the Linux version of p4. How ever on my system the SSL libraries ended up in /usr/lib/arm-linux-gnueabihf. You will have to account for that when building with jam. This is a 2018.2 version that compiled with many errors on Raspberry PI OS on a Raspberry Pi 3 Model B+. But, most of it compiled except the SSL modules. SSL is likely to not work because of some commented functions. I commented them out to allow the compile to complete. I don't have a lot of time to investigate, but what I have works against a 2020.2 server in non-SSL connections. It is not thoroughly tested, but it does what most people would want it to do (sync, add, edit, delete, revert). ### Compiled on: PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" VERSION_CODENAME=stretch ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" ## 2021.2 This compiled with few warnings, but no errors with the following command: ``jam -sOSVER=26 -sSMARTHEAP=0 -sGCCVER=8.3.0 -sSSLLIBDIR=/usr/lib/arm-linux-gnueabihf/ -sSSLINCDIR=/usr/include/ p4`` ### Compiled on: PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" ## 2023.1 This is compiled successfully after commenting a ramdisk parameter in p4/src/sys/filespace.cc on a Raspberry Pi 4B. ``jam -sOSVER=26 -sSMARTHEAP=0 -sGCCVER=8.3.0 -sSSLLIBDIR=/usr/lib/arm-linux-gnueabihf/ -sSSLINCDIR=/usr/include/ p4`` ### Compiled on: PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian D_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" ## 2023.2 This is compiled successfully after commenting a ramdisk parameter in p4/src/sys/filespace.cc on a Raspberry Pi 4B. ``jam -sOSVER=26 -sSMARTHEAP=0 -sGCCVER=8.3.0 -sSSLLIBDIR=/usr/lib/arm-linux-gnueabihf/ -sSSLINCDIR=/usr/include/ p4`` ### Compiled on: PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian D_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" ## 2023.2 - Bookworm This is compiled successfully after commenting some decompression code in deflate.c for Apple Silicon. Verified to run on Raspberry Pi 5. ``jam -sOSVER=26 -sSMARTHEAP=0 -sGCCVER=8.3.0 -sSSLLIBDIR=/usr/lib/aarch64-linux-gnu/ -sSSLINCDIR=/usr/include/ p4`` ## Compiled on: PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" There is no support for any version of these binaries. It was created as an experiment. Any modified source files are provided (not necessary for 2021.2). You will need to get the original source from ftp.perforce.com and replace the modified files (if necessary). I've also included a compiled version of Jam 2.6.1 also. You will need it to build p4. However, do to changes in Raspberry OS you might need to build Jam before it will run. Please feel free to use it or change it as required. Jam can be found here: https://workshop.perforce.com/projects/perforce_software-jam ## Recent Updates: * 20210430 - Added a 2021.2 binary * 20210430 - 2021.2 linked to OpenSSL v 1.1.1 * 20231109 - Added 2023.1 binary and modified source * 20231212 - Added 2023.2 binary * 20240221 - Added 2023.2 binary for Raspbian Bookworm. Built with p4source-2023.2.2535420.