Hi Fabio,
i applied a very small number of minor tweaks and plan to commit
the patch below tomorrow based on OK jmc@ deraadt@ millert@,
unless i hear objections.
Fabio Scotoni wrote on Tue, Apr 23, 2019 at 05:19:48PM +0200:
> I've adjusted the updated man page (inline) .Dt and .Nm to match this.
>
> However, I would advise you not to.
> rcs(5) may be surprising for anyone coming from the other
> implementations of single-file version control systems:
> - GNU RCS ships rcsfile(5), and
> - all versions of SCCS ship sccsfile(4) (even Schily and BitKeeper).
Ouch. I didn't intend to suggest changing the filename.
Sorry, that was a mistake on my part.
I only meant to suggest directories where the file should live.
I assume those who responded positively are OK with
/usr/src/usr.bin/rcs/rcsfile.5
/usr/share/man/man5/rcsfile.5
as well.
I think you are right that it is better to stick to the filename
used traditionally.
>> At the top of the file, a Copyright notice and license is missing.
>> Please conisder using /usr/share/misc/license.template with the
>> comment markers changed to .\" .
> I intentionally skipped on adding the copyright notice and license
> because I felt it would be presumptuous -- I wanted to keep open
> the option of a copyright assignment to an OpenBSD contributor open
> in case the OpenBSD project wished for it, just in case.
If you weren't a lawyer, i would feel tempted to suspect that you
misunderstood how Copyright works in general. As things stand, i
may be misunderstanding what you intend to say here. Either way,
i suspect you misunderstand how ownership of intellectual property
works in OpenBSD in particular.
By international law (Berne Convention), you cannot give away Copyright.
Copyright always resides with the natural person who is the original
creator of a Work. It is inalienable. The "Copyright" line is merely
a statement of fact.
Is it correct that you wrote all the text in the file?
If so, your name needs to be there.
According to the Berne Convention, even though you cannot give away
the moral rights that constitute the core of Copyright, you can give
away the economic rights arising from a Work. Some publishers of
software (for example the FSF) ask for that. But in OpenBSD, we
strongly encourage original authors to retain all economic rights
arising from their Works, and simply grant a standardized license
themselves, such that OpenBSD can distribute the Works. The OpenBSD
project doesn't own any rights and isn't even a legal entity.
> Added in the updated man page inline,
> including the $OpenBSD$ keyword at the top.
Thank you for granting the license on your Work.
> Your suggestions and/or subsequent in-tree changes may warrant
> a copyright notice of your own.
Technically, if anybody changes a file in a way adding a non-trivial
amount of text - even one or two sentences will usally be sufficient,
arguably even a few words if they are important and difficult to
come up with -, they own Copyright on the changes and can make it
known that they do by adding a "Copyright" line of their own to the
file header. That isn't required though, the Copyright exists
whether or not it is stated.
To keep file headers concise and because tracking all Copyright-worthy
changes in file headers is tedious, we tend to only add such additional
lines for massive contributions, or if an authors cares unusually
strongly about their contributions to a particular file.
Yours,
Ingo
Index: Makefile
===================================================================
RCS file: /cvs/src/usr.bin/rcs/Makefile,v
retrieving revision 1.40
diff -u -p -r1.40 Makefile
--- Makefile 15 Oct 2010 08:44:12 -0000 1.40
+++ Makefile 23 Apr 2019 17:04:55 -0000
@@ -1,7 +1,9 @@
# $OpenBSD: Makefile,v 1.40 2010/10/15 08:44:12 tobias Exp $
PROG= rcs
-MAN= ci.1 co.1 ident.1 merge.1 rcs.1 rcsclean.1 rcsdiff.1 rcsmerge.1 rlog.1
+MAN= ci.1 co.1 ident.1 merge.1 \
+ rcs.1 rcsclean.1 rcsdiff.1 rcsmerge.1 rlog.1 \
+ rcsfile.5
SRCS= ci.c co.c ident.c merge.c rcsclean.c rcsdiff.c rcsmerge.c rcsparse.c \
rcsprog.c rlog.c rcsutil.c buf.c date.y diff.c diff3.c rcs.c rcsnum.c \
Index: rcsfile.5
===================================================================
RCS file: rcsfile.5
diff -N rcsfile.5
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ rcsfile.5 23 Apr 2019 17:04:55 -0000
@@ -0,0 +1,154 @@
+.\" $OpenBSD$
+.\"
+.\" Copyright (c) 2019 Fabio Scotoni <[email protected]>
+.\"
+.\" 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$
+.Dt RCSFILE 5
+.Os
+.Sh NAME
+.Nm rcsfile
+.Nd format of an RCS file
+.Sh DESCRIPTION
+An RCS file is a text file.
+It consists of four sections, each separated by two empty lines.
+RCS files should not be edited by hand;
+the
+.Xr rcs 1
+programs should be used instead.
+.Ss Administrative data
+The RCS file begins with admin data.
+Each entry in this section consists of either one or multiple values.
+Entries that take one value are specified on one line:
+The keyword and its corresponding value are separated by
+a tab character.
+Entries that take multiple values begin with a keyword on one line;
+the values are specified on subsequent lines, one per line and
+prefixed with a tab character.
+If the list is empty, the semicolon immediately follows the keyword.
+Entries are terminated with a semicolon.
+The entries are:
+.Bl -tag -width Ds
+.It Ic head Ar rev
+Highest revision number.
+.It Ic branch Ar rev
+Revision number that specifies the default branch (optional).
+.It Ic access
+List of users that are allowed to check in new revisions with
+.Xr ci 1 .
+This keyword is not followed by a tab;
+instead, the list of users is specified with one username per line.
+The list is terminated by a single semicolon.
+.It Ic symbols
+List of symbolic names used as aliases for specific revisions.
+Each entry consists of a symbolic name followed by a colon and
+the revision.
+.It Ic locks
+List of locked revisions.
+Each entry consists of a username followed by a colon and
+the locked revision.
+.It Ic strict
+Indicates that locks are strict;
+if missing, locks are not strict.
+This entry takes no value and immediately follows the list of locks
+without a newline.
+.It Ic comment Pf @ Ar leader Ns @
+Contains the comment leader surrounded by at signs.
+.It Ic expand Pf @ Ar mode Ns @
+Indicates the keyword substitution mode.
+See
+.Xr rcs 1
+for the possible keyword substitution modes.
+If this entry is not given in the admin section,
+.Ar kv
+must be assumed.
+.El
+.Ss List of deltas
+The RCS file continues with a list of deltas.
+Deltas are separated by empty lines.
+The list begins with the head and ends with the initial revision.
+Each entry begins with the revision number, followed by a newline.
+After that, the structure follows the admin section.
+.Bl -tag -width Ds
+.It Ic date Ar YYYY . Ar mm . Ar dd . Ar HH . Ar MM . Ar SS
+Indicates the date and UTC time the revision was checked in.
+The date consists of the year, the month,
+the day of month, the hour, the minute and the second,
+each separated by dots.
+The year is specified in either two or four digits.
+The other values are specified in two digits each.
+.It Ic author Ar username
+Author's username.
+This entry immediately follows the
+.Ic date
+without a newline.
+.It Ic state Ar value
+Contains the state of this delta,
+which is an arbitrary string.
+This entry immediately follows the
+.Ic author
+without a newline.
+.It Ic branches
+List of revision numbers that are branches stemming from this delta.
+.It Ic next Ar rev
+Next revision.
+Chronologically, this is the
+.Em previous
+revision.
+For the initial check-in,
+.Ar rev
+is empty,
+but the tab character that acts as separator is nonetheless present.
+.El
+.Ss Description
+The RCS file continues with the description.
+It consists of the string
+.Ic desc
+followed by a newline and then an at sign.
+The description is an arbitrary string that can span multiple lines.
+A single at sign on a line terminates the description.
+At signs anywhere in the description itself
+are escaped by prefixing them with another at sign.
+.Ss List of deltatexts
+Finally, the RCS file contains the deltatexts.
+The list of deltatexts is ordered the same as the list of deltas.
+Deltatexts are separated by two lines.
+Each entry begins with the revision number, followed by a newline.
+The text
+.Dq Ic log
+follows on its own line.
+The log message follows on another new line;
+it consists of an at sign, the log message itself (which may span
+multiple lines), and finally an at sign on its own line.
+Then the text
+.Dq Ic text
+follows on its own line.
+The format is the same as for the description and log message.
+As with the description,
+at signs anywhere in the log message or in the deltatext itself
+are escaped by prefixing them with another at sign.
+The deltatext of the head consists of the full file contents.
+All subsequent deltatexts contain the differences to the previous
+deltatext in the format of
+.Xr diff 1
+.Fl n .
+.Sh SEE ALSO
+.Xr ci 1 ,
+.Xr co 1 ,
+.Xr cvs 1 ,
+.Xr ident 1 ,
+.Xr rcs 1 ,
+.Xr rcsclean 1 ,
+.Xr rcsdiff 1 ,
+.Xr rcsmerge 1