git: 14da1cc7ad76 - stable/13 - openssh: port upgrade doc and script to git

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Mon, 07 Feb 2022 22:34:46 UTC
The branch stable/13 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=14da1cc7ad76d7ff21e38dfd7ea288d0fea62410

commit 14da1cc7ad76d7ff21e38dfd7ea288d0fea62410
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2021-02-10 00:50:32 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2022-02-07 22:34:33 +0000

    openssh: port upgrade doc and script to git
    
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D28564
    
    (cherry picked from commit 74c59ab790db0062b768bb9742e4d1ad036501ad)
---
 crypto/openssh/FREEBSD-upgrade      | 37 +++++++++++++++++++++----------------
 crypto/openssh/freebsd-pre-merge.sh |  3 +--
 2 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/crypto/openssh/FREEBSD-upgrade b/crypto/openssh/FREEBSD-upgrade
index 27e738bee2d4..0a62d6fa1e2c 100644
--- a/crypto/openssh/FREEBSD-upgrade
+++ b/crypto/openssh/FREEBSD-upgrade
@@ -1,6 +1,11 @@
 	    FreeBSD maintainer's guide to OpenSSH-portable
 	    ==============================================
 
+    These instructions assume you have a clone of the FreeBSD git repo
+    main branch in src/freebsd/main, and will store vendor trees under
+    src/freebsd/vendor/.  In addition, this assumes there is a "freebsd"
+    origin pointing to git(repo).freebsd.org/src.git.
+
 00) Make sure your mail spool has plenty of free space.  It'll fill up
     pretty fast once you're done with this checklist.
 
@@ -15,40 +20,38 @@
 
     $ tar xf openssh-X.YpZ.tar.gz
 
-04) Copy to the vendor directory:
+04) Copy to a vendor branch:
 
-    $ svn co svn+ssh://repo.freebsd.org/base/vendor-crypto/openssh/dist
-    $ rsync --archive --delete openssh-X.YpZ/ dist/
+    $ cd src/freebsd/main
+    $ git worktree add ../vendor/openssh freebsd/vendor/openssh
+    $ cd ../vendor/openssh
+    $ rsync --archive --delete --exclude=.git /path/to/openssh-X.YpZ/ ./
 
 05) Take care of added / deleted files:
 
-    $ svn rm $(svn stat dist | awk '$1 == "!" { print $2 }')
-    $ svn add --no-auto-props $(svn stat dist | awk '$1 == "?" { print $2 }')
+    $ git add -A
 
 06) Commit:
 
-    $ svn commit -m "Vendor import of OpenSSH X.YpZ." dist
+    $ git commit -m "Vendor import of OpenSSH X.YpZ"
 
 07) Tag:
 
-    $ svn copy -m "Tag OpenSSH X.YpZ." \
-	svn+ssh://repo.freebsd.org/base/vendor-crypto/openssh/dist \
-	svn+ssh://repo.freebsd.org/base/vendor-crypto/openssh/X.YpZ
+    $ git tag -a -m "Tag OpenSSH X.YpZ" vendor/openssh/X.YpZ
 
 08) Check out head and run the pre-merge script, which strips our RCS
     tags from files that have them:
 
-    $ svn co svn+ssh://repo.freebsd.org/base/head
-    $ cd head/crypto/openssh
+    $ cd src/freebsd/main/crypto/openssh
     $ sh freebsd-pre-merge.sh
 
 09) Merge from the vendor branch:
 
-    $ svn merge -cNNNNNN \^/vendor-crypto/openssh/dist .
+    $ git subtree merge -P crypto/openssh vendor/openssh
 
     A number of files have been deleted from FreeBSD's copy of ssh,
     including rendered man pages (which have a .0 extension).  When
-    svn prompts for these deleted files during the merge, choose 'r'
+    git prompts for these deleted files during the merge, choose 'd'
     (leaving them deleted).
 
 0A) Resolve conflicts.  Remember to bump the version addendum in
@@ -57,8 +60,7 @@
 
 0B) Diff against the vendor branch:
 
-    $ svn diff --no-diff-deleted --no-diff-added \
-	--ignore-properties \^/vendor-crypto/openssh/X.YpZ .
+    $ git diff --diff-filter=M vendor/openssh/X.YpZ HEAD:crypto/openssh
 
     Files that have modifications relative to the vendor code, and
     only those files, must have the svn:keywords property set to
@@ -70,6 +72,9 @@
 
     $ sh freebsd-post-merge.sh
 
+    These tags are not used with git, but we will leave them in place as
+    long as svn-based FreeBSD 11.x and 12.x are supported.
+
 0D) Run the configure script:
 
     $ sh freebsd-configure.sh
@@ -77,7 +82,7 @@
 0E) Review changes to config.h very carefully.
 
     Note that libwrap should not be defined in config.h; as of
-    r311585 it is conditional on MK_TCP_WRAPPERS.
+    r311585 (233932cc2a60) it is conditional on MK_TCP_WRAPPERS.
 
 0F) If source files have been added or removed, update the appropriate
     makefiles to reflect changes in the vendor's Makefile.in.
diff --git a/crypto/openssh/freebsd-pre-merge.sh b/crypto/openssh/freebsd-pre-merge.sh
index 473474c2c4da..f98e71822a0c 100755
--- a/crypto/openssh/freebsd-pre-merge.sh
+++ b/crypto/openssh/freebsd-pre-merge.sh
@@ -5,9 +5,8 @@
 
 :>keywords
 :>rcsid
-svn list -R | grep -v '/$' | \
+git ls-files | \
 while read f ; do
-	svn proplist -v $f | grep -q 'FreeBSD=%H' || continue
 	egrep -l '^(#|\.\\"|/\*)[[:space:]]+\$FreeBSD[:\$]' $f >>keywords
 	egrep -l '__RCSID\("\$FreeBSD[:\$]' $f >>rcsid
 done