Developer Notes for P4API, the Helix Application Programming Interface for C/C++ P4, the Helix Command line client P4P, the Helix Proxy P4Broker, the Helix Broker Version 2018.1 Introduction This document is contains developer notes for: * Helix C/C++ API and other derived APIs and * Helix Client (P4) * Helix Proxy (P4P) and * Helix Broker (P4Broker) For details about installing and using the Helix C/C++ API, refer to the API User's Guide, posted on the Perforce Web site at: http://www.perforce.com/perforce/technical.html Supported Platforms for p4api Linux kernel 2.6+ for Intel(x86,x86_64) Windows for Intel(ntx86, ntx64) Mac OS X 10.5, 10.6, 10.7, 10.8, 10.9, 10.10(x86, x86_64) Apple Darwin 9.0 for Intel(x86,x86_64) SSL Support Beginning with the 2017.1 release of the Helix C/C++ API, the dependency on OpenSSL is now enforced and the SSL stub library has been removed. Executables linked against the P4API libraries must also be linked against real OpenSSL libraries: the latest 1.0.2 patch is recommended. ------------------------------------------------------------------------- See marks in the notes below: * -- requires new p4 client program including all client applications and derived APIs ** -- requires new p4d server program *** -- requires new p4p proxy program **** -- requires new p4broker program ------------------------------------------------------------------------- Minor new functionality in 2018.1 #1627525 * The FOM_UWRITE file open mode has been added. With this file open mode, the O_BINARY bit is added to the flags when opening FST_ATEXT files on platforms that support the O_BINARY bit. This can be useful when untranslated writes are needed on Windows. #1614386 (Bug #05109) * A new 'z' spec string option has been added. This causes the spec parser to ensure that the field name is present in the spec, even if no value is provided. This is primarily intended for specs that contain only a list, where the presence of the list (even if empty) is required to ensure the spec is valid. #1593778 * Exposing the case sensitivity setter in MapApi. This adds the method MapApi::SetCaseSensitivity( caseMode ) to the P4API. The mode may be set to either MapCase::Sensitive or MapCase::Insensitive. If not called maps use the platform's case sensitivity as normal. Bugs fixed in 2018.1 Patch 1 #1648316 (Bug #94969) Correcting an issue where the zlib within P4API may cause a linker error if a duplicate symbol _z_errmsg is exposed in another library being linked.