aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2021-02-10 00:50:32 +0000
committerEd Maste <emaste@FreeBSD.org>2021-02-14 21:41:11 +0000
commit74c59ab790db0062b768bb9742e4d1ad036501ad (patch)
tree21fa1404bcda6329aef225c46ebac6ed3fae6347
parent5d8c062fe3ee7b2d6aed0b46d22f62c7771c0af8 (diff)
downloadsrc-74c59ab790db0062b768bb9742e4d1ad036501ad.tar.gz
src-74c59ab790db0062b768bb9742e4d1ad036501ad.zip
openssh: port upgrade doc and script to git
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28564
-rw-r--r--crypto/openssh/FREEBSD-upgrade37
-rwxr-xr-xcrypto/openssh/freebsd-pre-merge.sh3
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