-
Notifications
You must be signed in to change notification settings - Fork 5
/
reposync.1
147 lines (147 loc) · 3.86 KB
/
reposync.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
.\" Copyright (c) 2019 Stuart Henderson <sthen@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 4 2019 $
.Dt REPOSYNC 1
.Os
.Sh NAME
.Nm reposync
.Nd update OpenBSD source repository
.Sh SYNOPSIS
.Nm
.Op Fl 46fq
.Op Fl p | Fl l Ar username
.Op Fl s Ar sets
.Op Fl w Ar warntime
.Ar rsync://upstream/path
.Op Ar destination
.Sh DESCRIPTION
.Nm
is a utility to update the
.Ox
source repository.
.Pp
It connects to an rsync server, by default using
.Xr ssh 1
port forwarding to allow verification of the upstream server.
If only a short time has elapsed since the previous update, the
.Pa CVSROOT
directory on the upstream server is checked for changes (typically in
the ChangeLog file) and the update is skipped if none are detected.
.Pp
If
.Ar destination
is omitted,
.Pa /cvs
will be used.
.Pp
A list of upstream servers holding the
.Ox
repository is available at
.Lk https://www.openbsd.org/anoncvs.html .
.Pp
.Pa /var/db/reposync
and the
.Ar destination
directory must exist and be writable by the user running
.Nm .
.Pp
The options are as follows.
.Bl -tag -width Ds
.It Fl 4
Connect using IPv4.
.It Fl 6
Connect using IPv6.
.It Fl f
Force updating, even if CVSROOT has not been updated.
.It Fl l Ar username
.Xr ssh 1
port-forwarding is used with the specified
.Ar username .
By default, this is enabled with the username
.Qq anoncvs .
.It Fl p
Disable
.Xr ssh 1
port-forwarding and use plaintext.
This option is not recommended and may be removed in the future.
.It Fl q
Be quiet.
By default, a list of files updated is output.
Suggested use from
.Xr cron 8
is to use the default
.Nm
option but use the
.Xr crontab 5
.Fl n
option to suppress the email unless a problem occurs,
giving the most information in error conditions.
.It Fl s Ar sets
Specify a comma-separated list of file sets.
By default, all standard sets are fetched:
.Qq www,xenocara,ports,src .
.It Fl w Ar warntime
If the sync takes longer than
.Ar warntime
seconds, display a warning and exit with an error code.
.El
.Sh FILES
.Bl -tag -width "/var/db/reposync/reposync.hash" -compact
.It Pa /var/db/reposync/reposync.hash
stores a hash of the CVSROOT directory listing to detect if the
repository has not changed
.It Pa /var/db/reposync/known_hosts
.It Pa /usr/local/share/reposync/ssh_known_hosts
both passed to
.Xr ssh 1
.Cm UserKnownHostsFile
.El
.Pp
The
.Nm
package provides default hostkeys of official OpenBSD mirrors known to
support rsync over ssh-forwarding in
.Pa /usr/local/share/reposync/ssh_known_hosts .
If using an unofficial mirror, add the host key to
.Pa /var/db/reposync/known_hosts .
.Sh EXAMPLES
.Ic $ doas -u cvs reposync rsync://mirror.example.org/cvs
.Pp
Connect via
.Xr ssh 1
to anoncvs@mirror.example.org and use the port-forward functionality
to connect to rsync using an encrypted, authenticated channel and
update the default local directory
.Pa /cvs .
.Pp
.Ic $ doas -u cvs reposync -s src,xenocara rsync://mirror.example.org/cvs
.Pp
As above, but only fetch
.Qq src
and
.Qq xenocara
sets.
.Pp
.Ic $ reposync -q rsync://mirror.example.org/cvs ~/cvs
.Pp
Connect via
.Xr ssh 1
to anoncvs@mirror.example.org and update the local directory
.Pa ~/cvs .
Use quiet output.
.Sh SEE ALSO
.Xr cvs 1 ,
.Xr rsync 1 ,
.Xr ssh 1