Download p4perl
Author: s | 2025-04-24
[Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/README.md at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/MANIFEST at master perforce/p4perl
GitHub - perforce/p4perl: [Officially Supported] P4Perl is a
RunCmd "wget -q ||\ bail "Could not get file '$P4APITarFile' for $PerforceRel."else msg "Skipping download of existing $P4APITarFile file."fiif [[ -d p4perl/.p4root ]]; then if [[ $Force -eq 0 ]]; then msg "Skipping clone of existing p4perl cloned workspace." export P4CONFIG=.p4config msg "Fetching latest updates from Workshop in cloned p4perl workspace in $PWD." runCmd "p4 -d $PWD/p4perl/main fetch" || bail "Failed to update p4perl cloned workspace." else msg "Removing existing p4perl clone workspace." runCmd "/bin/rm -rf $PWD/p4perl" || bail "Could not remove p4perl workspace dir [$PWD/p4perl]. Aborting." fifiif [[ ! -d p4perl/.p4root ]]; then runCmd "mkdir p4perl" "Creating base dir for cloning P4Perl" ||\ bail "Failed to create dir [$PWD/p4perl] for cloning P4Perl" runCmd "p4 -u $PublicDepotReaderUser -d $PWD/p4perl clone -p $PublicDepotPort -f $P4PerlPublicDepotPath" ||\ bail "Failed to clone P4Perl from The Workshop [P4PORT=$PublicDepotPort]."ficd "$WorkingDir" || bail "Could not cd to working dir [$WorkingDir]."PerlBuildDir=$(tar -tzf $DownloadsDir/$PerlTarFile|head -1|cut -d '/' -f1)runCmd "tar -xzpf $DownloadsDir/$PerlTarFile"cd "$PerlBuildDir" || bail "Could not cd to Perl build dir [$PerlBuildDir]."echo -e "yes\nyes\n" > tmp.input.txt./install.sh --license-accepted --prefix=$PerlRoot Versionfiif [[ ! -r RELNOTES.txt ]]; then echo "Warning: No RELNOTES.txt file found, generating a sample file." echo -e "Release Notes for P4Perl, Perforce's script API for Perl\n Version 2016.1\nIntroduction\n\n\tThis is a sample release notes file with no actual release notes.\nTo determine the version of your P4Perl, issue the following command: perl -MP4 -e "print P4::Identify()"\n" > RELNOTES.txtfiecho -e "Building P4Perl, logging to $PWD/build.log, with this version file: $(cat Version)\n"runCmd "perl Makefile.PL -apidir=$APIDir # Change User Description Committed #24 26680 Robert Cowham Remove installation scripts - useful in the past, but nowpeople should use packages. #23 25309 C. Thomas Tyler Removed now-deprecated '-b' flag from call to install_p4perl.shscript in P4Perl package.Various modifications to be shellcheck compliant. #22 25299 C. Thomas Tyler Adjusted install_sdp_perl.sh to use 'ftp' account on Public Depot server. #21 25237 C. Thomas Tyler Tweaked login. #20 25236 C. Thomas Tyler Fixed login issue. #19 25235 C. Thomas Tyler Added logic to login sdp_reader to Workshop for cloning. #18 25223 C. Thomas Tyler Updated P4Perl version to 2018.1.Added comments to indicate needed packages on SuSE Linux/SLESusing the zypper package manager.Note that this change relies on and was coordinated/tested withan updated install_p4perl.sh script in P4Perl project in The Workshop.#review-25224 #17 22620 C. Thomas Tyler Updated install_sdp_perl.sh so that it is more of a wrapper to thenew install_p4perl.sh script that is now part of P4Perl in TheWorkshop.As part of this. [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/README.md at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/MANIFEST at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/README.md at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/RELNOTES.txt at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/P4/Progress.pm at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/P4/Progress.pm at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/P4/DepotFile.pm at master perforce/p4perl [Officially Supported] P4Perl is a wrapper for the P4 C API in Perl. - p4perl/P4.xs at master perforce/p4perl P4Perl- Perl Extensions to the Perforce API IntroductionSo what's P4Perl about? In a nutshell P4Perl is the product name for a Perl module that allows you to execute Perforce commands without leaving Perl space and to get the results in Perl Arrays and Hashes. The module's name is'P4', whilst 'P4Perl' is the product name. The reasons for this are complexand historical so just trust me on this one.'P4' is a Perl/XS extension brings the Perforce API into Perl space. It's object oriented and should be fairly intuitive for Perlusers. P4 used to depend on the P4::Client module, but all 3.x and later builds are completely independent and P4::Client is deprecated.LicenseP4Perl is distributed under the terms of this license, which is basically the BSD license. You use it at your own risk.Build RequirementsYou'll need a fairly recent Perl installed. P4Perl can be compiled to workwith any version of Perl (that I know of) from 5.005 onwards. That said,anyone still using 5.005 needs a nudge.P4 is C/C++ based and you need a C and C++ compiler on your machineto install it. The C++ compiler you use must be compatible with the compiler used by Perforce to build the Perforce API you're using. Mostlythis is a question of making sure you download the correct API! Before you can compile P4 successfully, you will need to download the Perforce API tarball separately from the Perforce FTP Site. The current version of P4Perl requires a 2004.2 API to build as itincludes support for 2004.2 API features. If you can't locate theright API build for your platform, [email protected] is not supported by Perforce Software. It is supportedby me, personally. So send all support requests to [email protected]. I'll deal with them as quickly as possible.Getting Started1. Get PerlLinux and FreeBSD users almost certainly already have Perl installed as it'sused by so many other packages. If you don't have it installed and youcan't find a binary package for your platform, then you can download thesource code from CPAN - the Comprehensive Perl Archive Network.For Windows users, ActivePerl is known to work with P4Perl and you don't need to do the build yourself.Once you have Perl installed, proceed to step 2.2. Get P4PerlI maintain a so called "stable" release of Perl for people who like to avoid using the latest builds. Those who are a little more adventurouscan use the current development build. Windows InstallersWindows users using ActivePerl can skip the rest and just download aWindows installer from the table below. Perl Version Installer Active Perl 5.6 (Build 633) Released (2.2596) Current Active Perl 5.8 (Build 804) Released (2.2596) Current Latest Sources Source Tarball Change log P4.tar.gz Changes Released Sources P4 Sources P4-Client Sources P4-1.4320.tar.gz(final 1.x release) P4-1.2587.tar.gz P4-1.1733.tar.gzComments
RunCmd "wget -q ||\ bail "Could not get file '$P4APITarFile' for $PerforceRel."else msg "Skipping download of existing $P4APITarFile file."fiif [[ -d p4perl/.p4root ]]; then if [[ $Force -eq 0 ]]; then msg "Skipping clone of existing p4perl cloned workspace." export P4CONFIG=.p4config msg "Fetching latest updates from Workshop in cloned p4perl workspace in $PWD." runCmd "p4 -d $PWD/p4perl/main fetch" || bail "Failed to update p4perl cloned workspace." else msg "Removing existing p4perl clone workspace." runCmd "/bin/rm -rf $PWD/p4perl" || bail "Could not remove p4perl workspace dir [$PWD/p4perl]. Aborting." fifiif [[ ! -d p4perl/.p4root ]]; then runCmd "mkdir p4perl" "Creating base dir for cloning P4Perl" ||\ bail "Failed to create dir [$PWD/p4perl] for cloning P4Perl" runCmd "p4 -u $PublicDepotReaderUser -d $PWD/p4perl clone -p $PublicDepotPort -f $P4PerlPublicDepotPath" ||\ bail "Failed to clone P4Perl from The Workshop [P4PORT=$PublicDepotPort]."ficd "$WorkingDir" || bail "Could not cd to working dir [$WorkingDir]."PerlBuildDir=$(tar -tzf $DownloadsDir/$PerlTarFile|head -1|cut -d '/' -f1)runCmd "tar -xzpf $DownloadsDir/$PerlTarFile"cd "$PerlBuildDir" || bail "Could not cd to Perl build dir [$PerlBuildDir]."echo -e "yes\nyes\n" > tmp.input.txt./install.sh --license-accepted --prefix=$PerlRoot Versionfiif [[ ! -r RELNOTES.txt ]]; then echo "Warning: No RELNOTES.txt file found, generating a sample file." echo -e "Release Notes for P4Perl, Perforce's script API for Perl\n Version 2016.1\nIntroduction\n\n\tThis is a sample release notes file with no actual release notes.\nTo determine the version of your P4Perl, issue the following command: perl -MP4 -e "print P4::Identify()"\n" > RELNOTES.txtfiecho -e "Building P4Perl, logging to $PWD/build.log, with this version file: $(cat Version)\n"runCmd "perl Makefile.PL -apidir=$APIDir # Change User Description Committed #24 26680 Robert Cowham Remove installation scripts - useful in the past, but nowpeople should use packages. #23 25309 C. Thomas Tyler Removed now-deprecated '-b' flag from call to install_p4perl.shscript in P4Perl package.Various modifications to be shellcheck compliant. #22 25299 C. Thomas Tyler Adjusted install_sdp_perl.sh to use 'ftp' account on Public Depot server. #21 25237 C. Thomas Tyler Tweaked login. #20 25236 C. Thomas Tyler Fixed login issue. #19 25235 C. Thomas Tyler Added logic to login sdp_reader to Workshop for cloning. #18 25223 C. Thomas Tyler Updated P4Perl version to 2018.1.Added comments to indicate needed packages on SuSE Linux/SLESusing the zypper package manager.Note that this change relies on and was coordinated/tested withan updated install_p4perl.sh script in P4Perl project in The Workshop.#review-25224 #17 22620 C. Thomas Tyler Updated install_sdp_perl.sh so that it is more of a wrapper to thenew install_p4perl.sh script that is now part of P4Perl in TheWorkshop.As part of this
2025-04-02P4Perl- Perl Extensions to the Perforce API IntroductionSo what's P4Perl about? In a nutshell P4Perl is the product name for a Perl module that allows you to execute Perforce commands without leaving Perl space and to get the results in Perl Arrays and Hashes. The module's name is'P4', whilst 'P4Perl' is the product name. The reasons for this are complexand historical so just trust me on this one.'P4' is a Perl/XS extension brings the Perforce API into Perl space. It's object oriented and should be fairly intuitive for Perlusers. P4 used to depend on the P4::Client module, but all 3.x and later builds are completely independent and P4::Client is deprecated.LicenseP4Perl is distributed under the terms of this license, which is basically the BSD license. You use it at your own risk.Build RequirementsYou'll need a fairly recent Perl installed. P4Perl can be compiled to workwith any version of Perl (that I know of) from 5.005 onwards. That said,anyone still using 5.005 needs a nudge.P4 is C/C++ based and you need a C and C++ compiler on your machineto install it. The C++ compiler you use must be compatible with the compiler used by Perforce to build the Perforce API you're using. Mostlythis is a question of making sure you download the correct API! Before you can compile P4 successfully, you will need to download the Perforce API tarball separately from the Perforce FTP Site. The current version of P4Perl requires a 2004.2 API to build as itincludes support for 2004.2 API features. If you can't locate theright API build for your platform, [email protected] is not supported by Perforce Software. It is supportedby me, personally. So send all support requests to [email protected]. I'll deal with them as quickly as possible.Getting Started1. Get PerlLinux and FreeBSD users almost certainly already have Perl installed as it'sused by so many other packages. If you don't have it installed and youcan't find a binary package for your platform, then you can download thesource code from CPAN - the Comprehensive Perl Archive Network.For Windows users, ActivePerl is known to work with P4Perl and you don't need to do the build yourself.Once you have Perl installed, proceed to step 2.2. Get P4PerlI maintain a so called "stable" release of Perl for people who like to avoid using the latest builds. Those who are a little more adventurouscan use the current development build. Windows InstallersWindows users using ActivePerl can skip the rest and just download aWindows installer from the table below. Perl Version Installer Active Perl 5.6 (Build 633) Released (2.2596) Current Active Perl 5.8 (Build 804) Released (2.2596) Current Latest Sources Source Tarball Change log P4.tar.gz Changes Released Sources P4 Sources P4-Client Sources P4-1.4320.tar.gz(final 1.x release) P4-1.2587.tar.gz P4-1.1733.tar.gz
2025-04-08P4Perl- Perl Extensions to the Perforce API IntroductionSo what's P4Perl about? In a nutshell P4Perl is two Perl modules that allows you to execute Perforce commands without leaving Perl space andto get the results in Perl Arrays and Hashes.P4Perl is currently made up of two separate modules, but in time thesewill be merged into one. They're only separate because I was new toextension writing when I created them and couldn't see how to puteverything I wanted into one module. I can now.P4::Client is the Perl/XS extension brings the Perforce API into Perl space. Its structure mirrors that of the Perforce API closely so unless you are familiar with the Perforce API, you may not find it overly intuitive to use. It's also deprecated and will one day be assimilated into the P4module.P4 is a pure Perl module that makes P4::Client intuitive touse in Perl scripts. It requires P4::Client be installed first.You should write your scripts using the P4 module as eventually itwill subsume P4::Client.LicenseP4Perl is distributed under the terms of this license, which is basically the BSD license. You use it at your own risk.Build RequirementsYou'll need a fairly recent Perl installed. P4Perl can be compiled to workwith any version of Perl (that I know of) from 5.005 onwards. That said,anyone still using 5.005 needs a nudge.P4-Client is C/C++ based and you need a C and C++ compiler on your machineto install it. P4 is purely implemented in Perl.Before you can compile P4::Client successfully, you will need to download the Perforce API tarball separately from the Perforce FTP Site. Note that a 2001.1 or later API build is required.SupportP4Perl is not supported by Perforce Software. It is supportedby me, personally. So send all support requests to [email protected]. I'll deal with them as quickly as possible.Getting Started1. Get PerlLinux and FreeBSD users almost certainly already have Perl installed as it'sused by so many other packages. If you don't have it installed and youcan't find a binary package for your platform, then you can download thesource code from CPAN - the Comprehensive Perl Archive Network.For Windows users, ActivePerl is known to work
2025-04-16$DownloadsDir/$PerlTarFile|head -1|cut -d '/' -f1)runCmd "tar -xzpf $DownloadsDir/$PerlTarFile"cd "$BuildDir" || bail "Could not cd to build dir [$BuildDir]."echo -e "yes\nyes\n" > tmp.input.txt./install.sh --license-accepted --prefix=$PerlRoot # Change User Description Committed #24 26680 Robert Cowham Remove installation scripts - useful in the past, but nowpeople should use packages. #23 25309 C. Thomas Tyler Removed now-deprecated '-b' flag from call to install_p4perl.shscript in P4Perl package.Various modifications to be shellcheck compliant. #22 25299 C. Thomas Tyler Adjusted install_sdp_perl.sh to use 'ftp' account on Public Depot server. #21 25237 C. Thomas Tyler Tweaked login. #20 25236 C. Thomas Tyler Fixed login issue. #19 25235 C. Thomas Tyler Added logic to login sdp_reader to Workshop for cloning. #18 25223 C. Thomas Tyler Updated P4Perl version to 2018.1.Added comments to indicate needed packages on SuSE Linux/SLESusing the zypper package manager.Note that this change relies on and was coordinated/tested withan updated install_p4perl.sh script in P4Perl project in The Workshop.#review-25224 #17 22620 C. Thomas Tyler Updated install_sdp_perl.sh so that it is more of a wrapper to thenew install_p4perl.sh script that is now part of P4Perl in TheWorkshop.As part of this change, standard Perl rather than Active Perl isused. #16 22297 C. Thomas Tyler Added DVCS environment isolation safety feature.Updated Perforce release to 2017.1.Bypassing pre-commit review to dev branch, as this is needed tofix a demo.#review-22298 #15 21962 C. Thomas Tyler Updated various scripts to use run() and rrun() functions in favorof predecessor runCmd() and runRemoteCmd(). The older functions won'tbe removed to avoid breaking scripts that rely on their behavior
2025-04-18Use latest community release of ActivePerl available,5.24.0.2400. #9 18913 C. Thomas Tyler Updated to latest available Perl (5.22.1.2201), P4Perl (2014.1),Python (3.5.1), and P4Python (2015.2).Tweaked temp working dirs to distinguish Perl from Python dir.These are tested on CentOS 7.2. This may not work with olderCentOS boxes, but we can't do much about that since ActiveStatehas deprecated the older ActivePerl releases. #8 16870 C. Thomas Tyler Updated to ActivePerl 5.20.3.2003, as 5.18 is no longer availableon ActiveState.com.UPDATE 2016/-1/21 ttyler: I moved the checkout to the 'dev' branchinstead of the 'main' branch, so I'm filing a new review andclosing the old one. #7 16832 Robert Cowham Update p4perl versions from 5.18 which is no longer available on ActiveState site to public.declare PerlRel=5.22.1.2201declare GLibcVer=glibc-2.15-299574#review-16833 @ttyler @rjackson #6 16563 C. Thomas Tyler Routine Merge Down to dev from main using:p4 merge -b perforce_software-sdp-devp4 resolve -as #5 16029 C. Thomas Tyler Routine merge to dev from main using:p4 merge -b perforce_software-sdp-dev #4 13930 C. Thomas Tyler Path tweak to help find wget on Mac. #3 13902 C. Thomas Tyler Modified install_sdp_python and install_sdp_perl to use independentdonwloads directories, since each may need to build with a separateversion of the core Perforce C++ API. For example, presentlyP4Python 2015.1 builds with 2015.1 of the API, why P4Perl 2014.1uses the 2014.1 API.Moved version ID near the top of the file.Updated default versions for utilities to install. #2 12028 C. Thomas Tyler Refreshed SDP dev branch, merging down from main. #1 10994 Robert Cowham Catchup from Main //guest/perforce_software/sdp/main/Server/Unix/setup/install_sdp_perl.sh #1 10973 C. Thomas Tyler Added script to build and install ActivePerl and P4Perl to standardSDP location, /p4/common/perl.Corresponding updates to p4_vars.template:* Added PERLHOME and PYHOME vars.* Updated PATH and MANPATH.
2025-04-17