- use our naming scheme for patches
This commit is contained in:
parent
88730659e2
commit
eca8b54851
@ -1,24 +0,0 @@
|
||||
--- ctm/ctm/Makefile.orig Tue May 28 17:47:37 1996
|
||||
+++ ctm/ctm/Makefile Fri Feb 18 14:58:37 2000
|
||||
@@ -9,18 +9,14 @@
|
||||
# $Id: Makefile,v 1.9 1995/07/12 18:35:22 bde Exp $
|
||||
#
|
||||
|
||||
-BINDIR=/usr/local/bin
|
||||
-MANDIR=/usr/local/man/cat
|
||||
+BINDIR=${PREFIX}/bin
|
||||
+MANDIR=${PREFIX}/man/cat
|
||||
|
||||
PROG= ctm
|
||||
NOTYET= ctm_ed.c
|
||||
SRCS= ctm.c ctm_input.c ctm_pass1.c ctm_pass2.c ctm_pass3.c \
|
||||
ctm_syntax.c ctm_ed.c
|
||||
-LDADD+= -L/usr/local/lib -lmd
|
||||
-DPADD+= ${LIBMD}
|
||||
-MAN1= ctm.1
|
||||
-MAN5= ctm.5
|
||||
-CFLAGS+= -I/usr/local/include -Wall
|
||||
+MAN= ctm.1 ctm.5
|
||||
|
||||
.if exists(${.CURDIR}/../../Makefile.inc)
|
||||
.include "${.CURDIR}/../../Makefile.inc"
|
@ -1,15 +0,0 @@
|
||||
--- ctm/ctm_rmail/Makefile.orig Thu Dec 2 09:54:23 1999
|
||||
+++ ctm/ctm_rmail/Makefile Thu Dec 2 09:54:38 1999
|
||||
@@ -1,9 +1,9 @@
|
||||
-BINDIR=/usr/local/bin
|
||||
-MANDIR=/usr/local/man/cat
|
||||
+BINDIR=${PREFIX}/bin
|
||||
+MANDIR=${PREFIX}/man/cat
|
||||
|
||||
PROG= ctm_rmail
|
||||
SRCS= ctm_rmail.c error.c
|
||||
-CFLAGS+= -I/usr/local/include -Wall
|
||||
+CFLAGS+= -Wall
|
||||
MLINKS+= ctm_rmail.1 ctm_smail.1
|
||||
|
||||
.include <bsd.prog.mk>
|
File diff suppressed because it is too large
Load Diff
@ -1,49 +0,0 @@
|
||||
|
||||
My patch that helps when expanding the OpenBSD-cvs-x11 deltas.
|
||||
Sometimes the files extracted are read-only. Rather than abort out in
|
||||
a big mess, this patch checks for unwritable files, and chmods them
|
||||
if you specify the -F (force) flag. - d@
|
||||
|
||||
--- ctm/ctm/ctm_pass2.c.orig Fri Feb 18 16:12:35 2000
|
||||
+++ ctm/ctm/ctm_pass2.c Fri Feb 18 16:40:02 2000
|
||||
@@ -114,6 +114,11 @@
|
||||
ret |= Exit_NotOK;
|
||||
break;
|
||||
}
|
||||
+ if (-1 == access(name, W_OK)) {
|
||||
+ fprintf(stderr, " %s: %s not writable.\n",
|
||||
+ sp->Key, name);
|
||||
+ ret |= Exit_Forcible;
|
||||
+ }
|
||||
if (SetTime && getuid() && (getuid() != st.st_uid)) {
|
||||
fprintf(stderr,
|
||||
" %s: %s not mine, cannot set time.\n",
|
||||
--- ctm/ctm/ctm_pass3.c.orig Fri Feb 18 16:12:30 2000
|
||||
+++ ctm/ctm/ctm_pass3.c Fri Feb 18 16:42:36 2000
|
||||
@@ -176,6 +176,26 @@
|
||||
|
||||
if (Verbose > 0)
|
||||
fprintf(stderr,"> %s %s\n",sp->Key,name);
|
||||
+ if ((strcmp(sp->Key, "FS") == 0 ||
|
||||
+ strcmp(sp->Key, "FN") == 0 ||
|
||||
+ strcmp(sp->Key, "FE") == 0) && -1 == access(name, W_OK)) {
|
||||
+ if (Verbose > 1)
|
||||
+ fprintf(stderr, " %s: chmod u+w %s\n",
|
||||
+ sp->Key, name);
|
||||
+ if (!Force) {
|
||||
+ warn("%s", name);
|
||||
+ WRONG
|
||||
+ }
|
||||
+ if (-1 == stat(name, &st)) {
|
||||
+ warn("stat: %s", name);
|
||||
+ WRONG
|
||||
+ }
|
||||
+ if (-1 == chmod(name, st.st_mode | S_IWUSR)) {
|
||||
+ warn("chmod: %s", name);
|
||||
+ WRONG
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if(!strcmp(sp->Key,"FM") || !strcmp(sp->Key, "FS")) {
|
||||
i = open(name,O_WRONLY|O_CREAT|O_TRUNC,0666);
|
||||
if(i < 0) {
|
30
devel/ctm/patches/patch-ctm_README
Normal file
30
devel/ctm/patches/patch-ctm_README
Normal file
@ -0,0 +1,30 @@
|
||||
$OpenBSD: patch-ctm_README,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/README.orig Thu Sep 22 04:49:07 1994
|
||||
+++ ctm/README Fri Oct 26 22:39:59 2007
|
||||
@@ -5,7 +5,7 @@
|
||||
# this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
-# $Id: patch-ctm_README,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+# $Id: patch-ctm_README,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
#
|
||||
|
||||
What will I not find in this file ?
|
||||
@@ -21,7 +21,7 @@ CTM is now meant to be the definitive way to make and
|
||||
two versions of a directory tree.
|
||||
There are two parts to this, making the delta and applying it. These are two
|
||||
entirely different things. CTM concentrates the computation-burden on the
|
||||
-generation og the deltas, as a delta very often is applied more times than
|
||||
+generation of the deltas, as a delta very often is applied more times than
|
||||
it is made. Second CTM tries to make the minimal size delta.
|
||||
|
||||
Why not use diff/patch ?
|
||||
@@ -55,7 +55,7 @@ You pass it to the 'ctm' command. You can pass a CTM-
|
||||
you can give the filename as an argument. If you do the latter, you make
|
||||
life a lot easier for your self, since the program can accept gzip'ed files
|
||||
and since it will not have to make a temporary copy of your file. You can
|
||||
-specify multiple deltas at one time, they will be proccessed one at a time.
|
||||
+specify multiple deltas at one time, they will be processed one at a time.
|
||||
|
||||
The ctm command runs in a number of passes. It will process the entire
|
||||
input file in each pass, before commencing with the next pass.
|
@ -1,6 +1,7 @@
|
||||
--- ctm/ctm/Makefile.orig Fri Feb 18 15:47:27 2000
|
||||
+++ ctm/ctm/Makefile Fri Feb 18 15:47:37 2000
|
||||
@@ -15,7 +15,7 @@
|
||||
$OpenBSD: patch-ctm_ctm_Makefile,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/Makefile.orig Fri Oct 26 22:39:58 2007
|
||||
+++ ctm/ctm/Makefile Fri Oct 26 22:40:00 2007
|
||||
@@ -15,7 +15,7 @@ MANDIR=${PREFIX}/man/cat
|
||||
PROG= ctm
|
||||
NOTYET= ctm_ed.c
|
||||
SRCS= ctm.c ctm_input.c ctm_pass1.c ctm_pass2.c ctm_pass3.c \
|
340
devel/ctm/patches/patch-ctm_ctm_ctm_1
Normal file
340
devel/ctm/patches/patch-ctm_ctm_ctm_1
Normal file
@ -0,0 +1,340 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_1,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm.1.orig Wed May 1 01:01:43 1996
|
||||
+++ ctm/ctm/ctm.1 Fri Oct 26 22:39:59 2007
|
||||
@@ -1,5 +1,5 @@
|
||||
.\"----------------------------------------------------------------------------
|
||||
-.\""THE BEER-WARE LICENSE" (Revision 42):
|
||||
+.\""THE BEER-WARE LICENSE" (Revision 42):
|
||||
.\"<joerg@freebsd.org> wrote this file. As long as you retain this notice you
|
||||
.\"can do whatever you want with this stuff. If we meet some day, and you think
|
||||
.\"this stuff is worth it, you can buy me a beer in return. Joerg Wunsch
|
||||
@@ -10,7 +10,7 @@
|
||||
.\"
|
||||
.\" CTM and ctm(1) by <phk@login.dknet.dk>
|
||||
.\"
|
||||
-.\" $Id: patch-ctm_ctm_ctm_1,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+.\" $Id: patch-ctm_ctm_ctm_1,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
.\"
|
||||
.Dd Mar 25, 1995
|
||||
.Os
|
||||
@@ -20,19 +20,23 @@
|
||||
.Nd source code mirror program
|
||||
.Sh SYNOPSIS
|
||||
.Nm ctm
|
||||
-.Op Fl cFpPquv
|
||||
+.Op Fl cFklquv
|
||||
.Op Fl b Ar basedir
|
||||
+.Op Fl B Ar backup-file
|
||||
+.Op Fl e Ar include-regex
|
||||
+.Op Fl t Ar tar-command
|
||||
.Op Fl T Ar tmpdir
|
||||
.Op Fl V Ar level
|
||||
-.Ar file Op ...
|
||||
+.Op Fl x Ar exclude-regex
|
||||
+.Ar
|
||||
.Sh DESCRIPTION
|
||||
-.Nm Ctm
|
||||
+.Nm
|
||||
was originally
|
||||
.Dq Cvs Through eMail ,
|
||||
but now instead it seems more fitting to call it
|
||||
.Dq Current Through eMail .
|
||||
-
|
||||
-.Nm Ctm
|
||||
+.Pp
|
||||
+.Nm
|
||||
is now meant to be the definitive way to make and apply a delta between
|
||||
two versions of a directory tree.
|
||||
|
||||
@@ -40,80 +44,157 @@ There are two parts to this, making the delta and appl
|
||||
entirely different things.
|
||||
|
||||
.Ss Usage
|
||||
-
|
||||
To apply a CTM delta, you pass it to the
|
||||
-.Nm ctm
|
||||
+.Nm
|
||||
command. You can pass a CTM delta on stdin, or you can give the
|
||||
filename as an argument. If you do the latter, you make life a lot
|
||||
-easier for your self, since the program can accept gzip'ed files and
|
||||
+easier for yourself, since the program can accept gzip'ed files and
|
||||
since it will not have to make a temporary copy of your file. You can
|
||||
-specify multiple deltas at one time, they will be proccessed one at a
|
||||
+specify multiple deltas at one time, they will be processed one at a
|
||||
time. Deltas that are already applied will be ignored.
|
||||
|
||||
The
|
||||
-.Nm ctm
|
||||
+.Nm
|
||||
command runs in a number of passes. It will process the entire
|
||||
input file in each pass, before commencing with the next pass.
|
||||
|
||||
-Before working one a file
|
||||
+Before working on a file
|
||||
.Ar name
|
||||
-.Nm ctm
|
||||
+.Nm
|
||||
first checks for the existence of the file
|
||||
.Ar name.ctm .
|
||||
If this file exists,
|
||||
-.Nm ctm
|
||||
+.Nm
|
||||
works on it instead.
|
||||
-
|
||||
-Pass 1 will validate that the input file is OK. The syntax, the data
|
||||
+.Pp
|
||||
+Pass 1 will verify that the input file is OK. The syntax, the data
|
||||
and the global MD5 checksum will be checked. If any of these fail,
|
||||
-.Nm ctm
|
||||
-will never be able to do anything with the file, so it will simply
|
||||
-reject it.
|
||||
+.Nm
|
||||
+will simply reject the input file.
|
||||
|
||||
Pass 2 will validate that the directory tree is in the state expected by
|
||||
the CTM delta. This is done by looking for files and directories which
|
||||
-should/should not exists and by checking the MD5 checksums of files.
|
||||
+should/should not exist and by checking the MD5 checksums of files.
|
||||
|
||||
-Pass 3 will actually apply the delta.
|
||||
+If a
|
||||
+.Ar backup-file
|
||||
+had been specified using the
|
||||
+.Fl B
|
||||
+option, all files that would be modified by this
|
||||
+.Nm
|
||||
+invocation are backed up
|
||||
+to this file using the archiver command specified by the
|
||||
+.Fl t
|
||||
+option. The default archiver command is
|
||||
+.Nm "tar -rf %s -T -" .
|
||||
|
||||
-.Nm Ctm
|
||||
+Pass 3 will actually apply the delta.
|
||||
+
|
||||
+The list of files that would be modified by
|
||||
+.Nm
|
||||
+is subject to filtering regular expressions specified
|
||||
+using the
|
||||
+.Fl e
|
||||
+and
|
||||
+.Fl x
|
||||
+options.
|
||||
+The
|
||||
+.Fl e
|
||||
+and
|
||||
+.Fl x
|
||||
+options are applied in order of appearance on the command line. The last
|
||||
+filter that matched a given file name determines whether the file would be
|
||||
+operated on or left alone by
|
||||
+.Nm ctm .
|
||||
+
|
||||
+.Nm
|
||||
will extract the file hierarchy below its working directory. Absolute
|
||||
filenames or filenames containing references through
|
||||
-.Sq \&.
|
||||
-and
|
||||
-.Sq \&.\&.
|
||||
+.Dq \&.
|
||||
+or
|
||||
+.Dq \&.\&.
|
||||
are explicitly prohibited as a security measure.
|
||||
-
|
||||
+.Pp
|
||||
.Ss Options
|
||||
-
|
||||
.Bl -tag -width indent -compact
|
||||
|
||||
.It Fl b Ar basedir
|
||||
Prepend the path
|
||||
.Ar basedir
|
||||
-on every filename.
|
||||
+to every filename.
|
||||
|
||||
+.It Fl B Ar backup-file
|
||||
+Backup all files that would be modified by this CTM run to
|
||||
+.Ar backup-file .
|
||||
+If any filters are specified using the
|
||||
+.Fl e
|
||||
+and
|
||||
+.Fl x
|
||||
+options, then the final set of files backed up are those that would be
|
||||
+modified by CTM after the filters are applied.
|
||||
+
|
||||
.It Fl c
|
||||
Check it out, don't do anything.
|
||||
|
||||
+.It Fl e Ar regular_expression
|
||||
+Match each name in the CTM file against
|
||||
+.Ar regular_expression ,
|
||||
+and if it matches process the file, otherwise leave it alone. There may be
|
||||
+any number of these options. Use of this option disables the
|
||||
+.Pa .ctm_status
|
||||
+sequence number checks. For example, the expression
|
||||
+.Ic ^usr.sbin/ctm
|
||||
+for example, will select the
|
||||
+.Nm usr.sbin/ctm
|
||||
+source directory and all pathnames under it.
|
||||
+
|
||||
+Pathnames can be disabled from being considered by CTM using the
|
||||
+.Fl x
|
||||
+option.
|
||||
+
|
||||
.It Fl F
|
||||
Force.
|
||||
|
||||
-.It Fl p
|
||||
-Less paranoid.
|
||||
+.It Fl k
|
||||
+Keep files and directories and don't remove them even if the CTM file
|
||||
+specifies they are to be removed. If the
|
||||
+.Fl B
|
||||
+option is specified, these files and directories will not be backed up.
|
||||
|
||||
-.It Fl P
|
||||
-Paranoid.
|
||||
+.It Fl l
|
||||
+List files that would be modified by this invocation of CTM and the
|
||||
+actions that would be performed on them. Use of the
|
||||
+.Fl l
|
||||
+option disables the
|
||||
+.Pa .ctm_status
|
||||
+checks and integrity checks on the source tree being operated on. The
|
||||
+.Fl l
|
||||
+option can be combined with the
|
||||
+.Fl e
|
||||
+and
|
||||
+.Fl x
|
||||
+options to determine which files would be modified by the given set of
|
||||
+command line options.
|
||||
|
||||
.It Fl q
|
||||
Tell us less.
|
||||
|
||||
+.It Fl t Ar tar-command
|
||||
+Use
|
||||
+.Ar tar-command
|
||||
+instead of the default archiver
|
||||
+.Nm tar .
|
||||
+This option takes effect only if a backup file had been specified using the
|
||||
+.Fl B
|
||||
+option. A %s in the tar command will be replaced by the name of the backup
|
||||
+file.
|
||||
+
|
||||
.It Fl T Ar tmpdir
|
||||
Put temporary files under
|
||||
.Ar tmpdir .
|
||||
|
||||
.It Fl u
|
||||
-Set modification time of created and modified files to the CTM delta
|
||||
+Set the modification time of created and modified files to the CTM delta
|
||||
creation time.
|
||||
|
||||
.It Fl v
|
||||
@@ -121,56 +202,81 @@ Tell us more.
|
||||
|
||||
.It Fl V Ar level
|
||||
Tell us more.
|
||||
-.Ar Level
|
||||
+.Ar level
|
||||
is the level of verbosity.
|
||||
|
||||
-.El
|
||||
+.It Fl x Ar regular_expression
|
||||
+Match each name in the CTM file against
|
||||
+.Ar regular_expression
|
||||
+and if it matches, leave the file alone. There may be any number of these
|
||||
+options. Use of this option disables the
|
||||
+.Pa .ctm_status
|
||||
+sequence number checks.
|
||||
|
||||
+Pathnames can be selected for CTM's consideration using the
|
||||
+.Fl e
|
||||
+option.
|
||||
|
||||
+.El
|
||||
+.Sh ENVIRONMENT
|
||||
+.Ev TMPDIR,
|
||||
+if set to a pathname, will cause
|
||||
+.Nm
|
||||
+to use that pathname
|
||||
+as the location of temporary file.
|
||||
+See
|
||||
+.Xr tempnam 3
|
||||
+for more details on this.
|
||||
+The same effect may be achieved with the
|
||||
+.Fl T
|
||||
+flag.
|
||||
.Sh FILES
|
||||
-
|
||||
.Pa .ctm_status
|
||||
contains the sequence number of the last CTM delta applied. Changing
|
||||
or removing this file will greatly confuse
|
||||
.Nm ctm .
|
||||
|
||||
+Using the
|
||||
+.Fl e
|
||||
+and
|
||||
+.Fl x
|
||||
+options can update a partial subset of the source tree and causes sources
|
||||
+to be in an inconsistent state. It is assumed that you know what you are
|
||||
+doing when you use these options.
|
||||
+
|
||||
.Sh EXAMPLES
|
||||
+.Bd -literal -offset indent
|
||||
+.Ic cd ~cvs
|
||||
+.Ic /usr/sbin/ctm ~ctm/cvs-*
|
||||
|
||||
-.Bd -literal
|
||||
-
|
||||
-cd ~cvs
|
||||
-/usr/sbin/ctm ~ctm/cvs-*
|
||||
-
|
||||
.Ed
|
||||
-
|
||||
+To extract and patch all sources under `lib'
|
||||
+.Bd -literal -offset indent
|
||||
+.Ic cd ~/lib-srcs
|
||||
+.Ic /usr/sbin/ctm -e '^lib' ~ctm/src-cur*
|
||||
+.Ed
|
||||
.Sh DIAGNOSTICS
|
||||
-
|
||||
-Numerous messages, hopefully self-explaining. The
|
||||
+Numerous messages, hopefully self-explanatory. The
|
||||
.Dq noise level
|
||||
can be adjusted with the
|
||||
-.Fl q
|
||||
-and
|
||||
+.Fl q ,
|
||||
.Fl v
|
||||
+and
|
||||
+.Fl V
|
||||
options.
|
||||
-
|
||||
.Sh SEE ALSO
|
||||
-
|
||||
+.Xr ctm_rmail 1 ,
|
||||
.Xr ctm 5
|
||||
-
|
||||
.Sh HISTORY
|
||||
-
|
||||
-Initial trials ran during the FreeBSD 1.1.5, and many bugs and
|
||||
+Initial trials were run during the work on FreeBSD 1.1.5, and many bugs and
|
||||
methods were hashed out.
|
||||
-
|
||||
The
|
||||
-.Nm ctm
|
||||
+.Nm
|
||||
command appeared in FreeBSD 2.1.
|
||||
-
|
||||
.Sh AUTHORS
|
||||
-
|
||||
The CTM system has been designed and implemented by
|
||||
Poul-Henning Kamp
|
||||
.Aq phk@FreeBSD.org .
|
||||
-
|
||||
-Joerg Wunsch wrote this man-page.
|
||||
-.Aq joerg@FreeBSD.org .
|
||||
+Joerg Wunsch
|
||||
+.Aq joerg@FreeBSD.org
|
||||
+wrote this man page.
|
246
devel/ctm/patches/patch-ctm_ctm_ctm_5
Normal file
246
devel/ctm/patches/patch-ctm_ctm_ctm_5
Normal file
@ -0,0 +1,246 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_5,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm.5.orig Sun Mar 26 22:09:48 1995
|
||||
+++ ctm/ctm/ctm.5 Fri Oct 26 22:39:59 2007
|
||||
@@ -1,5 +1,5 @@
|
||||
.\"----------------------------------------------------------------------------
|
||||
-.\""THE BEER-WARE LICENSE" (Revision 42):
|
||||
+.\""THE BEER-WARE LICENSE" (Revision 42):
|
||||
.\"<joerg@freebsd.org> wrote this file. As long as you retain this notice you
|
||||
.\"can do whatever you want with this stuff. If we meet some day, and you think
|
||||
.\"this stuff is worth it, you can buy me a beer in return. Joerg Wunsch
|
||||
@@ -10,7 +10,7 @@
|
||||
.\"
|
||||
.\" CTM and ctm(1) by <phk@login.dknet.dk>
|
||||
.\"
|
||||
-.\" $Id: patch-ctm_ctm_ctm_5,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+.\" $Id: patch-ctm_ctm_ctm_5,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
.\"
|
||||
.Dd March 25, 1995
|
||||
.Os
|
||||
@@ -18,66 +18,63 @@
|
||||
.Sh NAME
|
||||
.Nm ctm
|
||||
.Nd source code mirror system
|
||||
-
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
-.Nm ctm
|
||||
+.Nm
|
||||
transfers data in a specific file format, called a CTM delta.
|
||||
-
|
||||
+.Pp
|
||||
CTM deltas consist of control lines and data chunks. Each control
|
||||
line starts with the letters
|
||||
.Dq CTM ,
|
||||
-followed by a CTM statement and control data, and ends with a '\en'
|
||||
+followed by a CTM statement and control data, and ends with a
|
||||
+newline
|
||||
+.Pq Sq \en
|
||||
character.
|
||||
-
|
||||
-Data chunks always belong to the preceeding control line, and the
|
||||
+.Pp
|
||||
+Data chunks always belong to the preceding control line, and the
|
||||
last field on that control line is the number of bytes in the data
|
||||
chunk.
|
||||
-A trailing newline '\en' character follows each data chunk, this
|
||||
+A trailing newline
|
||||
+character follows each data chunk. This
|
||||
newline is not part of the chunk and isn't included in the count.
|
||||
-
|
||||
-The CTM statements are as follows.
|
||||
+.Pp
|
||||
+The CTM statements are as follows:
|
||||
.Bl -tag -width indent
|
||||
-
|
||||
.It _BEGIN Ar version name number timestamp prefix
|
||||
-
|
||||
This is the overall begin of a CTM delta file. The
|
||||
.Ar version
|
||||
field must match the program version
|
||||
.Pq currently 2.0 .
|
||||
-.Ar Name
|
||||
+.Ar name
|
||||
is the name and
|
||||
.Ar number
|
||||
-the sequence number of the CTM service, it is matched against the file
|
||||
+the sequence number of the CTM service; it is matched against the file
|
||||
.Pa .ctm_status
|
||||
to see if the delta has already been applied.
|
||||
-.Ar Timestamp
|
||||
+.Ar timestamp
|
||||
contains the year, month, day, hour, minute, and second of the
|
||||
time of delta creation for reference
|
||||
.Po
|
||||
followed by the letter
|
||||
-.Sq Z
|
||||
+.Dq Z ,
|
||||
meaning this is a UTC timestamp
|
||||
.Pc .
|
||||
The
|
||||
.Ar prefix
|
||||
-This field is currently not implemented.
|
||||
-
|
||||
+field is currently not implemented.
|
||||
.It _END Ar md5
|
||||
-
|
||||
-This statement ends the CTM delta, the global
|
||||
+This statement ends the CTM delta. The global
|
||||
.Ar md5
|
||||
-checksum is matched against the MD5 checksum of the entire delta, up to
|
||||
-and including the space (0x20) character following ``_END''.
|
||||
-
|
||||
+checksum is matched against the MD5 checksum of the entire delta, up to
|
||||
+and including the space (0x20) character following
|
||||
+.Dq _END .
|
||||
.It \&FM Ar name uid gid mode md5 count
|
||||
-
|
||||
Make the file
|
||||
-.Ar name ,
|
||||
-the original file had the uid
|
||||
+.Ar name .
|
||||
+The original file had the UID
|
||||
.Ar uid
|
||||
.Pq numerical, decimal ,
|
||||
-the gid
|
||||
+the GID
|
||||
.Ar gid
|
||||
.Pq numerical, decimal ,
|
||||
mode
|
||||
@@ -85,19 +82,16 @@ mode
|
||||
.Pq numerical, octal ,
|
||||
and the MD5 checksum
|
||||
.Ar md5 .
|
||||
-
|
||||
The following
|
||||
.Ar count
|
||||
bytes data are the contents of the new file.
|
||||
-
|
||||
.It \&FS Ar name uid gid mode md5before md5after count
|
||||
-
|
||||
Substitute the contents of file
|
||||
-.Ar name ,
|
||||
-the original file had the new uid
|
||||
+.Ar name .
|
||||
+The original file had the new UID
|
||||
.Ar uid
|
||||
.Pq numerical, decimal ,
|
||||
-the new gid
|
||||
+the new GID
|
||||
.Ar gid
|
||||
.Pq numerical, decimal ,
|
||||
new mode
|
||||
@@ -107,31 +101,23 @@ the old MD5 checksum
|
||||
.Ar md5before ,
|
||||
and the new MD5 checksum
|
||||
.Ar md5after .
|
||||
-
|
||||
The following
|
||||
.Ar count
|
||||
bytes data are the contents of the new file.
|
||||
-
|
||||
File substitution is used if the commands to edit a file would exceed
|
||||
the total file length, so substituting it is more efficient.
|
||||
-
|
||||
.It \&FN Ar name uid gid mode md5before md5after count
|
||||
-
|
||||
Edit the file
|
||||
.Ar name .
|
||||
-The arguments are as above, but the data sections contains an
|
||||
+The arguments are as above, but the data sections contain a
|
||||
.Xr diff 1
|
||||
-n script which should be applied to the file in question.
|
||||
-
|
||||
.It \&FR Ar name md5
|
||||
-
|
||||
Remove the file
|
||||
.Ar name ,
|
||||
which must match the MD5 checksum
|
||||
.Ar md5 .
|
||||
-
|
||||
.It \&AS Ar name uid gid mode
|
||||
-
|
||||
The original file
|
||||
.Ar name
|
||||
changed its owner to
|
||||
@@ -140,34 +126,25 @@ its group to
|
||||
.Ar gid ,
|
||||
and/or its mode to
|
||||
.Ar mode .
|
||||
-
|
||||
.It \&DM Ar name uid gid mode
|
||||
-
|
||||
The directory
|
||||
.Ar name
|
||||
-is to be created, it had originally the owner
|
||||
+is to be created. It had originally the owner
|
||||
.Ar uid ,
|
||||
group
|
||||
.Ar gid ,
|
||||
and mode
|
||||
.Ar mode .
|
||||
-
|
||||
.It \&DR name
|
||||
-
|
||||
The directory
|
||||
.Ar name
|
||||
is to be removed.
|
||||
-
|
||||
.El
|
||||
-
|
||||
.Sh EXAMPLES
|
||||
-
|
||||
In the following example, long lines have been folded to make them
|
||||
printable
|
||||
.Pq marked by backslashes .
|
||||
-
|
||||
.Bd -literal
|
||||
-
|
||||
CTM_BEGIN 2.0 cvs-cur 485 19950324214652Z .
|
||||
CTMFR src/sys/gnu/i386/isa/scd.c,v 5225f13aa3c7e458f9dd0d4bb637b18d
|
||||
CTMFR src/sys/gnu/i386/isa/scdreg.h,v e5af42b8a06f2c8030b93a7d71afb223
|
||||
@@ -175,35 +152,29 @@ CTMDM src/sys/gnu/i386/isa/Attic 0 552 775
|
||||
CTMFS .ctm_status 545 552 664 d9ccd2a84a9dbb8db56ba85663adebf0 \\
|
||||
e2a10c6f66428981782a0a18a789ee2e 12
|
||||
cvs-cur 485
|
||||
-
|
||||
+.Pp
|
||||
CTMFN CVSROOT/commitlogs/gnu 545 552 664 \\
|
||||
5d7bc3549140d860bd9641b5782c002d 7fb04ed84b48160c9b8eea84b4c0b6e3 394
|
||||
a6936 21
|
||||
ache 95/03/24 09:59:50
|
||||
-
|
||||
+.Pp
|
||||
Modified: gnu/lib/libdialog kernel.c prgbox.c
|
||||
Log:
|
||||
[...]
|
||||
CTM_END 74ddd298d76215ae45a077a4b6a74e9c
|
||||
-
|
||||
.Ed
|
||||
-
|
||||
.Sh SEE ALSO
|
||||
-
|
||||
-.Xr ctm 1 ;
|
||||
-.Xr ed 1 .
|
||||
-
|
||||
+.Xr ctm 1 ,
|
||||
+.Xr ctm_rmail 1 ,
|
||||
+.Xr ed 1
|
||||
.Sh HISTORY
|
||||
-
|
||||
-Initial trials ran during the FreeBSD 1.1.5, and many bugs and
|
||||
+Initial trials ran during the work on FreeBSD 1.1.5, and many bugs and
|
||||
methods were hashed out.
|
||||
The CTM system has been made publically available in FreeBSD 2.1.
|
||||
-
|
||||
.Sh AUTHORS
|
||||
-
|
||||
The CTM system has been designed and implemented by
|
||||
Poul-Henning Kamp
|
||||
.Aq phk@FreeBSD.org .
|
||||
-
|
||||
-Joerg Wunsch wrote this man-page.
|
||||
-.Aq joerg@FreeBSD.org .
|
||||
+Joerg Wunsch
|
||||
+.Aq joerg@FreeBSD.org
|
||||
+wrote this man page.
|
313
devel/ctm/patches/patch-ctm_ctm_ctm_c
Normal file
313
devel/ctm/patches/patch-ctm_ctm_ctm_c
Normal file
@ -0,0 +1,313 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm.c.orig Wed May 1 01:01:43 1996
|
||||
+++ ctm/ctm/ctm.c Fri Oct 26 22:39:59 2007
|
||||
@@ -6,7 +6,7 @@
|
||||
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
- * $Id: patch-ctm_ctm_ctm_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+ * $Id: patch-ctm_ctm_ctm_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
*
|
||||
* This is the client program of 'CTM'. It will apply a CTM-patch to a
|
||||
* collection of files.
|
||||
@@ -14,7 +14,6 @@
|
||||
* Options we'd like to see:
|
||||
*
|
||||
* -a Attempt best effort.
|
||||
- * -B <file> Backup to tar-file.
|
||||
* -d <int> Debug TBD.
|
||||
* -m <mail-addr> Email me instead.
|
||||
* -r <name> Reconstruct file.
|
||||
@@ -22,16 +21,21 @@
|
||||
*
|
||||
* Options we have:
|
||||
* -b <dir> Base-dir
|
||||
+ * -B <file> Backup to tar-file.
|
||||
+ * -t Tar command (default as in TARCMD).
|
||||
* -c Check it out, don't do anything.
|
||||
* -F Force
|
||||
- * -p Less paranoid.
|
||||
- * -P Paranoid.
|
||||
* -q Tell us less.
|
||||
* -T <tmpdir>. Temporary files.
|
||||
* -u Set all file modification times to the timestamp
|
||||
* -v Tell us more.
|
||||
* -V <level> Tell us more level = number of -v
|
||||
+ * -k Keep files and directories that would have been removed.
|
||||
+ * -l List actions.
|
||||
*
|
||||
+ * Options we don't actually use:
|
||||
+ * -p Less paranoid.
|
||||
+ * -P Paranoid.
|
||||
*/
|
||||
|
||||
#define EXTERN /* */
|
||||
@@ -44,51 +48,94 @@ extern int Proc(char *, unsigned applied);
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
- int stat=0;
|
||||
+ int stat=0, err=0;
|
||||
int c;
|
||||
- extern int optopt,optind;
|
||||
- extern char * optarg;
|
||||
unsigned applied = 0;
|
||||
FILE *statfile;
|
||||
+ struct CTM_Filter *nfilter = NULL; /* new filter */
|
||||
u_char * basedir;
|
||||
|
||||
basedir = NULL;
|
||||
Verbose = 1;
|
||||
Paranoid = 1;
|
||||
SetTime = 0;
|
||||
+ KeepIt = 0;
|
||||
+ ListIt = 0;
|
||||
+ BackupFile = NULL;
|
||||
+ TarCmd = TARCMD;
|
||||
+ LastFilter = FilterList = NULL;
|
||||
setbuf(stderr,0);
|
||||
setbuf(stdout,0);
|
||||
|
||||
- while((c=getopt(argc,argv,"ab:B:cd:Fm:pPqr:R:T:uV:v")) != -1) {
|
||||
+ while((c=getopt(argc,argv,"ab:B:cd:e:Fklm:pPqr:R:t:T:uV:vx:")) != -1) {
|
||||
switch (c) {
|
||||
case 'b': basedir = optarg; break; /* Base Directory */
|
||||
+ case 'B': BackupFile = optarg; break;
|
||||
case 'c': CheckIt++; break; /* Only check it */
|
||||
+ case 'F': Force = 1; break;
|
||||
+ case 'k': KeepIt++; break; /* Don't do removes */
|
||||
+ case 'l': ListIt++; break; /* Only list actions and files */
|
||||
case 'p': Paranoid--; break; /* Less Paranoid */
|
||||
case 'P': Paranoid++; break; /* More Paranoid */
|
||||
case 'q': Verbose--; break; /* Quiet */
|
||||
- case 'v': Verbose++; break; /* Verbose */
|
||||
- case 'T': TmpDir = optarg; break;
|
||||
- case 'F': Force = 1; break;
|
||||
+ case 't': TarCmd = optarg; break; /* archiver command */
|
||||
+ case 'T': TmpDir = optarg; break; /* set temporary directory */
|
||||
case 'u': SetTime++; break; /* Set timestamp on files */
|
||||
+ case 'v': Verbose++; break; /* Verbose */
|
||||
case 'V': sscanf(optarg,"%d", &c); /* Verbose */
|
||||
Verbose += c;
|
||||
break;
|
||||
+ case 'e': /* filter expressions */
|
||||
+ case 'x':
|
||||
+ if (NULL == (nfilter = Malloc(sizeof(struct CTM_Filter)))) {
|
||||
+ warnx("out of memory for expressions: \"%s\"", optarg);
|
||||
+ stat++;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ (void) memset(nfilter, 0, sizeof(struct CTM_Filter));
|
||||
+
|
||||
+ if (0 != (err =
|
||||
+ regcomp(&nfilter->CompiledRegex, optarg, REG_NOSUB))) {
|
||||
+
|
||||
+ char errmsg[128];
|
||||
+
|
||||
+ regerror(err, &nfilter->CompiledRegex, errmsg,
|
||||
+ sizeof(errmsg));
|
||||
+ warnx("regular expression: \"%s\"", errmsg);
|
||||
+ stat++;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* note whether the filter enables or disables on match */
|
||||
+ nfilter->Action =
|
||||
+ (('e' == c) ? CTM_FILTER_ENABLE : CTM_FILTER_DISABLE);
|
||||
+
|
||||
+ /* link in the expression into the list */
|
||||
+ nfilter->Next = NULL;
|
||||
+ if (NULL == FilterList) {
|
||||
+ LastFilter = FilterList = nfilter; /* init head and tail */
|
||||
+ } else { /* place at tail */
|
||||
+ LastFilter->Next = nfilter;
|
||||
+ LastFilter = nfilter;
|
||||
+ }
|
||||
+ break;
|
||||
case ':':
|
||||
- fprintf(stderr,"Option '%c' requires an argument.\n",optopt);
|
||||
+ warnx("option '%c' requires an argument",optopt);
|
||||
stat++;
|
||||
break;
|
||||
case '?':
|
||||
- fprintf(stderr,"Option '%c' not supported.\n",optopt);
|
||||
+ warnx("option '%c' not supported",optopt);
|
||||
stat++;
|
||||
break;
|
||||
default:
|
||||
- fprintf(stderr,"Option '%c' not yet implemented.\n",optopt);
|
||||
+ warnx("option '%c' not yet implemented",optopt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(stat) {
|
||||
- fprintf(stderr,"%d errors during option processing\n",stat);
|
||||
+ warnx("%d errors during option processing",stat);
|
||||
return Exit_Pilot;
|
||||
}
|
||||
stat = Exit_Done;
|
||||
@@ -110,26 +157,37 @@ main(int argc, char **argv)
|
||||
}
|
||||
strcat(Buffer, CTM_STATUS);
|
||||
|
||||
- if((statfile = fopen(Buffer, "r")) == NULL)
|
||||
- fprintf(stderr, "Warning: %s not found.\n", Buffer);
|
||||
- else {
|
||||
- fscanf(statfile, "%*s %u", &applied);
|
||||
- fclose(statfile);
|
||||
- }
|
||||
+ if(ListIt)
|
||||
+ applied = 0;
|
||||
+ else
|
||||
+ if((statfile = fopen(Buffer, "r")) == NULL) {
|
||||
+ if (Verbose > 0)
|
||||
+ warnx("warning: %s not found", Buffer);
|
||||
+ } else {
|
||||
+ fscanf(statfile, "%*s %u", &applied);
|
||||
+ fclose(statfile);
|
||||
+ }
|
||||
|
||||
if(!argc)
|
||||
stat |= Proc("-", applied);
|
||||
|
||||
while(argc-- && stat == Exit_Done) {
|
||||
stat |= Proc(*argv++, applied);
|
||||
- stat &= ~Exit_Version;
|
||||
+ stat &= ~(Exit_Version | Exit_NoMatch);
|
||||
}
|
||||
|
||||
if(stat == Exit_Done)
|
||||
stat = Exit_OK;
|
||||
|
||||
- if(Verbose)
|
||||
- fprintf(stderr,"Exit(%d)\n",stat);
|
||||
+ if(Verbose > 0)
|
||||
+ warnx("exit(%d)",stat);
|
||||
+
|
||||
+ if (FilterList)
|
||||
+ for (nfilter = FilterList; nfilter; ) {
|
||||
+ struct CTM_Filter *tmp = nfilter->Next;
|
||||
+ Free(nfilter);
|
||||
+ nfilter = tmp;
|
||||
+ }
|
||||
return stat;
|
||||
}
|
||||
|
||||
@@ -148,13 +206,13 @@ Proc(char *filename, unsigned applied)
|
||||
strcpy(p,"gunzip < ");
|
||||
strcat(p,filename);
|
||||
f = popen(p,"r");
|
||||
- if(!f) { perror(p); return Exit_Garbage; }
|
||||
+ if(!f) { warn("%s", p); return Exit_Garbage; }
|
||||
} else {
|
||||
p = 0;
|
||||
f = fopen(filename,"r");
|
||||
}
|
||||
if(!f) {
|
||||
- perror(filename);
|
||||
+ warn("%s", filename);
|
||||
return Exit_Garbage;
|
||||
}
|
||||
|
||||
@@ -166,17 +224,27 @@ Proc(char *filename, unsigned applied)
|
||||
|
||||
/* If we cannot seek, we're doomed, so copy to a tmp-file in that case */
|
||||
if(!p && -1 == fseek(f,0,SEEK_END)) {
|
||||
- char *fn = tempnam(TmpDir,"CTMclient");
|
||||
- FILE *f2 = fopen(fn,"w+");
|
||||
- int i;
|
||||
+ char *fn;
|
||||
+ FILE *f2;
|
||||
+ int fd, i;
|
||||
|
||||
- if(!f2) {
|
||||
- perror(fn);
|
||||
+ if (asprintf(&fn, "%s/CTMclient.XXXXXXXX", TmpDir) == -1) {
|
||||
+ warnx("Cannot allocate memory\n");
|
||||
fclose(f);
|
||||
return Exit_Broke;
|
||||
}
|
||||
+ if ((fd = mkstemp(fn)) == -1 || (f2 = fdopen(fd, "w+")) == NULL) {
|
||||
+ warn("%s", fn);
|
||||
+ free(fn);
|
||||
+ if (fd != -1)
|
||||
+ close(fd);
|
||||
+ fclose(f);
|
||||
+ return Exit_Broke;
|
||||
+ }
|
||||
unlink(fn);
|
||||
- fprintf(stderr,"Writing tmp-file \"%s\"\n",fn);
|
||||
+ if (Verbose > 0)
|
||||
+ fprintf(stderr,"Writing tmp-file \"%s\"\n",fn);
|
||||
+ free(fn);
|
||||
while(EOF != (i=getc(f)))
|
||||
if(EOF == putc(i,f2)) {
|
||||
fclose(f2);
|
||||
@@ -192,12 +260,17 @@ Proc(char *filename, unsigned applied)
|
||||
if((i=Pass1(f, applied)))
|
||||
goto exit_and_close;
|
||||
|
||||
+ if(ListIt) {
|
||||
+ i = Exit_Done;
|
||||
+ goto exit_and_close;
|
||||
+ }
|
||||
+
|
||||
if(!p) {
|
||||
rewind(f);
|
||||
} else {
|
||||
pclose(f);
|
||||
f = popen(p,"r");
|
||||
- if(!f) { perror(p); return Exit_Broke; }
|
||||
+ if(!f) { warn("%s", p); return Exit_Broke; }
|
||||
}
|
||||
|
||||
i=Pass2(f);
|
||||
@@ -207,7 +280,7 @@ Proc(char *filename, unsigned applied)
|
||||
} else {
|
||||
pclose(f);
|
||||
f = popen(p,"r");
|
||||
- if(!f) { perror(p); return Exit_Broke; }
|
||||
+ if(!f) { warn("%s", p); return Exit_Broke; }
|
||||
}
|
||||
|
||||
if(i) {
|
||||
@@ -216,11 +289,26 @@ Proc(char *filename, unsigned applied)
|
||||
}
|
||||
|
||||
if(CheckIt) {
|
||||
- fprintf(stderr,"All checks out ok.\n");
|
||||
+ if (Verbose > 0)
|
||||
+ fprintf(stderr,"All checks out ok.\n");
|
||||
i = Exit_Done;
|
||||
goto exit_and_close;
|
||||
}
|
||||
+
|
||||
+ /* backup files if requested */
|
||||
+ if(BackupFile) {
|
||||
|
||||
+ i = PassB(f);
|
||||
+
|
||||
+ if(!p) {
|
||||
+ rewind(f);
|
||||
+ } else {
|
||||
+ pclose(f);
|
||||
+ f = popen(p,"r");
|
||||
+ if(!f) { warn("%s", p); return Exit_Broke; }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
i=Pass3(f);
|
||||
|
||||
exit_and_close:
|
||||
@@ -232,6 +320,8 @@ exit_and_close:
|
||||
if(i)
|
||||
return i;
|
||||
|
||||
- fprintf(stderr,"All done ok\n");
|
||||
+ if (Verbose > 0)
|
||||
+ fprintf(stderr,"All done ok\n");
|
||||
+
|
||||
return Exit_Done;
|
||||
}
|
49
devel/ctm/patches/patch-ctm_ctm_ctm_ed_c
Normal file
49
devel/ctm/patches/patch-ctm_ctm_ctm_ed_c
Normal file
@ -0,0 +1,49 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_ed_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm_ed.c.orig Tue May 30 05:47:22 1995
|
||||
+++ ctm/ctm/ctm_ed.c Fri Oct 26 22:39:59 2007
|
||||
@@ -6,7 +6,7 @@
|
||||
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
- * $Id: patch-ctm_ctm_ctm_ed_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+ * $Id: patch-ctm_ctm_ctm_ed_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -21,13 +21,13 @@ ctm_edit(u_char *script, int length, char *filein, cha
|
||||
|
||||
fi = fopen(filein,"r");
|
||||
if(!fi) {
|
||||
- perror(filein);
|
||||
+ warn("%s", filein);
|
||||
return 8;
|
||||
}
|
||||
|
||||
fo = fopen(fileout,"w");
|
||||
if(!fo) {
|
||||
- perror(fileout);
|
||||
+ warn("%s", fileout);
|
||||
fclose(fi);
|
||||
return 4;
|
||||
}
|
||||
@@ -96,17 +96,17 @@ ctm_edit(u_char *script, int length, char *filein, cha
|
||||
bye:
|
||||
if(fi) {
|
||||
if(fclose(fi) != 0) {
|
||||
- perror(filein);
|
||||
+ warn("%s", filein);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
if(fo) {
|
||||
if(fflush(fo) != 0) {
|
||||
- perror(fileout);
|
||||
+ warn("%s", fileout);
|
||||
ret = 1;
|
||||
}
|
||||
if(fclose(fo) != 0) {
|
||||
- perror(fileout);
|
||||
+ warn("%s", fileout);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
--- ctm/ctm/ctm.h.orig Sun Jul 9 20:43:45 2000
|
||||
+++ ctm/ctm/ctm.h Sun Jul 9 20:44:00 2000
|
||||
$OpenBSD: patch-ctm_ctm_ctm_h,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm.h.orig Fri Oct 26 22:39:59 2007
|
||||
+++ ctm/ctm/ctm.h Fri Oct 26 22:40:01 2007
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <sys/time.h>
|
||||
|
170
devel/ctm/patches/patch-ctm_ctm_ctm_pass1_c
Normal file
170
devel/ctm/patches/patch-ctm_ctm_ctm_pass1_c
Normal file
@ -0,0 +1,170 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_pass1_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm_pass1.c.orig Mon Feb 5 17:06:50 1996
|
||||
+++ ctm/ctm/ctm_pass1.c Fri Oct 26 22:39:59 2007
|
||||
@@ -6,7 +6,7 @@
|
||||
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
- * $Id: patch-ctm_ctm_ctm_pass1_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+ * $Id: patch-ctm_ctm_ctm_pass1_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -23,9 +23,9 @@ Pass1(FILE *fd, unsigned applied)
|
||||
u_char *p,*q;
|
||||
MD5_CTX ctx;
|
||||
int i,j,sep,cnt;
|
||||
- u_char *md5=0,*trash=0;
|
||||
+ u_char *md5=0,*name=0,*trash=0;
|
||||
struct CTM_Syntax *sp;
|
||||
- int slashwarn=0;
|
||||
+ int slashwarn=0, match=0, total_matches=0;
|
||||
unsigned current;
|
||||
char md5_1[33];
|
||||
|
||||
@@ -55,8 +55,10 @@ Pass1(FILE *fd, unsigned applied)
|
||||
GETFIELDCOPY(Prefix,'\n'); /* <Prefix> */
|
||||
|
||||
sscanf(Nbr, "%u", ¤t);
|
||||
+ if (FilterList || ListIt)
|
||||
+ current = 0; /* ignore if -l or if filters are present */
|
||||
if(current && current <= applied) {
|
||||
- if(Verbose)
|
||||
+ if(Verbose > 0)
|
||||
fprintf(stderr,"Delta number %u is already applied; ignoring.\n",
|
||||
current);
|
||||
return Exit_Version;
|
||||
@@ -64,8 +66,14 @@ Pass1(FILE *fd, unsigned applied)
|
||||
|
||||
for(;;) {
|
||||
Delete(md5);
|
||||
+ Delete(name);
|
||||
Delete(trash);
|
||||
cnt = -1;
|
||||
+ /* if a filter list is defined we assume that all pathnames require
|
||||
+ an action opposite to that requested by the first filter in the
|
||||
+ list.
|
||||
+ If no filter is defined, all pathnames are assumed to match. */
|
||||
+ match = (FilterList ? !(FilterList->Action) : CTM_FILTER_ENABLE);
|
||||
|
||||
GETFIELD(p,' '); /* CTM_something */
|
||||
|
||||
@@ -92,31 +100,61 @@ Pass1(FILE *fd, unsigned applied)
|
||||
sep = ' ';
|
||||
else
|
||||
sep = '\n';
|
||||
- if(Verbose > 5)
|
||||
- fprintf(stderr," %x(%d)",sp->List[i],sep);
|
||||
|
||||
+ if(Verbose > 5)
|
||||
+ fprintf(stderr," %x(%d)",sp->List[i],sep);
|
||||
+
|
||||
switch (j & CTM_F_MASK) {
|
||||
case CTM_F_Name: /* XXX check for garbage and .. */
|
||||
- GETFIELD(p,sep);
|
||||
- j = strlen(p);
|
||||
- if(p[j-1] == '/' && !slashwarn) {
|
||||
+ GETFIELDCOPY(name,sep);
|
||||
+ j = strlen(name);
|
||||
+ if(name[j-1] == '/' && !slashwarn) {
|
||||
fprintf(stderr,"Warning: contains trailing slash\n");
|
||||
slashwarn++;
|
||||
}
|
||||
- if (p[0] == '/') {
|
||||
+ if (name[0] == '/') {
|
||||
Fatal("Absolute paths are illegal.");
|
||||
return Exit_Mess;
|
||||
}
|
||||
+ q = name;
|
||||
for (;;) {
|
||||
- if (p[0] == '.' && p[1] == '.')
|
||||
- if (p[2] == '/' || p[2] == '\0') {
|
||||
+ if (q[0] == '.' && q[1] == '.')
|
||||
+ if (q[2] == '/' || q[2] == '\0') {
|
||||
Fatal("Paths containing '..' are illegal.");
|
||||
return Exit_Mess;
|
||||
}
|
||||
- if ((p = strchr(p, '/')) == NULL)
|
||||
+ if ((q = strchr(q, '/')) == NULL)
|
||||
break;
|
||||
- p++;
|
||||
+ q++;
|
||||
}
|
||||
+
|
||||
+ /* if we have been asked to `keep' files then skip
|
||||
+ removes; i.e. we don't match these entries at
|
||||
+ all. */
|
||||
+ if (KeepIt &&
|
||||
+ (!strcmp(sp->Key,"DR") || !strcmp(sp->Key,"FR"))) {
|
||||
+ match = CTM_FILTER_DISABLE;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* If filter expression have been defined, match the
|
||||
+ path name against the expression list. */
|
||||
+
|
||||
+ if (FilterList) {
|
||||
+ struct CTM_Filter *filter;
|
||||
+
|
||||
+ for (filter = FilterList; filter;
|
||||
+ filter = filter->Next) {
|
||||
+ if (0 == regexec(&filter->CompiledRegex, name,
|
||||
+ 0, 0, 0))
|
||||
+ /* if the name matches, adopt the
|
||||
+ action */
|
||||
+ match = filter->Action;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Add up the total number of matches */
|
||||
+ total_matches += match;
|
||||
break;
|
||||
case CTM_F_Uid:
|
||||
GETFIELD(p,sep);
|
||||
@@ -170,22 +208,22 @@ Pass1(FILE *fd, unsigned applied)
|
||||
p = MD5Data(trash,cnt,md5_1);
|
||||
if(md5 && strcmp(md5,p)) {
|
||||
Fatal("Internal MD5 failed.");
|
||||
- return 1;
|
||||
+ return Exit_Garbage;
|
||||
default:
|
||||
fprintf(stderr,"List = 0x%x\n",j);
|
||||
Fatal("List had garbage.");
|
||||
- return 1;
|
||||
-
|
||||
+ return Exit_Garbage;
|
||||
}
|
||||
-
|
||||
- }
|
||||
}
|
||||
+ }
|
||||
if(Verbose > 5)
|
||||
putc('\n',stderr);
|
||||
- continue;
|
||||
+ if(ListIt && match)
|
||||
+ printf("> %s %s\n", sp->Key, name);
|
||||
}
|
||||
|
||||
Delete(md5);
|
||||
+ Delete(name);
|
||||
Delete(trash);
|
||||
|
||||
q = MD5End (&ctx,md5_1);
|
||||
@@ -198,7 +236,7 @@ Pass1(FILE *fd, unsigned applied)
|
||||
Fatal("MD5 sum doesn't match.");
|
||||
fprintf(stderr,"\tI have:<%s>\n",q);
|
||||
fprintf(stderr,"\tShould have been:<%s>\n",p);
|
||||
- return 1;
|
||||
+ return Exit_Garbage;
|
||||
}
|
||||
if (-1 != getc(fd)) {
|
||||
if(!Force) {
|
||||
@@ -206,5 +244,7 @@ Pass1(FILE *fd, unsigned applied)
|
||||
return 16;
|
||||
}
|
||||
}
|
||||
- return 0;
|
||||
+ if ((Verbose > 1) && (0 == total_matches))
|
||||
+ printf("No matches in \"%s\"\n", FileName);
|
||||
+ return (total_matches ? Exit_OK : Exit_NoMatch);
|
||||
}
|
15
devel/ctm/patches/patch-ctm_ctm_ctm_pass2_c
Normal file
15
devel/ctm/patches/patch-ctm_ctm_ctm_pass2_c
Normal file
@ -0,0 +1,15 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_pass2_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm_pass2.c.orig Fri Oct 26 22:39:59 2007
|
||||
+++ ctm/ctm/ctm_pass2.c Fri Oct 26 22:40:00 2007
|
||||
@@ -114,6 +114,11 @@ Pass2(FILE *fd)
|
||||
ret |= Exit_NotOK;
|
||||
break;
|
||||
}
|
||||
+ if (-1 == access(name, W_OK)) {
|
||||
+ fprintf(stderr, " %s: %s not writable.\n",
|
||||
+ sp->Key, name);
|
||||
+ ret |= Exit_Forcible;
|
||||
+ }
|
||||
if (SetTime && getuid() && (getuid() != st.st_uid)) {
|
||||
fprintf(stderr,
|
||||
" %s: %s not mine, cannot set time.\n",
|
30
devel/ctm/patches/patch-ctm_ctm_ctm_pass3_c
Normal file
30
devel/ctm/patches/patch-ctm_ctm_ctm_pass3_c
Normal file
@ -0,0 +1,30 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_pass3_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm_pass3.c.orig Fri Oct 26 22:39:59 2007
|
||||
+++ ctm/ctm/ctm_pass3.c Fri Oct 26 22:40:00 2007
|
||||
@@ -176,6 +176,26 @@ Pass3(FILE *fd)
|
||||
|
||||
if (Verbose > 0)
|
||||
fprintf(stderr,"> %s %s\n",sp->Key,name);
|
||||
+ if ((strcmp(sp->Key, "FS") == 0 ||
|
||||
+ strcmp(sp->Key, "FN") == 0 ||
|
||||
+ strcmp(sp->Key, "FE") == 0) && -1 == access(name, W_OK)) {
|
||||
+ if (Verbose > 1)
|
||||
+ fprintf(stderr, " %s: chmod u+w %s\n",
|
||||
+ sp->Key, name);
|
||||
+ if (!Force) {
|
||||
+ warn("%s", name);
|
||||
+ WRONG
|
||||
+ }
|
||||
+ if (-1 == stat(name, &st)) {
|
||||
+ warn("stat: %s", name);
|
||||
+ WRONG
|
||||
+ }
|
||||
+ if (-1 == chmod(name, st.st_mode | S_IWUSR)) {
|
||||
+ warn("chmod: %s", name);
|
||||
+ WRONG
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if(!strcmp(sp->Key,"FM") || !strcmp(sp->Key, "FS")) {
|
||||
i = open(name,O_WRONLY|O_CREAT|O_TRUNC,0666);
|
||||
if(i < 0) {
|
146
devel/ctm/patches/patch-ctm_ctm_ctm_passb_c
Normal file
146
devel/ctm/patches/patch-ctm_ctm_ctm_passb_c
Normal file
@ -0,0 +1,146 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_passb_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm_passb.c.orig Fri Oct 26 22:39:59 2007
|
||||
+++ ctm/ctm/ctm_passb.c Fri Oct 26 22:40:00 2007
|
||||
@@ -0,0 +1,142 @@
|
||||
+/*
|
||||
+ * ----------------------------------------------------------------------------
|
||||
+ * "THE BEER-WARE LICENSE" (Revision 42):
|
||||
+ * <koshy@india.hp.com> wrote this file. As long as you retain this notice you
|
||||
+ * can do whatever you want with this stuff. If we meet some day, and you think
|
||||
+ * this stuff is worth it, you can buy me a beer in return. Joseph Koshy
|
||||
+ * ----------------------------------------------------------------------------
|
||||
+ *
|
||||
+ * $Id: patch-ctm_ctm_ctm_passb_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include "ctm.h"
|
||||
+#define BADREAD 32
|
||||
+
|
||||
+/*---------------------------------------------------------------------------*/
|
||||
+/* PassB -- Backup modified files.
|
||||
+ */
|
||||
+
|
||||
+int
|
||||
+PassB(FILE *fd)
|
||||
+{
|
||||
+ u_char *p,*q;
|
||||
+ MD5_CTX ctx;
|
||||
+ int i,j,sep,cnt;
|
||||
+ u_char *md5=0,*md5before=0,*trash=0,*name=0,*uid=0,*gid=0,*mode=0;
|
||||
+ struct CTM_Syntax *sp;
|
||||
+ FILE *b = 0; /* backup command */
|
||||
+ u_char buf[BUFSIZ];
|
||||
+ char md5_1[33];
|
||||
+ int ret = 0;
|
||||
+ int match = 0;
|
||||
+ struct CTM_Filter *filter = NULL;
|
||||
+
|
||||
+ if(Verbose>3)
|
||||
+ printf("PassB -- Backing up files which would be changed.\n");
|
||||
+
|
||||
+ MD5Init (&ctx);
|
||||
+ sprintf(buf, TarCmd, BackupFile);
|
||||
+ b=popen(buf, "w");
|
||||
+ if(!b) { warn("%s", buf); return Exit_Garbage; }
|
||||
+
|
||||
+ GETFIELD(p,' '); if(strcmp("CTM_BEGIN",p)) WRONG
|
||||
+ GETFIELD(p,' '); if(strcmp(Version,p)) WRONG
|
||||
+ GETFIELD(p,' '); if(strcmp(Name,p)) WRONG
|
||||
+ GETFIELD(p,' '); if(strcmp(Nbr,p)) WRONG
|
||||
+ GETFIELD(p,' '); if(strcmp(TimeStamp,p)) WRONG
|
||||
+ GETFIELD(p,'\n'); if(strcmp(Prefix,p)) WRONG
|
||||
+
|
||||
+ for(;;) {
|
||||
+ Delete(md5);
|
||||
+ Delete(uid);
|
||||
+ Delete(gid);
|
||||
+ Delete(mode);
|
||||
+ Delete(md5before);
|
||||
+ Delete(trash);
|
||||
+ Delete(name);
|
||||
+ cnt = -1;
|
||||
+
|
||||
+ GETFIELD(p,' ');
|
||||
+
|
||||
+ if (p[0] != 'C' || p[1] != 'T' || p[2] != 'M') WRONG
|
||||
+
|
||||
+ if(!strcmp(p+3,"_END"))
|
||||
+ break;
|
||||
+
|
||||
+ for(sp=Syntax;sp->Key;sp++)
|
||||
+ if(!strcmp(p+3,sp->Key))
|
||||
+ goto found;
|
||||
+ WRONG
|
||||
+ found:
|
||||
+ for(i=0;(j = sp->List[i]);i++) {
|
||||
+ if (sp->List[i+1] && (sp->List[i+1] & CTM_F_MASK) != CTM_F_Bytes)
|
||||
+ sep = ' ';
|
||||
+ else
|
||||
+ sep = '\n';
|
||||
+
|
||||
+ switch (j & CTM_F_MASK) {
|
||||
+ case CTM_F_Name: GETNAMECOPY(name,sep,j, Verbose); break;
|
||||
+ case CTM_F_Uid: GETFIELDCOPY(uid,sep); break;
|
||||
+ case CTM_F_Gid: GETFIELDCOPY(gid,sep); break;
|
||||
+ case CTM_F_Mode: GETFIELDCOPY(mode,sep); break;
|
||||
+ case CTM_F_MD5:
|
||||
+ if(j & CTM_Q_MD5_Before)
|
||||
+ GETFIELDCOPY(md5before,sep);
|
||||
+ else
|
||||
+ GETFIELDCOPY(md5,sep);
|
||||
+ break;
|
||||
+ case CTM_F_Count: GETBYTECNT(cnt,sep); break;
|
||||
+ case CTM_F_Bytes: GETDATA(trash,cnt); break;
|
||||
+ default: WRONG
|
||||
+ }
|
||||
+ }
|
||||
+ /* XXX This should go away. Disallow trailing '/' */
|
||||
+ j = strlen(name)-1;
|
||||
+ if(name[j] == '/') name[j] = '\0';
|
||||
+
|
||||
+ if (KeepIt &&
|
||||
+ (!strcmp(sp->Key,"DR") || !strcmp(sp->Key,"FR")))
|
||||
+ continue;
|
||||
+
|
||||
+ /* match the name against the elements of the filter list. The
|
||||
+ action associated with the last matched filter determines whether
|
||||
+ this file should be ignored or backed up. */
|
||||
+ match = (FilterList ? !(FilterList->Action) : CTM_FILTER_ENABLE);
|
||||
+ for (filter = FilterList; filter; filter = filter->Next) {
|
||||
+ if (0 == regexec(&filter->CompiledRegex, name, 0, 0, 0))
|
||||
+ match = filter->Action;
|
||||
+ }
|
||||
+
|
||||
+ if (CTM_FILTER_DISABLE == match)
|
||||
+ continue;
|
||||
+
|
||||
+ if (!strcmp(sp->Key,"FS") || !strcmp(sp->Key,"FN") ||
|
||||
+ !strcmp(sp->Key,"AS") || !strcmp(sp->Key,"DR") ||
|
||||
+ !strcmp(sp->Key,"FR")) {
|
||||
+ /* send name to the archiver for a backup */
|
||||
+ cnt = strlen(name);
|
||||
+ if (cnt != fwrite(name,1,cnt,b) || EOF == fputc('\n',b)) {
|
||||
+ warn("%s", name);
|
||||
+ pclose(b);
|
||||
+ WRONG;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ ret = pclose(b);
|
||||
+
|
||||
+ Delete(md5);
|
||||
+ Delete(uid);
|
||||
+ Delete(gid);
|
||||
+ Delete(mode);
|
||||
+ Delete(md5before);
|
||||
+ Delete(trash);
|
||||
+ Delete(name);
|
||||
+
|
||||
+ q = MD5End (&ctx,md5_1);
|
||||
+ GETFIELD(p,'\n'); /* <MD5> */
|
||||
+ if(strcmp(q,p)) WRONG
|
||||
+ if (-1 != getc(fd)) WRONG
|
||||
+ return ret;
|
||||
+}
|
34
devel/ctm/patches/patch-ctm_ctm_ctm_syntax_c
Normal file
34
devel/ctm/patches/patch-ctm_ctm_ctm_syntax_c
Normal file
@ -0,0 +1,34 @@
|
||||
$OpenBSD: patch-ctm_ctm_ctm_syntax_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm/ctm_syntax.c.orig Mon Feb 5 17:06:55 1996
|
||||
+++ ctm/ctm/ctm_syntax.c Fri Oct 26 22:40:00 2007
|
||||
@@ -6,7 +6,7 @@
|
||||
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
- * $Id: patch-ctm_ctm_ctm_syntax_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
+ * $Id: patch-ctm_ctm_ctm_syntax_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -56,12 +56,12 @@ static int ctmDR[] = /* Directory Remove */
|
||||
{ Name|Dir, 0 };
|
||||
|
||||
struct CTM_Syntax Syntax[] = {
|
||||
- { "FM", ctmFM },
|
||||
- { "FS", ctmFS },
|
||||
- { "FE", ctmFE },
|
||||
- { "FN", ctmFE },
|
||||
- { "FR", ctmFR },
|
||||
- { "AS", ctmAS },
|
||||
- { "DM", ctmDM },
|
||||
- { "DR", ctmDR },
|
||||
- { 0, 0} };
|
||||
+ { "FM", ctmFM },
|
||||
+ { "FS", ctmFS },
|
||||
+ { "FE", ctmFE },
|
||||
+ { "FN", ctmFE },
|
||||
+ { "FR", ctmFR },
|
||||
+ { "AS", ctmAS },
|
||||
+ { "DM", ctmDM },
|
||||
+ { "DR", ctmDR },
|
||||
+ { 0, 0} };
|
10
devel/ctm/patches/patch-ctm_ctm_rmail_Makefile
Normal file
10
devel/ctm/patches/patch-ctm_ctm_rmail_Makefile
Normal file
@ -0,0 +1,10 @@
|
||||
$OpenBSD: patch-ctm_ctm_rmail_Makefile,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm_rmail/Makefile.orig Fri Oct 26 22:39:59 2007
|
||||
+++ ctm/ctm_rmail/Makefile Fri Oct 26 22:40:01 2007
|
||||
@@ -4,6 +4,5 @@ MANDIR=${PREFIX}/man/cat
|
||||
PROG= ctm_rmail
|
||||
SRCS= ctm_rmail.c error.c
|
||||
CFLAGS+= -Wall
|
||||
-MLINKS+= ctm_rmail.1 ctm_smail.1
|
||||
|
||||
.include <bsd.prog.mk>
|
@ -1,8 +1,6 @@
|
||||
|
||||
Gets rid of the extraneous documentation that we don't need/want.
|
||||
|
||||
--- ctm/ctm_rmail/ctm_rmail.1.orig2 Mon Feb 28 07:32:22 2000
|
||||
+++ ctm/ctm_rmail/ctm_rmail.1 Mon Feb 28 07:32:49 2000
|
||||
$OpenBSD: patch-ctm_ctm_rmail_ctm_rmail_1,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm_rmail/ctm_rmail.1.orig Fri Oct 26 22:40:00 2007
|
||||
+++ ctm/ctm_rmail/ctm_rmail.1 Fri Oct 26 22:40:01 2007
|
||||
@@ -6,27 +6,12 @@
|
||||
.\" Author: Stephen McKay
|
||||
.\"
|
||||
@ -33,7 +31,7 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
.Nm ctm_rmail
|
||||
.Op Fl Dfuv
|
||||
.Op Fl l Ar log
|
||||
@@ -35,104 +20,13 @@
|
||||
@@ -35,106 +20,15 @@ deltas via mail
|
||||
.Op Fl b Ar basedir
|
||||
.Op Ar
|
||||
.Sh DESCRIPTION
|
||||
@ -43,7 +41,8 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
-.Nm ctm_smail ,
|
||||
-.Nm ctm_dequeue
|
||||
-and
|
||||
-.Nm ctm_rmail
|
||||
+The
|
||||
.Nm ctm_rmail
|
||||
-are used to distribute changes to a source tree via email.
|
||||
-.Nm ctm_smail
|
||||
-is given a compressed
|
||||
@ -52,8 +51,7 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
-pieces, encodes them as mail messages and sends them to the mailing list
|
||||
-(optionally queued to spread the mail load).
|
||||
-Each recipient uses
|
||||
+The
|
||||
.Nm ctm_rmail
|
||||
-.Nm ctm_rmail
|
||||
+program is used
|
||||
(either manually or automatically) to decode and reassemble the delta, and
|
||||
optionally call
|
||||
@ -63,8 +61,8 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
-several source trees are distributed, and by several sites. These include
|
||||
-the FreeBSD-current source and CVS trees, distributed by
|
||||
-.Li freefall.FreeBSD.org .
|
||||
-.Pp
|
||||
-Command line arguments for
|
||||
.Pp
|
||||
Command line arguments for
|
||||
-.Nm ctm_smail :
|
||||
-.Bl -tag -width indent
|
||||
-.It Fl l Ar log
|
||||
@ -137,10 +135,12 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
-for each tree being distributed. This is because entries are served in
|
||||
-alphabetical order, and one tree will be unfairly serviced before any others,
|
||||
-based on the delta names, not delta creation times.
|
||||
.Pp
|
||||
Command line arguments for
|
||||
-.Pp
|
||||
-Command line arguments for
|
||||
.Nm ctm_rmail :
|
||||
@@ -272,19 +166,8 @@
|
||||
.Bl -tag -width indent
|
||||
.It Fl l Ar log
|
||||
@@ -272,19 +166,8 @@ You can retrieve this delta via ftpmail, or your good
|
||||
.Pp
|
||||
You are then on your own!
|
||||
.Sh EXAMPLES
|
||||
@ -161,7 +161,7 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
message in your mailbox, assemble them into complete deltas, then apply
|
||||
any deltas built or lying around, you could use:
|
||||
.Bd -literal -offset indent
|
||||
@@ -359,7 +242,7 @@
|
||||
@@ -359,7 +242,7 @@ manipulation in
|
||||
which allows
|
||||
.Nm ctm_rmail
|
||||
to execute
|
||||
@ -170,7 +170,7 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
on the (non-OpenBSD) machine that this example was taken from.
|
||||
.Sh SECURITY
|
||||
If you automatically take your mail and pass it to a file tree patcher, you
|
||||
@@ -409,11 +292,8 @@
|
||||
@@ -409,11 +292,8 @@ source tree.
|
||||
.\" This next request is for sections 1, 6, 7 & 8 only
|
||||
.\" (command return values (to shell) and fprintf/stderr type diagnostics)
|
||||
.Sh DIAGNOSTICS
|
||||
@ -183,7 +183,7 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
.Nm ctm_rmail
|
||||
is expected to be called from a mail transfer program, and thus signals
|
||||
failure only when the input mail message should be bounced (preferably into
|
||||
@@ -424,24 +304,6 @@
|
||||
@@ -424,24 +304,6 @@ is not considered an error important enough to bounce
|
||||
.Nm ctm_rmail
|
||||
returns an exit status of 0.
|
||||
.Pp
|
||||
@ -208,7 +208,7 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
.Nm ctm_rmail
|
||||
will report messages like:
|
||||
.Bd -literal -offset indent
|
||||
@@ -470,6 +332,8 @@
|
||||
@@ -470,6 +332,8 @@ turn up here too. Error messages should be self expla
|
||||
.Sh SEE ALSO
|
||||
.Xr ctm 1 ,
|
||||
.Xr ctm 5
|
||||
@ -217,12 +217,3 @@ Gets rid of the extraneous documentation that we don't need/want.
|
||||
.\" .Sh STANDARDS
|
||||
.\" .Sh HISTORY
|
||||
.Sh AUTHOR
|
||||
--- ctm/ctm_rmail/Makefile.orig2 Mon Feb 28 07:33:51 2000
|
||||
+++ ctm/ctm_rmail/Makefile Mon Feb 28 07:34:01 2000
|
||||
@@ -4,6 +4,5 @@
|
||||
PROG= ctm_rmail
|
||||
SRCS= ctm_rmail.c error.c
|
||||
CFLAGS+= -Wall
|
||||
-MLINKS+= ctm_rmail.1 ctm_smail.1
|
||||
|
||||
.include <bsd.prog.mk>
|
82
devel/ctm/patches/patch-ctm_ctm_rmail_ctm_rmail_c
Normal file
82
devel/ctm/patches/patch-ctm_ctm_rmail_ctm_rmail_c
Normal file
@ -0,0 +1,82 @@
|
||||
$OpenBSD: patch-ctm_ctm_rmail_ctm_rmail_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- ctm/ctm_rmail/ctm_rmail.c.orig Wed May 1 01:01:45 1996
|
||||
+++ ctm/ctm_rmail/ctm_rmail.c Fri Oct 26 22:40:00 2007
|
||||
@@ -1,3 +1,4 @@
|
||||
+/* $OpenBSD: patch-ctm_ctm_rmail_ctm_rmail_c,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $ */
|
||||
/*
|
||||
* Accept one (or more) ASCII encoded chunks that together make a compressed
|
||||
* CTM delta. Decode them and reconstruct the deltas. Any completed
|
||||
@@ -12,7 +13,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
-#include <strings.h>
|
||||
+#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
@@ -292,6 +293,7 @@ read_piece(char *input_file)
|
||||
if (!decoding)
|
||||
{
|
||||
char *s;
|
||||
+ int fd = -1;
|
||||
|
||||
if (sscanf(line, "CTM_MAIL BEGIN %s %d %d %c",
|
||||
delta, &pce, &npieces, junk) != 3)
|
||||
@@ -302,19 +304,19 @@ read_piece(char *input_file)
|
||||
|
||||
got_one++;
|
||||
strcpy(tname, piece_dir);
|
||||
- strcat(tname, "/p.XXXXXX");
|
||||
- if (mktemp(tname) == NULL)
|
||||
+ strcat(tname, "/p.XXXXXXXXXX");
|
||||
+ if ((fd = mkstemp(tname)) == -1 ||
|
||||
+ (ofp = fdopen(fd, "w")) == NULL)
|
||||
{
|
||||
- err("*mktemp: '%s'", tname);
|
||||
+ if (fd != -1) {
|
||||
+ err("cannot open '%s' for writing", tname);
|
||||
+ close(fd);
|
||||
+ }
|
||||
+ else
|
||||
+ err("*mkstemp: '%s'", tname);
|
||||
status++;
|
||||
continue;
|
||||
}
|
||||
- if ((ofp = fopen(tname, "w")) == NULL)
|
||||
- {
|
||||
- err("cannot open '%s' for writing", tname);
|
||||
- status++;
|
||||
- continue;
|
||||
- }
|
||||
|
||||
cksum = 0xffff;
|
||||
decoding++;
|
||||
@@ -494,17 +496,19 @@ combine(char *delta, int npieces, char *dname, char *p
|
||||
FILE *dfp, *pfp;
|
||||
int i, n, e;
|
||||
char buf[BUFSIZ];
|
||||
+ int fd = -1;
|
||||
|
||||
strcpy(tname, delta_dir);
|
||||
- strcat(tname, "/d.XXXXXX");
|
||||
- if (mktemp(tname) == NULL)
|
||||
+ strcat(tname, "/d.XXXXXXXXXX");
|
||||
+ if ((fd = mkstemp(tname)) == -1 ||
|
||||
+ (dfp = fdopen(fd, "w")) == NULL)
|
||||
{
|
||||
- err("*mktemp: '%s'", tname);
|
||||
- return 0;
|
||||
- }
|
||||
- if ((dfp = fopen(tname, "w")) == NULL)
|
||||
- {
|
||||
- err("cannot open '%s' for writing", tname);
|
||||
+ if (fd != -1) {
|
||||
+ close(fd);
|
||||
+ err("cannot open '%s' for writing", tname);
|
||||
+ }
|
||||
+ else
|
||||
+ err("*mktemp: '%s'", tname);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- tkcvs/cvscheck.blank.orig Mon Nov 20 14:08:35 1995
|
||||
+++ tkcvs/cvscheck.blank Tue Mar 28 06:42:17 2000
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
# \
|
||||
- exec tclsh $0 ${1+"$@"}
|
||||
+ exec tclsh8.4 $0 ${1+"$@"}
|
||||
|
||||
# $Id: patch-ab,v 1.4 2003/12/27 23:40:49 jose Exp $
|
||||
#
|
@ -1,6 +1,7 @@
|
||||
--- tkcvs/cvs.tcl.orig Thu Dec 17 22:03:52 1998
|
||||
+++ tkcvs/cvs.tcl Thu Dec 17 22:04:05 1998
|
||||
@@ -285,7 +285,7 @@
|
||||
$OpenBSD: patch-tkcvs_cvs_tcl,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- tkcvs/cvs.tcl.orig Sat May 25 04:54:58 1996
|
||||
+++ tkcvs/cvs.tcl Fri Oct 26 22:41:28 2007
|
||||
@@ -285,7 +285,7 @@ proc cvs_commit {revision comment args} {
|
||||
# -sj
|
||||
set errstr "You must select files to be committed with CVS version"
|
||||
set errstr "$errstr $cvscfg(cvsver)."
|
11
devel/tkcvs/patches/patch-tkcvs_cvscheck_blank
Normal file
11
devel/tkcvs/patches/patch-tkcvs_cvscheck_blank
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-tkcvs_cvscheck_blank,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- tkcvs/cvscheck.blank.orig Mon Nov 20 07:08:35 1995
|
||||
+++ tkcvs/cvscheck.blank Fri Oct 26 22:41:27 2007
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
# \
|
||||
- exec tclsh $0 ${1+"$@"}
|
||||
+ exec tclsh8.4 $0 ${1+"$@"}
|
||||
|
||||
# $Id: patch-tkcvs_cvscheck_blank,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
#
|
@ -1,8 +1,9 @@
|
||||
--- tkcvs/doinstall.orig Wed Jan 10 05:17:52 1996
|
||||
+++ tkcvs/doinstall Tue Mar 28 06:46:46 2000
|
||||
$OpenBSD: patch-tkcvs_doinstall,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
--- tkcvs/doinstall.orig Tue Jan 9 22:17:52 1996
|
||||
+++ tkcvs/doinstall Fri Oct 26 22:41:26 2007
|
||||
@@ -2,10 +2,10 @@
|
||||
#
|
||||
# $Id: patch-aa,v 1.4 2003/12/27 23:40:49 jose Exp $
|
||||
# $Id: patch-tkcvs_doinstall,v 1.1 2007/10/26 20:44:35 ajacoutot Exp $
|
||||
#
|
||||
-
|
||||
+PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
|
||||
@ -13,7 +14,7 @@
|
||||
BINDIR=/usr/local/bin
|
||||
MANDIR=/usr/local/man/mann
|
||||
|
||||
@@ -14,22 +14,32 @@
|
||||
@@ -14,22 +14,32 @@ INSTALL_PROG=./install-sh
|
||||
# This must be an X based editor -- do NOT use vi except via an xterm
|
||||
# or shelltool.
|
||||
|
||||
@ -51,7 +52,7 @@
|
||||
do
|
||||
if [ -d "$GDIR" ]; then
|
||||
break
|
||||
@@ -46,15 +56,15 @@
|
||||
@@ -46,15 +56,15 @@ fi
|
||||
|
||||
# Find out where we want the system installed.
|
||||
|
||||
@ -71,7 +72,7 @@
|
||||
echo "I cant write to that directory"
|
||||
exit 1
|
||||
fi
|
||||
@@ -62,25 +72,25 @@
|
||||
@@ -62,25 +72,25 @@ fi
|
||||
|
||||
# Some directories we have to create.
|
||||
|
||||
@ -103,7 +104,7 @@
|
||||
echo "I cant write to that directory"
|
||||
exit 1
|
||||
fi
|
||||
@@ -94,21 +104,21 @@
|
||||
@@ -94,21 +104,21 @@ do
|
||||
-e "/GDIR/ s;;$GDIR;g" \
|
||||
-e "/EDITOR/ s;;$EDITOR;g" \
|
||||
-e "/TCDIR/ s;;$TCDIR;g" ${file}.blank >$file
|
@ -1,106 +0,0 @@
|
||||
*** build/Makefile.in.orig Thu Mar 6 13:19:46 1997
|
||||
--- build/Makefile.in Thu Mar 6 13:23:40 1997
|
||||
***************
|
||||
*** 87,95 ****
|
||||
cd $(bindir) && $(chmod) $(emode) `echo vi | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo ex | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo view | sed '$(transform)'`
|
||||
! cd $(bindir) && $(ln) \
|
||||
`echo vi | sed '$(transform)'` `echo ex | sed '$(transform)'`
|
||||
! cd $(bindir) && $(ln) \
|
||||
`echo vi | sed '$(transform)'` `echo view | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f regular qregular
|
||||
$(cp) regular $(bindir)/regular
|
||||
--- 87,95 ----
|
||||
cd $(bindir) && $(chmod) $(emode) `echo vi | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo ex | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo view | sed '$(transform)'`
|
||||
! cd $(bindir) && $(ln) -s \
|
||||
`echo vi | sed '$(transform)'` `echo ex | sed '$(transform)'`
|
||||
! cd $(bindir) && $(ln) -s \
|
||||
`echo vi | sed '$(transform)'` `echo view | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f regular qregular
|
||||
$(cp) regular $(bindir)/regular
|
||||
***************
|
||||
*** 97,115 ****
|
||||
cd $(bindir) && $(chmod) $(emode) regular qregular
|
||||
[ -d $(mandir) ] || \
|
||||
($(mkdir) $(mandir) && $(chmod) $(dmode) $(mandir))
|
||||
! [ -d $(mandir)/cat1 ] || \
|
||||
! ($(mkdir) $(mandir)/cat1 && $(chmod) $(dmode) $(mandir)/cat1)
|
||||
@echo "Installing man pages: $(mandir) ..."
|
||||
! cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
! $(cp) $(srcdir)/docs/USD.doc/vi.man/vi.0 \
|
||||
! $(mandir)/cat1/`echo vi.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(chmod) $(fmode) `echo vi.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(ln) \
|
||||
! `echo vi.0 | sed '$(transform)'` `echo ex.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(ln) \
|
||||
! `echo vi.0 | sed '$(transform)'` `echo view.0 | sed '$(transform)'`
|
||||
[ -d $(mandir)/man1 ] || \
|
||||
($(mkdir) $(mandir)/man1 && $(chmod) $(dmode) $(mandir)/man1)
|
||||
cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
|
||||
--- 97,115 ----
|
||||
cd $(bindir) && $(chmod) $(emode) regular qregular
|
||||
[ -d $(mandir) ] || \
|
||||
($(mkdir) $(mandir) && $(chmod) $(dmode) $(mandir))
|
||||
! # [ -d $(mandir)/cat1 ] || \
|
||||
! # ($(mkdir) $(mandir)/cat1 && $(chmod) $(dmode) $(mandir)/cat1)
|
||||
@echo "Installing man pages: $(mandir) ..."
|
||||
! # cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
! # $(cp) $(srcdir)/docs/USD.doc/vi.man/vi.0 \
|
||||
! # $(mandir)/cat1/`echo vi.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(chmod) $(fmode) `echo vi.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(ln) -s \
|
||||
! # `echo vi.0 | sed '$(transform)'` `echo ex.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(ln) -s \
|
||||
! # `echo vi.0 | sed '$(transform)'` `echo view.0 | sed '$(transform)'`
|
||||
[ -d $(mandir)/man1 ] || \
|
||||
($(mkdir) $(mandir)/man1 && $(chmod) $(dmode) $(mandir)/man1)
|
||||
cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
|
||||
***************
|
||||
*** 118,126 ****
|
||||
cd $(mandir)/man1 && $(chmod) $(fmode) `echo vi.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo ex.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo view.1 | sed '$(transform)'`
|
||||
! cd $(mandir)/man1 && $(ln) \
|
||||
`echo vi.1 | sed '$(transform)'` `echo ex.1 | sed '$(transform)'`
|
||||
! cd $(mandir)/man1 && $(ln) \
|
||||
`echo vi.1 | sed '$(transform)'` `echo view.1 | sed '$(transform)'`
|
||||
|
||||
cat= dutch english french german ru_SU.KOI8-R spanish swedish
|
||||
--- 118,126 ----
|
||||
cd $(mandir)/man1 && $(chmod) $(fmode) `echo vi.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo ex.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo view.1 | sed '$(transform)'`
|
||||
! cd $(mandir)/man1 && $(ln) -s \
|
||||
`echo vi.1 | sed '$(transform)'` `echo ex.1 | sed '$(transform)'`
|
||||
! cd $(mandir)/man1 && $(ln) -s \
|
||||
`echo vi.1 | sed '$(transform)'` `echo view.1 | sed '$(transform)'`
|
||||
|
||||
cat= dutch english french german ru_SU.KOI8-R spanish swedish
|
||||
***************
|
||||
*** 163,171 ****
|
||||
cd $(bindir) && $(rm) -f `echo vi | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo view | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f regular qregular
|
||||
! cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
! cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo ex.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo view.1 | sed '$(transform)'`
|
||||
--- 163,171 ----
|
||||
cd $(bindir) && $(rm) -f `echo vi | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo view | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f regular qregular
|
||||
! # cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
! # cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo ex.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo view.1 | sed '$(transform)'`
|
72
editors/nvi-m17n/patches/patch-build_Makefile_in
Normal file
72
editors/nvi-m17n/patches/patch-build_Makefile_in
Normal file
@ -0,0 +1,72 @@
|
||||
$OpenBSD: patch-build_Makefile_in,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- build/Makefile.in.orig Fri Oct 26 22:46:41 2007
|
||||
+++ build/Makefile.in Fri Oct 26 22:46:42 2007
|
||||
@@ -88,9 +88,9 @@ install: all install_common
|
||||
cd $(bindir) && $(chmod) $(emode) `echo vi | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo ex | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo view | sed '$(transform)'`
|
||||
- cd $(bindir) && $(ln) \
|
||||
+ cd $(bindir) && $(ln) -s \
|
||||
`echo vi | sed '$(transform)'` `echo ex | sed '$(transform)'`
|
||||
- cd $(bindir) && $(ln) \
|
||||
+ cd $(bindir) && $(ln) -s \
|
||||
`echo vi | sed '$(transform)'` `echo view | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f regular qregular
|
||||
$(cp) regular $(bindir)/regular
|
||||
@@ -98,19 +98,19 @@ install: all install_common
|
||||
cd $(bindir) && $(chmod) $(emode) regular qregular
|
||||
[ -d $(mandir) ] || \
|
||||
($(mkdir) $(mandir) && $(chmod) $(dmode) $(mandir))
|
||||
- [ -d $(mandir)/cat1 ] || \
|
||||
- ($(mkdir) $(mandir)/cat1 && $(chmod) $(dmode) $(mandir)/cat1)
|
||||
+# [ -d $(mandir)/cat1 ] || \
|
||||
+# ($(mkdir) $(mandir)/cat1 && $(chmod) $(dmode) $(mandir)/cat1)
|
||||
@echo "Installing man pages: $(mandir) ..."
|
||||
- cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
- $(cp) $(srcdir)/docs/USD.doc/vi.man/vi.0 \
|
||||
- $(mandir)/cat1/`echo vi.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(chmod) $(fmode) `echo vi.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(ln) \
|
||||
- `echo vi.0 | sed '$(transform)'` `echo ex.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(ln) \
|
||||
- `echo vi.0 | sed '$(transform)'` `echo view.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
+# $(cp) $(srcdir)/docs/USD.doc/vi.man/vi.0 \
|
||||
+# $(mandir)/cat1/`echo vi.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(chmod) $(fmode) `echo vi.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(ln) -s \
|
||||
+# `echo vi.0 | sed '$(transform)'` `echo ex.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(ln) -s \
|
||||
+# `echo vi.0 | sed '$(transform)'` `echo view.0 | sed '$(transform)'`
|
||||
[ -d $(mandir)/man1 ] || \
|
||||
($(mkdir) $(mandir)/man1 && $(chmod) $(dmode) $(mandir)/man1)
|
||||
cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
|
||||
@@ -119,9 +119,9 @@ install: all install_common
|
||||
cd $(mandir)/man1 && $(chmod) $(fmode) `echo vi.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo ex.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo view.1 | sed '$(transform)'`
|
||||
- cd $(mandir)/man1 && $(ln) \
|
||||
+ cd $(mandir)/man1 && $(ln) -s \
|
||||
`echo vi.1 | sed '$(transform)'` `echo ex.1 | sed '$(transform)'`
|
||||
- cd $(mandir)/man1 && $(ln) \
|
||||
+ cd $(mandir)/man1 && $(ln) -s \
|
||||
`echo vi.1 | sed '$(transform)'` `echo view.1 | sed '$(transform)'`
|
||||
|
||||
cat= dutch english french german ru_SU.KOI8-R spanish swedish
|
||||
@@ -164,9 +164,9 @@ uninstall:
|
||||
cd $(bindir) && $(rm) -f `echo vi | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f `echo view | sed '$(transform)'`
|
||||
cd $(bindir) && $(rm) -f regular qregular
|
||||
- cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
- cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
|
||||
+# cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo ex.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
|
||||
cd $(mandir)/man1 && $(rm) -f `echo view.1 | sed '$(transform)'`
|
@ -1,6 +1,7 @@
|
||||
--- build/configure.orig Fri Jun 26 02:22:51 1998
|
||||
+++ build/configure Fri Jun 26 02:23:39 1998
|
||||
@@ -1686,10 +1686,8 @@
|
||||
$OpenBSD: patch-build_configure,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- build/configure.orig Fri Oct 26 22:46:41 2007
|
||||
+++ build/configure Fri Oct 26 22:46:42 2007
|
||||
@@ -1807,10 +1807,8 @@ if test "$vi_cv_canna" = "yes"; then
|
||||
case "$host_os" in
|
||||
bsdi2.1)
|
||||
vi_cannapath="/usr/contrib/canna";;
|
@ -1,6 +1,7 @@
|
||||
--- textedit.c.orig 1995-04-19 00:53:43.000000000 +0200
|
||||
+++ textedit.c 2003-12-30 17:19:49.000000000 +0100
|
||||
@@ -17,7 +17,7 @@ static char sccsid[] = "@(#)textedit.c 1
|
||||
$OpenBSD: patch-textedit_c,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- textedit.c.orig Wed Apr 19 00:53:43 1995
|
||||
+++ textedit.c Fri Oct 26 22:45:17 2007
|
||||
@@ -17,7 +17,7 @@ static char sccsid[] = "@(#)textedit.c 15.50 90/05/22"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
@ -9,7 +10,7 @@
|
||||
#include <X11/X.h>
|
||||
#include <xview/defaults.h>
|
||||
#include <xview/font.h>
|
||||
@@ -31,19 +31,11 @@ static char sccsid[] = "@(#)textedit.c 1
|
||||
@@ -31,19 +31,11 @@ static char sccsid[] = "@(#)textedit.c 15.50 90/05/22"
|
||||
#include <xview/sel_svc.h>
|
||||
#include <xview/sel_attrs.h>
|
||||
|
@ -1,5 +1,6 @@
|
||||
--- textedit.man.orig 1995-04-19 00:53:43.000000000 +0200
|
||||
+++ textedit.man 2003-12-30 17:19:49.000000000 +0100
|
||||
$OpenBSD: patch-textedit_man,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- textedit.man.orig Wed Apr 19 00:53:43 1995
|
||||
+++ textedit.man Fri Oct 26 22:45:18 2007
|
||||
@@ -7,7 +7,7 @@ textedit
|
||||
.SH SYNOPSIS
|
||||
.B textedit
|
||||
@ -22,7 +23,7 @@
|
||||
.SH DESCRIPTION
|
||||
.IX tools textedit "" "\fLtextedit\fR"
|
||||
.LP
|
||||
@@ -640,6 +638,13 @@ abnormal termination during initializati
|
||||
@@ -640,6 +638,13 @@ abnormal termination during initialization,
|
||||
usually due to a missing file or running out of swap space
|
||||
.PD
|
||||
.RE
|
||||
@ -36,7 +37,7 @@
|
||||
.SH BUGS
|
||||
Multi-click to change the current selection does not work for
|
||||
.BR "Adjust Selection" .
|
||||
@@ -647,4 +652,3 @@ Multi-click to change the current select
|
||||
@@ -647,4 +652,3 @@ Multi-click to change the current selection does not w
|
||||
Handling of long lines is incorrect in certain scrolling situations.
|
||||
.LP
|
||||
There is no way to replay any editing sequence except the most recent.
|
@ -1,5 +1,6 @@
|
||||
$OpenBSD: patch-Makefile_in,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- Makefile.in.orig Mon Dec 27 00:11:38 1999
|
||||
+++ Makefile.in Thu Feb 10 10:19:58 2000
|
||||
+++ Makefile.in Fri Oct 26 22:47:33 2007
|
||||
@@ -13,10 +13,11 @@ DESTDIR=@bindir@
|
||||
LIBDIR=@libdir@
|
||||
XWPELIBDIR= $(LIBDIR)/xwpe
|
@ -1,10 +0,0 @@
|
||||
--- configure.orig Fri Nov 5 13:38:21 1999
|
||||
+++ configure Fri Nov 5 13:39:21 1999
|
||||
@@ -2604,6 +2604,7 @@
|
||||
s%@X_PRE_LIBS@%$X_PRE_LIBS%g
|
||||
s%@X_LIBS@%$X_LIBS%g
|
||||
s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
|
||||
+s%@X_INC@%$x_includes%g
|
||||
|
||||
CEOF
|
||||
EOF
|
11
editors/xwpe/patches/patch-configure
Normal file
11
editors/xwpe/patches/patch-configure
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-configure,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- configure.orig Mon Dec 27 00:11:38 1999
|
||||
+++ configure Fri Oct 26 22:47:34 2007
|
||||
@@ -2604,6 +2604,7 @@ s%@X_CFLAGS@%$X_CFLAGS%g
|
||||
s%@X_PRE_LIBS@%$X_PRE_LIBS%g
|
||||
s%@X_LIBS@%$X_LIBS%g
|
||||
s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
|
||||
+s%@X_INC@%$x_includes%g
|
||||
|
||||
CEOF
|
||||
EOF
|
@ -1,5 +1,6 @@
|
||||
--- we_fl_unix.c.orig Fri Nov 5 13:39:59 1999
|
||||
+++ we_fl_unix.c Fri Nov 5 13:41:52 1999
|
||||
$OpenBSD: patch-we_fl_unix_c,v 1.1 2007/10/26 20:49:32 ajacoutot Exp $
|
||||
--- we_fl_unix.c.orig Mon Dec 27 00:11:38 1999
|
||||
+++ we_fl_unix.c Fri Oct 26 22:47:35 2007
|
||||
@@ -12,6 +12,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
@ -10,7 +11,7 @@
|
||||
|
||||
struct dirfile *e_make_win_list(FENSTER * f);
|
||||
extern char *e_tmp_dir;
|
||||
@@ -3538,7 +3541,13 @@
|
||||
@@ -3546,7 +3549,13 @@ struct dirfile *e_make_funct(char *man)
|
||||
if(getenv("MANPATH"))
|
||||
strcpy(manpath, getenv("MANPATH"));
|
||||
if(manpath[0] == '\0')
|
Loading…
Reference in New Issue
Block a user