= SDP Release Notes
Perforce Professional Services <consulting@perforce.com>
:revnumber: v2020.1
:revdate: 2020-12-31
:doctype: book
:icons: font
:toc:
:toclevels: 3
:sectnumlevels: 4
:xrefstyle: full
// Attribute for ifdef usage
:unix_doc: true

== Preface

*Please Give Us Feedback*

Perforce welcomes feedback from our users. Please send any suggestions for improving this document or the SDP to consulting@perforce.com.

== Overview

These release notes document changes to the SDP.

There are two flavors of the SDP, Unix and Windows.

For UNIX/Linux, see: link:SDP_Guide.Unix.html[SDP Guide for UNIX/Linux]

For Windows, see: link:SDP_Guide.Windows.html[SDP Guide for Windows]

For information on upgradeing the SDP to the 2020.1 from prior releases, on Linux, see the link:SDP_Legacy_Upgrades.Unix.html[SDP Legacy Upgrade Guide (for Unix)].

== What's New in SDP 2020.1.

EDITME: Add SDP 2020.1 Overview Info Here

== Change History

Released: Rev. SDP/MultiArch/2019.3/26494 (2020/04/23)

Jobs Fixed since change 26478 up to 26494 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-529[SDP-529] (F): Add ability to limit specific commands to one-per-user, e.g. populate.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-531[SDP-531] (B): The recover_edge.sh script needed updating to use new start/stop functions.

Released: Rev. SDP/MultiArch/2019.3/26478 (2020/04/12)

Jobs Fixed since change 26472 up to 26478 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-527[SDP-527] (B): Patch to rotate_journal.sh and add test coverage for it.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-528[SDP-528] (F): Enhance dynamic check to work with replicas that do not set journalPrefix.

Released: Rev. SDP/MultiArch/2019.3/26472 (2020/04/10)

Jobs Fixed since change 26468 up to 26472 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-526[SDP-526] (F): Use dynamic journalPrefix detection for non-master servers.

Released: Rev. SDP/MultiArch/2019.3/26468 (2020/04/10)

Jobs Fixed since change 26407 up to 26468 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-446[SDP-446] (B): wrong variables used in recreate_offline_db_files
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-519[SDP-519] (B): Fixed missing variable initialization in load_checkpoint.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-520[SDP-520] (F): Add login and trust logic to load_checkpoint.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-521[SDP-521] (F): Have load_checkpoint.sh handle P4SSLDIR and cert creation automatically.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-522[SDP-522] (F): Have load_checkpoint.sh check for a license file.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-524[SDP-524] (B): Fix refresh_P4ROOT_from_offline_db.sh to work on a non-edge replica.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-525[SDP-525] (B): Remove parallel checkpoint scripts temporarily.

Released: Rev. SDP/MultiArch/2019.3/26407 (2020/03/28)

Jobs Fixed since change 26400 up to 26407 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-427[SDP-427] (F): Use systemd consistently if availabile for p4d start/stop.

Released: Rev. SDP/MultiArch/2019.3/26400 (2020/03/28)

Jobs Fixed since change 26239 up to 26400 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-427[SDP-427] (F): Use systemd consistently if availabile for p4d start/stop.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-431[SDP-431] (F): Make p4d startup resistant to timing issues for reboots & fast
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-436[SDP-436] (F): Provide snapshot hook for daily_checkpoint.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-444[SDP-444] (F): Add script to safely refresh P4ROOT db.* from offline_db.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-451[SDP-451] (F): Added '-f <P4TARGET>' flag to mkrep.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-452[SDP-452] (F): Enhance mkrep.sh to instruct using edge_dump.sh for edge servers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-453[SDP-453] (F): For filtered replicas, have mkrep.sh instruct using '-P ServerID'.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-454[SDP-454] (B): verify_sdp.sh should handle being run as root
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-455[SDP-455] (F): Add license expiration check to verify_sdp.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-510[SDP-510] (B): Fix issue with 'clean start' test suite run due to Python symlink issues.

Released: Rev. SDP/MultiArch/2019.3/26239 (2020/01/08)

Jobs Fixed since change 26159 up to 26239 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-423[SDP-423] (B): slight typo in comment /p4/INSTANCe/checkpoints
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-430[SDP-430] (B): Fixed typo causing os_tweaks.sh not to recognize Ubuntu 18.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-437[SDP-437] (F): Enhance mkdirs.sh for standby replicas to match other replica types.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-441[SDP-441] (B): Upgrade.ps1 fails with error for Windows SDP
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-443[SDP-443] (B): Fix in maint scripts to pickup SDP_INSTANCE if no arg passed.

Released: Rev. SDP/MultiArch/2019.3/26159 (2019/11/06)

Jobs Fixed since change 25949 up to 26159 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-448[SDP-448] (F): Enable 'p4 submit -b' by setting submit.allowbgtransfer=1 for P4D 2019.1.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-352[SDP-352] (F): Eliminate excessive journal rotations on p4d startup.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-412[SDP-412] (B): Backup failing as logs cannot be rotated as the server is too busy.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-424[SDP-424] (B): sync_replica.sh fails on standby replica w/rpl.journalcopy.location=1.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-425[SDP-425] (B): mkrep.sh fails for replica of replica due to ReplicatingFrom field hard coded to master.1
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-426[SDP-426] (F): Add -f flag to p4d -jr on SDP for Windows.

Released: Rev. SDP/MultiArch/2019.2/25949 (2019/08/12)

Jobs Fixed since change 25938 up to 25949 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-415[SDP-415] (B): Fixed typo in scripts for handling edge servers.

Released: Rev. SDP/MultiArch/2019.2/25938 (2019/08/05)

Jobs Fixed since change 25923 up to 25938 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-414[SDP-414] (B): Fixed issue with safety check in edge processing scripts.

Released: Rev. SDP/MultiArch/2019.2/25923 (2019/08/05)

Jobs Fixed since change 25594 up to 25923 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-398[SDP-398] (F): Disallow replicas from being initially mandatory per P4D 2019.1 requirement.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-400[SDP-400] (B): Fixed p4login bug where P4PORT value can have a value of Unset.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-401[SDP-401] (F): Enanced replica_status.sh to check archive replication.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-403[SDP-403] (B): Fixed root-owned symlinks in /p4/N after running mkdirs.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-404[SDP-404] (F): Update edge scripts to support 2019.1+ changes to edge servers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-405[SDP-405] (F): Enhanced load_checkpoint.sh to handle case-insensitive checkpoints.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-410[SDP-410] (B): [R]CMDEXITCODE not set when [r]run() called with 'grep string' parameter.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-413[SDP-413] (F): Add script to request checkpoint on edge/replica.

Released: Rev. SDP/MultiArch/2019.2/25594 (2019/05/02)

Jobs Fixed since change 25480 up to 25594 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-356[SDP-356] (F): Reduce SDP Core to contain only software supported by Perforce Support.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-369[SDP-369] (F): Added flags to p4verify.sh to verify by type like shelved.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-374[SDP-374] (B): Fixed off-by-three-orders-of-magnitude error in proxy cleanup script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-378[SDP-378] (F): Removed journalPrefix as command line paramter during journal rotation, deferring to db.config values.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-380[SDP-380] (F): Removed journalPrefix as command line paramter during journal rotation, deferring to db.config values.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-383[SDP-383] (F): Added '-a' flag meant to be equivalent of most common set of flags.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-384[SDP-384] (B): Fixed failure to cleanup old logs in sdp_sync.sh on Ubuntu Linux.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-392[SDP-392] (B): upgrade.sh must handle new 19.1 features
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-393[SDP-393] (B): Fixed perms on purge_revisions.sh and journal_watch.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-394[SDP-394] (F): Added support for wildcards/globbing to purge_revisions.sh scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-395[SDP-395] (F): Added support for 2019.1 upgrades and testing of same.

Released: Rev. SDP/MultiArch/2019.1/25480 (2019/04/11)

Jobs Fixed since change 25386 up to 25480 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-382[SDP-382] (B): Fixed missing 'exit 1' in p4d_base after 'p4d -xvU' check failure.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-387[SDP-387] (F): Test harness should run verify_sdp.sh and look for errors.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-390[SDP-390] (B): Removed crontab refs to deleted scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-391[SDP-391] (B): In mkdir.sh, fixed root ownership of generated crontab file.

Released: Rev. SDP/MultiArch/2019.1/25386 (2019/03/21)

Jobs Fixed since change 25374 up to 25386 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-379[SDP-379] (B): Fixed mkdirs.sh issue with SSL-enabled installs due to chown issue.

Released: Rev. SDP/MultiArch/2019.1/25374 (2019/03/21)

Jobs Fixed since change 25320 up to 25374 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-302[SDP-302] (F): Parallelized checkpoint processing to reduce duration.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-375[SDP-375] (B): Fix ownership and missing symlink issues in mkdirs.sh.

Released: Rev. SDP/MultiArch/2019.1/25320 (2019/03/08)

Jobs Fixed since change 25309 up to 25320 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-372[SDP-372] (B): Fixed breaking test - logic around $CN was misunderstood.

Released: Rev. SDP/MultiArch/2019.1/25309 (2019/03/07)

Jobs Fixed since change 25276 up to 25309 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-370[SDP-370] (B): Fix issue with mkdirs.sh -test mode.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-371[SDP-371] (B): Fixed install_sdp_perl to work with updated P4Perl.

Released: Rev. SDP/MultiArch/2019.1/25276 (2019/03/06)

Jobs Fixed since change 25238 up to 25276 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-368[SDP-368] (B): Fix syntax errors for SDP_ADMIN_PASSWORD_FILE in backup_functions.sh.

Released: Rev. SDP/MultiArch/2019.1/25238 (2019/03/02)

Jobs Fixed since change 23583 up to 25238 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-198[SDP-198] (B): DOC: SDP Guide needs more detail on SDP-controlled replica setup.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-247[SDP-247] (B): Need a validation script to check current status, especially after an upgrade from older version of SDP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-255[SDP-255] (B): Update SDP documentation to deal with SSL enabled servers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-256[SDP-256] (B): Update documentation to include mkdirs.cfg instead of updating mkdirs.sh
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-269[SDP-269] (F): Optimize journalPrefix values for master, edge, standby, replica.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-296[SDP-296] (B): Fixed bug where updates to os_tweaks.sh dropped support for RHEL 6.5.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-297[SDP-297] (B): Fixed handling of unlaod depots in p4verify.sh
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-298[SDP-298] (B): Avoid checking for shelved files in spec depot.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-299[SDP-299] (F): Enhanced HMS failover for standby/journalcopy replicas to use 'p4 admin end-journal'
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-300[SDP-300] (F): Set rpl.journalcopy.location=1 for p4d 2018.1+ servers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-301[SDP-301] (B): Crontab spamming emails if configurable track=1
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-304[SDP-304] (B): Fixed issues with hms status for SSL-enabled servers, etc.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-305[SDP-305] (F): Enhancemnts in libcore.sh bail(), errmsg(), initlog(), and stoplog() functions.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-306[SDP-306] (B): Moved cset of P4JOURNAL so it's done only on masteror edge server.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-307[SDP-307] (F): Changed hms remote spec for the Public Depot to be the default 'origin'.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-308[SDP-308] (F): Set rpl.journalcopy.location=1 for 2018.1+ standby replicas.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-311[SDP-311] (B): Avoid unnecessary removal of rdb.lbr in db swap.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-313[SDP-313] (F): Batch of validate_sdp.sh enhancements.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-314[SDP-314] (B): Fixed scary but otherwise harmless error in Cmd.pm
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-315[SDP-315] (F): Reformat protections table comment format during upgrades.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-316[SDP-316] (F): Added script to rotate live journal due low disk space
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-317[SDP-317] (B): Fixed issue preventing failover from an edge servder.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-318[SDP-318] (B): Removed HMS references to /usr/local/bin/bash.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-319[SDP-319] (F): Use 'p4 monitor terminate' rather than 'kill' for idle pids.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-325[SDP-325] (F): Enhanced rejectList setting for P4EXP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-326[SDP-326] (F): Enhanced rejectList setting for P4EXP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-327[SDP-327] (B): DOC: must I create /hx*?
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-328[SDP-328] (B): DOC: mismatch between setup instructions and setup script
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-329[SDP-329] (B): DOC: folder permissions
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-330[SDP-330] (B): DOC: to where should we copy the tgz file?
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-331[SDP-331] (B): DOC: lack of clarity on folder ownership.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-332[SDP-332] (B): DOC: setting executable bit on p4 etc.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-333[SDP-333] (B): DOC: reorder the create user/group sequence on Linux.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-334[SDP-334] (B): DOC: no comment on mkdirs.N.cfg, referenced in the mkdirs.sh script. 
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-335[SDP-335] (B): DOC: no comment on ssl certificate generation. 
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-337[SDP-337] (B): The upgrade.sh script, used to update your p4/p4d executables and corresponding database, starts with the message: 
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-338[SDP-338] (F): DOC: server upgrades and checkpoint
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-339[SDP-339] (B): DOC: non-existent script referenced in docs
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-341[SDP-341] (B): Critical recreate_db_checkpoint.sh bug with shared /hxdepots shared.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-342[SDP-342] (B): Fixed issue with P4Triggers.py impacting CheckCaseTrigger.py, etc.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-345[SDP-345] (B): Implemented '-r' flag to clean up old logs in global_replica_status.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-347[SDP-347] (F): Enhance CaseCheckTrigger to work even if defaultChangeType is set to restricted.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-348[SDP-348] (F): Enhanced CheckCaseTrigger.py to enable bypass.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-350[SDP-350] (F): Support SELinux ("Security Enhanced Linux)") in enforcing mode.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-353[SDP-353] (F): Avoid doing 'p4d -cset' for P4JOURNAL, but preserve safety feature.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-362[SDP-362] (B): p4verify.sh -remote ignores SDP_RECENT_CHANGES_TO_VERIFY.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-366[SDP-366] (F): Optimize display of Support messaging.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-367[SDP-367] (B): p4verify.sh should also specify the -t (transfer) option for edge servers like it currently does for replicas.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-49[SDP-49] (B): SDP Guide: inconsistent user name used in setup instructions. Page 9 of the pdf, step 1 says create user 'p4admin'. The rest of the guide that I've read, and the mkdirs.sh script, all refer to user 'perforce'.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-73[SDP-73] (F): Add Evil Twin detector/prevention trigger.

Released: Rev. SDP/MultiArch/2018.1/23583.p2 (2019/01/23)

Jobs Fixed since change 23583.p1 up to 23583.p2 (F=Feature, B=Bug):
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-366[SDP-366] (F): Optimize display of Support messaging.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-341[SDP-341] (B): Critical recreate_db_sync_replica.sh bug with shared /hxdepots shared.

Released: Rev. SDP/MultiArch/2018.1/23583.p1 (2018/07/13)

PATCH release fixes * https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-341[SDP-341].
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-341[SDP-341] (B): Critical recreate_db_checkpoint.sh bug with shared /hxdepots shared.

Released: Rev. SDP/MultiArch/2018.1/23583 (2018/02/08)

Jobs Fixed since change 23504 up to 23583 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-287[SDP-287] (B): Fixed mkdirs.sh bug fixing ownership of wrong dir. 2nd fx for * https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-287[SDP-287].

Released: Rev. SDP/MultiArch/2018.1/23504 (2018/01/19)

Jobs Fixed since change 23354 up to 23504 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-285[SDP-285] (B): The use of "tee" in p4d_base causes start to hang on some systems with 2016.2 p4d
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-286[SDP-286] (B): Fixed: In configure_new_server.*, super user not logged in after restart.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-287[SDP-287] (B): Fixed mkdirs.sh bug fixing ownership of wrong dir.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-290[SDP-290] (F): Added SDP-standard Ruby to PATH.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-291[SDP-291] (F): Added workflow support triggers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-292[SDP-292] (F): Enhancements to p4dstate.sh.

Released: Rev. SDP/MultiArch/2017.4/23354 (2017/12/08)

Jobs Fixed since change 23329 up to 23354 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-281[SDP-281] (B): Fixed journalPrefix logic in mkdirs.sh

Released: Rev. SDP/MultiArch/2017.4/23329 (2017/12/05)

Jobs Fixed since change 23041 up to 23329 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-265[SDP-265] (B): sync_replica.sh and recreate_db_sync_replica.sh should avoid rsync compression
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-266[SDP-266] (B): Fixed logging issue with sync_replica.sh and recreate_db_sync_replica.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-267[SDP-267] (B): Fixed issue detecting an edge server; wrong EDGESERVER value.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-268[SDP-268] (F): Added basic comments to all functions in backup_functions.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-269[SDP-269] (F): Optimize journalPrefix values for master, edge, standby, replica.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-270[SDP-270] (F): Added trigger script to create Swarm reviews (and unit test).
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-271[SDP-271] (F): Refactor to push common arg_parse into P4Triggers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-272[SDP-272] (F): Enhance p4login info in error output, added -d debug flag.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-273[SDP-273] (F): New RequireJob pre-submit trigger.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-274[SDP-274] (F): Added trigger to validate contents YAML files.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-276[SDP-276] (B): Make mkrep.sh work when /p4/hms instance does not exist.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-277[SDP-277] (F): Added license time remaining check script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-278[SDP-278] (F): Enhance upgrade.sh run on machines with only broker/proxy.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-279[SDP-279] (F): Added filetype.bypasslock=1 configurable, recommended for Swarm.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-280[SDP-280] (F): Updated Support coverage info and enhanced other info in SDP README file.

Released: Rev. SDP/MultiArch/2017.3/23041 (2017/10/24)

Jobs Fixed since change 23003 up to 23041 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-143[SDP-143] (F): Enhance init scripts to display usage with no args.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-259[SDP-259] (B): Fixed logging issue in upgrade.sh - p4broker/p4p start/stop not captured.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-260[SDP-260] (F): Simplified stop_p4d() in backup function due to logic now in p4d_base.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-261[SDP-261] (B): Fixed minor issue message about rotating journal escaping log capture.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-262[SDP-262] (F): Take advantage of '--daemonsafe' arg in P4D 2017.1.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-263[SDP-263] (B): Fixed login count in p4login script.

Released: Rev. SDP/MultiArch/2017.3/23003 (2017/10/19)

Jobs Fixed since change 22201 up to 23003 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-223[SDP-223] (B): Fix EDGESERVER check in p4d_base regression.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-224[SDP-224] (B): Fix os_tweaks.sh to work on RHEL/CentOS 6.9.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-225[SDP-225] (B): Updated hms_ts_setup.sh to adapt to mkdirs.cfg changes.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-226[SDP-226] (B): Fixed typo in variable name in libcore.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-227[SDP-227] (B): install_sdp_perl.sh: Added DVCS environment isolation safety feature.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-228[SDP-228] (F): install_sdp_perl.sh: Now uses r17.1 API.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-232[SDP-232] (F): Re-establish autologinprompt default behavior.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-233[SDP-233] (B): Fix bug in sdp_sync.sh related to args passed to rrun function.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-234[SDP-234] (B): Change Unix default server.id to be unique to support remote depots
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-236[SDP-236] (B): Avoid issues interacting with incompatible local Perl.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-237[SDP-237] (B): Scripts using libcore.sh display a harmless but scary error after all processing completes.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-239[SDP-239] (F): Renamed crontab templates files to be template.job.p4s rather than *.template.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-240[SDP-240] (B): Fixed cosmetic logging bug affecting several scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-241[SDP-241] (B): Update systemd templates to add new wait targets.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-242[SDP-242] (B): Corrected filetypes on some scripts to chmod +x.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-248[SDP-248] (F): Provide an override for diff between proxy listen and target ports.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-249[SDP-249] (F): Extended P4IGNORE for more Mac files.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-250[SDP-250] (F): Add value for db.monitor.shared configurable.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-251[SDP-251] (F): Tweaked versions for which net.tcpsize=0 is set.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-252[SDP-252] (B): SetWsOptionsAndView.py trigger should exit 0 when p4 client used w/ -t <template>.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-253[SDP-253] (F): Various Windows SDP enhancements.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-254[SDP-254] (F): Added SDP Overview slide preso to SDP.

Released: Rev. SDP/MultiArch/2017.2/22201 (2017/05/18)

Jobs Fixed since change 22177 up to 22201 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-222[SDP-222] (B): Fixed issue with testing mkdirs.sh on Mac.

Released: Rev. SDP/MultiArch/2017.2/22177 (2017/05/17)

Jobs Fixed since change 21808 up to 22177 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-153[SDP-153] (B): Maintenance script unload_clients_with_delete.py needs to ignore swarm workspaces to avoid losing data.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-195[SDP-195] (F): Added new configurable setting: 'filesys.bufsize=1M'.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-196[SDP-196] (B): Fixed bug in unload_labels.py, weeks passed in as days.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-197[SDP-197] (B): Fixed bug in Windows Powershell p4verify.ps1 script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-200[SDP-200] (B): Fixed issue with /tmp getting polluted with temp files.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-201[SDP-201] (F): Various scripts favor more scalable run()/rrun() over
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-202[SDP-202] (F): HMS scripts normalize to /bin/bash, check BASH_VERSION
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-203[SDP-203] (F): Added new JobIncrement trigger to simplify custom job name usage.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-210[SDP-210] (F): Enhanced P4DTG init script reliability.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-215[SDP-215] (F): Added new configurable setting: 'dm.user.loginattempts=7'.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-216[SDP-216] (F): Refactored mkdirs.sh extracting user-config into mkdirs.cfg.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-219[SDP-219] (B): Corrected logic on skipping the swarm user in remove_empty_pending_changes.py
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-220[SDP-220] (F): Added triggers using alternative file transfer for submit/pull.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-221[SDP-221] (F): Enhanced to rotate p4verify.log like other logs.

Released: Rev. SDP/MultiArch/2017.1/21808 (2017/03/08)

Jobs Fixed since change 21720 up to 21808 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-191[SDP-191] (B): Fixed default threshholds values in proxy cache cleaner.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-192[SDP-192] (B): User deletion maint script handles usernames with backslash.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-193[SDP-193] (F): Enhance proxy init script to incorporate monitoring, adding default value in p4_vars.

Released: Rev. SDP/MultiArch/2017.1/21720 (2017/02/17)

Jobs Fixed since change 21528 up to 21720 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-179[SDP-179] (F): Enhanced install_sdp_perl.sh to build with P4Perl from The Workshop
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-181[SDP-181] (B): Fixed issue keeping recreate_db_sync_replca.sh from fixing a replica out-of-sync issue.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-182[SDP-182] (F): Enhanced and updated install_sdp_perl.sh
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-183[SDP-183] (B): In recreate_db_sync_replica.sh, ensure P4ROOT and OFFLINE_DB are cleaned.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-184[SDP-184] (B): Fixed bug resulting in error sending email on Ubuntu.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-185[SDP-185] (F): Added PowerShell script p4verify.ps1 to verify on Windows.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-186[SDP-186] (F): Simplified Windows setup with batch wrappers to PowerShell scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-187[SDP-187] (F): General Unix doc enhancements.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-188[SDP-188] (F): Enhanced Perl library modules.
SDP0190 (B): Fixed hms failover bug targeting wrong host with multiple possible targets.

Released: Rev. SDP/MultiArch/2016.2/21528 (2017/01/14)

Jobs Fixed since change 21489 up to 21528 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-160[SDP-160] (F): Enhanced P4Triggers.py to print exceptions encountered.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-175[SDP-175] (F): Added more exclusions to /p4/.pignore.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-176[SDP-176] (B): Fixed issues with hms_ts_setup.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-177[SDP-177] (B): Backed out clever tempdir feature that negatively impacted portability.

Released: Rev. SDP/MultiArch/2016.2/21489 (2017/01/11)

Jobs Fixed since change 21480 up to 21489 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-174[SDP-174] (B): Added Suffix field to spec depot in new servers.

Released: Rev. SDP/MultiArch/2016.2/21480 (2017/01/11)

Jobs Fixed since change 21379 up to 21480 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-167[SDP-167] (F): Added server.start.unlicensed configurable.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-168[SDP-168] (F): Work around RHEL/CentOS 7 command completion issue.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-169[SDP-169] (B): Fixed install_sdp_python.sh issue with building P4Python for SSL-enabled server.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-170[SDP-170] (F): Added script to lowercase a directory tree.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-171[SDP-171] (F): Added SSL support in hms_ts_setup.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-172[SDP-172] (B): Fixed bug in upgrade.sh introduced when truncate journal was changed to use p4 admin journal.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-173[SDP-173] (F): Enhanced SSL support in install_sdp_python.sh to account for varied OpenSSL installations.

Released: Rev. SDP/MultiArch/2016.2/21379 (2016/12/20)

Jobs Fixed since change 21328 up to 21379 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-165[SDP-165] (F): Simplified SSL autogen cert generation.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-166[SDP-166] (B): Re-login after setting auth.id, restart at end of script.

Released: Rev. SDP/MultiArch/2016.2/21328 (2016/12/16)

Jobs Fixed since change 21239 up to 21328 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-157[SDP-157] (F): Added sample /Users/perforce/.mailrc.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-158[SDP-158] (F): SDP-ified log, moving p4triggers.log to ${LOGS}.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-159[SDP-159] (F): Updated to hms tight ship setup script, still WIP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-161[SDP-161] (F): Added script to lowercase a dir tree.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-162[SDP-162] (F): Added initial HMS tight ship script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-163[SDP-163] (F): Standardized doc format to docx.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-164[SDP-164] (F): Enhanced to support enterprise environments with two metadata volumes.

Released: Rev. SDP/MultiArch/2016.2/21239 (2016/12/06)

Jobs Fixed since change 21193 up to 21239 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-154[SDP-154] (F): Enable auth.id for P4D 2016.1+ servers.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-155[SDP-155] (F): Suppress known-harmless errors in p4verify.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-156[SDP-156] (F): Enhance install_sdp_p* scripts to remove hard-coded dependency on an instance 1.

Released: Rev. SDP/MultiArch/2016.2/21193 (2016/12/2)

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-138[SDP-138] (F): Take advantage of new 2016.2 configurables.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-147[SDP-147] (F): Add CentOS 7 support to os_tweaks.sh
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-148[SDP-148] (F): Update SDP Python/Perl install to use 'http:' rather than 'ftp:' in URLs.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-150[SDP-150] (B): Correct cp path for ssl dir.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-151[SDP-151] (F): Enhance Windows SDP install to server.depot.root.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-152[SDP-152] (F): Enhance to support 2 volumes for root/offline_db.  Modified
directory structure and scripts to support storing root and offline database
on two different volumes. This is actually a preferred configuration now for
performance and safety.

Released: Rev. SDP/MultiArch/2016.2/21123 (2016/11/22)

Jobs Fixed since change 21103 up to 21123 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-149[SDP-149] (B): Fix shebang line for case check trigger.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-150[SDP-150] (B): Correct cp path for ssl dir.

Released: Rev. SDP/MultiArch/2016.2/21103 (2016/11/21)

Jobs Fixed since change 21101 up to 21103 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-146[SDP-146] (F): Added doc-only hms setup scripts.

Released: Rev. SDP/MultiArch/2016.2/21101 (2016/11/21)

Jobs Fixed since change 21033 up to 21101 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-144[SDP-144] (F): Add CheckCaseTrigger.p to the SDP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-145[SDP-145] (F): Various doc update for hms and failover.

Released: Rev. SDP/MultiArch/2016.2/21033 (2016/11/10)

Jobs Fixed since change 20995 up to 21033 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-139[SDP-139] (B): mkrep.sh: Add missing journalcopy to standby replicas.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-140[SDP-140] (B): hms: Fixed issues with script hang on local failover.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-141[SDP-141] (F): hms: Replaced hard-coded master ServerID value with configured value.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-142[SDP-142] (B): Fix p4verify.sh bug when -recent flag is used.

Released: Rev. SDP/MultiArch/2016.2/20995 (2016/11/07)

Jobs Fixed since change 20972 up to 20995 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-134[SDP-134] (B): p4verify.sh is currently broken - use of an unbounded variable ($d);  use of the -recent option fails as for verify -S you cannot specify a range (only @= is supported) ;  stripping out archive,unload+remote depots also not working. get_verofy_rev_range used depot name incorrectly in changes
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-136[SDP-136] (B): Tweaked maint scripts to handle oddly named groups.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-137[SDP-137] (F): Added new CN setting for /p4/common to test folder paths.

Released: Rev. SDP/MultiArch/2016.2/20972 (2016/11/01)

Jobs Fixed since change 20856 up to 20970 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-120[SDP-120] (F): Add -recent flag to p4verify.sh to verify recent changes.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-126[SDP-126] (B): p4login.*.log files are not being cleaned up by the standard clean-up mechanism (remove_old_logs in backup_function.sh).
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-127[SDP-127] (F): Allow for multiple depot volumes.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-128[SDP-128] (B): Fixed missing LOGFILE varialbe issue in p4verify.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-129[SDP-129] (B): Fix formatting of logs to use simple HTML line breaks for Windows SDP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-130[SDP-130] (B): Various test suite improvements.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-131[SDP-131] (B): fixed issue with broken def'n of P4PORT with multiple SSL prefixes.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-132[SDP-132] (F): Enhanced two-factor auth mechanims.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-133[SDP-133] (F): Tweak to slightly reduce mkdirs.sh configuration.

Released: Rev. SDP/MultiArch/2016.2/20856 (2016/10/04)

Jobs Fixed since change 20805 up to 20856 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-121[SDP-121] (F): Enhanced logic to favor init scripts in /p4/N/bin over /etc/init.d.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-122[SDP-122] (B): Fixed quoting bug in p4login.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-123[SDP-123] (F): hms checks for cfg files in /p4/common/config.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-124[SDP-124] (B): Fixed hms bug re: wrong master host discovered in failback testing

Released: Rev. SDP/MultiArch/2016.2/20805 (2016/10/02)

Jobs Fixed since change 20790 up to 20805 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-116[SDP-116] (B): Fixed ssh hang issues with hms scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-117[SDP-117] (F): Implemented global/central start stop.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-118[SDP-118] (F): mkrep.sh: Added more replica types and journalcopy support.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-119[SDP-119] (F): Implement checkauth feature in HMS broker_wrapper.

Released: Rev. SDP/MultiArch/2016.2/20790 (2016/09/30)

Jobs Fixed since change 20755 up to 20790 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-112[SDP-112] (B): Minor p4 login fix to show P4TICKETS output reliably.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-113[SDP-113] (B): Fix mkrep.sh to use $P4BIN instead of p4.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-114[SDP-114] (F): Added basic p4login-super.sh script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-115[SDP-115] (B): Added hms dir to mkdirs.sh.

Released: Rev. SDP/MultiArch/2016.2/20755 (2016/09/29)

Jobs Fixed since change 20559 up to 20755 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-64[SDP-64] (F): Add option to install_sdp_python.sh to build P4Python with SSL.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-103[SDP-103] (B): Fix attempted login count in p4login.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-104[SDP-104] (B): Fixed order-of-operations issue that caused some log files to be lost on rotation.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-105[SDP-105] (B): Cosmetic fix to broker init script with 'status all' run w/no config files.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-106[SDP-106] (F): Add Helix Management System (HMS) files to SDP.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-107[SDP-107] (F): Enhance p4login to avoid hang issue with auth.id set.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-108[SDP-108] (F): Further test suite docker environment updates.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-109[SDP-109] (F): Add Two Factor Authentication sample auth script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-110[SDP-110] (B): Correct crontab to run sync_replica.sh every day.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-111[SDP-111] (B): Fix bugs in convert_label_to_autoreload.py.

Jobs Fixed since change 20491 up to 20559 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-100[SDP-100] (B): Fix recent regression with 'restart' option in init scripts.

Released: Rev. SDP/MultiArch/2016.1/20491 (2016/09/09)

Jobs Fixed since change 20460 up to 20491 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-99[SDP-99] (B): Fix special case env insulation bug running init scripts as root.

Released: Rev. SDP/MultiArch/2016.1/20460 (2016/09/08)

Jobs Fixed since change 20395 up to 20460 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-94[SDP-94] (B): Fixed a typo inserted in mkdirs.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-98[SDP-98] (B): chmod +x fix on some scripts.

Released: Rev. SDP/MultiArch/2016.1/20395 (2016/09/04)

Jobs Fixed between changelists 20387 and 20395 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-94[SDP-94] (B): Fixed a typo inserted in mkdirs.sh.

Released: Rev. SDP/MultiArch/2016.1/20387 (2016/09/04)

Jobs Fixed between changelists 20348 and 20387 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-89[SDP-89] (B): Fixed several issues in email.sh maint script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-92[SDP-92] (B): Fixed using with runRemoteCmd getting error if USER not defined in non-core SDP script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-93[SDP-93] (B): Removed references to legacy names for checkpoint scripts (non-functional change).

Jobs Fixed between changelists 20028 and 20348 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-64[SDP-64] (F): Add option to install_sdp_python.sh to build P4Python with SSL.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-74[SDP-74] (F): Add p4sanity_check.sh script from Battle School.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-75[SDP-75] (B): Fix missing echo of command into log file in p4verify.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-77[SDP-77] (F): Change adminspass to use hidden, and now instance-specific, password files
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-78[SDP-78] (F): Add mkrep script to simplify replica creation.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-79[SDP-79] (F): Update p4verify.sh to verify shelves on master/replicas.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-80[SDP-80] (F): Add script to convert labels to autoreload.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-81[SDP-81] (F): Add Evil Twin Detector maintenance script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-85[SDP-85] (F): Add script to simplify adoption of OS-level best practices recommended by Support.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-97[SDP-97] (B): Eliminate syntax error if user forgets start/stop/status arg; just display status.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-88[SDP-88] (F): Use pid to shutdown p4d rather than 'p4 admin stop' to enhance reliability.

Released: Rev. SDP/MultiArch/2016.1/20028 (2016/08/03)

Jobs Fixed between changelists 19888 and 20028 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-67[SDP-67] (F): Defend against environment hijacking of P4ENVIRO.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-72[SDP-72] (F): Revive external auth LDAP group mirror scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-69[SDP-69] (B): sdp_sync.sh v2.1.7: Fixed environment bug (missing defs), HMS support.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-70[SDP-70] (F): Simplify login ticket handling for sophisticated topologies.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-71[SDP-71] (F): Prevent cross-instance contamination if p4_vars is loaded multiple times.

Released: Rev. SDP/MultiArch/2016.1/19888 (2016/07/07)

Jobs Fixed between changelists 19838 and 19888 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-6[SDP-6] (B): SDP trigger breaks with Streams workspaces in P4V.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-66[SDP-66] (B): Daily/weekly_backup can fail leaving lock file present requiring manual intervention
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-67[SDP-67] (F): Defend against environment hijacking of P4ENVIRO.

Released: Rev. SDP/MultiArch/2016.1/19838 (2016/06/26)

Jobs Fixed between changelists 19768 and 19838 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-6[SDP-6] (B): SDP triggers break with Streams workspaces in P4V.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-65[SDP-65] (F): Add defense against known-misbehaving client versions.

Released: Rev. SDP/MultiArch/2016.1/19768 (2016/06/24)

Jobs Fixed between changelists 19661 and 19768 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-62[SDP-62] (F): Change to best-practice configurables; auth.autologinprompt=0.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-63[SDP-63] (B): p4master_run operates incorrectly as root.

Released: Rev. SDP/MultiArch/2016.1/19661 (2016/06/08)

Jobs Fixed between changelists 19410 and 19661 (F=Feature, B=Bug):

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-59[SDP-59] (F): Add KEEPJNLS to allow keeping more jnls than ckps.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-60[SDP-60] (F): Rename replica scripts to be consistent with earlier rename of checkpoint scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-61[SDP-61] (F): Enhance error checkong and logging replica handling scripts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-62[SDP-62] (F): Change to best-practice configurables; auth.autologinprompt=0.

Released: SDP/MultiArch/2016.1/19410 (2016/05/17)

Jobs Fixed between changelists 18958 and 19410:

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-50[SDP-50]: Work with license check in P4D 2016.1.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-51[SDP-51]: Change p4verify.sh to use -S to verify shelves on a replica instead
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-52[SDP-52]: Removed the HOST_IP settings from mkdirs and instance_vars since it
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-53[SDP-53]: Dockerify SDP test suite.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-54[SDP-54]: Add replica cleanup script on Windows.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-55[SDP-55]: Get p4verify.sh to check SHAREDDATA on replicas.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-56[SDP-56]: Avoid chmod on a replica if it shares data with the master.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-57[SDP-57]: Use 'p4 admin journal' on master to rotate journal.

Released: SDP/MultiArch/2016.1/18958 (2016/04/08)

Jobs Fixed between changelists 18619 and 18958:

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-39[SDP-39]: Proxy status init script can show proxy is up when it is not.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-41[SDP-41]: Moved ckp_running.txt to LOGS dir.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-42[SDP-42]: Fix missing LOGFILE= in replica_cleanup.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-43[SDP-43]: De-emphasized changeType=restricted.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-44[SDP-44]: Update Perl/P4Perl Python/P4Python
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-45[SDP-45]: Support multiple broker configs.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-46[SDP-46]: Enhanced p4_vars.template to support non-p4d hosts.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-47[SDP-47]: SDP-ify P4DTG init script.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-48[SDP-48]: Enhanced p4deleteuser.py to check for shelves, double-deletes.

Released: SDP/MultiArch/2016.1/18619 (2016/03/10):

Jobs Fixed between changelists 17297 and 18619 

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-30[SDP-30] on 2015/12/15 by ttyler *closed* 'Enhanced offline_db 'stale data'

Jobs Fixed between changelists 16784 and 17297:

* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-32[SDP-32]: Support $MAILTO values with'#' char in gen_default_broker_cfg.sh.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-34[SDP-34]: sdp_sync.sh: Fix 'null crontab' bug.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-35[SDP-35]: p4d_base: When stopping p4d, send stderr to /dev/null.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-36[SDP-36]: global_replica_status.sh: Support instance-specifc host config.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-37[SDP-37]: Support email addresses starting with '#'.

Released: SDP/MultiArch/2016.1/16784 (2016/01/12)
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-31[SDP-31]: Add documentation for sdp_sync.sh to SDP Guide.
* https://swarm.workshop.perforce.com/projects/perforce-software-sdp/jobs/SDP-32[SDP-32]: Support $MAILTO values with'#' char in gen_default_broker_cfg.sh.
