summaryrefslogtreecommitdiff
path: root/contrib/ports/vms
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ports/vms')
-rw-r--r--contrib/ports/vms/readme.1st9
-rw-r--r--contrib/ports/vms/readme.vms102
-rw-r--r--contrib/ports/vms/vms_link.opt1
-rw-r--r--contrib/ports/vms/vms_multinet_link.opt1
-rw-r--r--contrib/ports/vms/vms_netlib_link.opt1
-rw-r--r--contrib/ports/vms/vmsbuild.com31
-rw-r--r--contrib/ports/vms/vmsbuild_cclient.com103
7 files changed, 248 insertions, 0 deletions
diff --git a/contrib/ports/vms/readme.1st b/contrib/ports/vms/readme.1st
new file mode 100644
index 00000000..42652494
--- /dev/null
+++ b/contrib/ports/vms/readme.1st
@@ -0,0 +1,9 @@
+
+To build the VMS version of pine, just move the VMSBUILD.COM command
+script into the top level pine directory. If the script fails moving
+the pine-specific c-client build script (VMSBUILD_CCLIENT.COM) into
+place, just copy it by hand into the C-CLIENT.DIR it creates. This
+RENAME was added just prior to release by the pine team and was not
+part of the contributed port.
+
+- The Pine Team
diff --git a/contrib/ports/vms/readme.vms b/contrib/ports/vms/readme.vms
new file mode 100644
index 00000000..da14481f
--- /dev/null
+++ b/contrib/ports/vms/readme.vms
@@ -0,0 +1,102 @@
+ VMS readme for PINE/C-CLEINT/PICO
+ ========================
+
+Building
+========
+
+ There are three executables:
+Pico/PICO.EXE: This is the stand-alone version of the editor.
+C-Client/MTEST: Testing program for debugging purposes.
+Pine/PINE: The pine...
+
+In order to build SET DEF into the top directory (i.e. the one above PINE.DIR,
+PICO.DIR, etc.) and then @VMSBUILD. It will rename the C-CLient directory and
+then compile Pico, C-Client and Pine.
+
+Optional parameters to the VMSBUILD command:
+
+NETLIB - Use the Netlib library. It must be preloaded into [.NETLIB]NETLIB.OLB
+MULTINET - Call Multinet's transport directly.
+
+If more than one option is used - separate them with coma and no spaces.
+
+There are a few warnnings during the link - ignore them...
+On VAX we have to link the objects themselves and can't use libraries since the
+linker/librarian lose the global variables; on AXP it is ok...
+
+
+Using
+=====
+ All the user needs is the PINE.EXE; Pine reads the mail from the user's
+VMS/MAIL files and send outgoing mail either via mail routines using some
+foreign protocol or via direct SMTP to some SMTP server (I preffer this
+metod). You use the latter by defining SMTP-SERVER field with some host.
+If you do not set it you must define PINE_MAIL_PROTOCOL to the prefix of
+the foreign protocol used. For example, if you use SMTP% you have to define
+it to SMTP.
+ The global PINE configuration file (if needed) is located at UTIL$:PINE.CONF;
+if you want to recompile it with a different name then modify PINE/OS.H;
+
+
+Why TcpIp communication is needed?
+==================================
+ It is not really needed, but helps much. It is needed in three places:
+1. Sending mail: You can either send mail using the xxx% mechanism by defning
+ PINE_MAIL_PROTOCOL; in this case no TcpIp is needed.
+ you can use another mechanism: Don't define the above but set some SMTP
+ server node name in PINE.CONF or .PINERC. In this case you need some
+ SMTP package.
+2. PINE can read NEWS via the NNTP protocol which runs over TcpIp...
+3. Remote nodes (usually PC) can access the IMAP daemon and PINE can access
+ remote IMAP servers using TcpIp.
+
+
+Restrictions
+============
+1. In order to not modify the source too much the handling of the special
+ INBOX folder was not modified. Hence, it always try to open the (empty)
+ INBOX folder instead of NEWMAIL.
+ It is possible to define in the system's wide PINE.CONF that
+ inbox-path=NEWMAIL. In this case NEWMAIL will be opened when PINE is
+ started. However, the user must not then switch to another folder as long
+ as NEWMAIL has items.
+2. WASTEBASKET folder is not used.
+3. .PINERC and .ADDRBOOK are fixed to the user's login directory and cannot
+ be defined to be elsewhere (the definition is ignored).
+4-100. Probably exists and I forgot to mention :-)
+
+
+IMAPD
+=====
+ IMAPD of version 3.89 is available with the old Pine VMS port from
+VMS.HUJI.AC.IL; the current version of IMAPD will be ported soon.
+
+
+NETLIB
+======
+ NETLIB can be obtained from PUBLIC.TGV.COM:/MADISON/NETLIB. NETLIB supports
+all the common TcpIp packages like Multinet, UCX, Fusion, Wollongong, etc.
+
+
+Suggested PINE.CONF file.
+=========================
+here is the PINE.CONF file we use here:
+
+# Our fully-qualified machine name:
+user-domain=vms.huji.ac.il
+
+# Where to connect to send outputgoing mail.
+smtp-server=vms.huji.ac.il
+
+# Which viewer to see GIF/JPEG/etc.
+image-viewer=xv
+
+# Which folder will be opened automatically when entering PINE. See note above.
+inbox-path=NEWMAIL
+
+
+Notes:
+=====
+1. Due to the readonly definition in the source files we use an external
+ #define to redefine it to something else. Due to that CTYPE.H fails, so
+ we use a private copy of it.
diff --git a/contrib/ports/vms/vms_link.opt b/contrib/ports/vms/vms_link.opt
new file mode 100644
index 00000000..0f454490
--- /dev/null
+++ b/contrib/ports/vms/vms_link.opt
@@ -0,0 +1 @@
+SYS$SHARE:VAXCRTL/SHARE
diff --git a/contrib/ports/vms/vms_multinet_link.opt b/contrib/ports/vms/vms_multinet_link.opt
new file mode 100644
index 00000000..5eb99104
--- /dev/null
+++ b/contrib/ports/vms/vms_multinet_link.opt
@@ -0,0 +1 @@
+MULTINET:MULTINET_SOCKET_LIBRARY/SHARE
diff --git a/contrib/ports/vms/vms_netlib_link.opt b/contrib/ports/vms/vms_netlib_link.opt
new file mode 100644
index 00000000..4bec72f1
--- /dev/null
+++ b/contrib/ports/vms/vms_netlib_link.opt
@@ -0,0 +1 @@
+netlib_shr/share
diff --git a/contrib/ports/vms/vmsbuild.com b/contrib/ports/vms/vmsbuild.com
new file mode 100644
index 00000000..e3f58ebc
--- /dev/null
+++ b/contrib/ports/vms/vmsbuild.com
@@ -0,0 +1,31 @@
+$! VMSBUILD.COM - Calls the subdirectories VMSBUILD.
+$! Can be called with options separated with commas and no spaces. The
+$! options are:
+$!
+$! NETLIB - For linking with Netlib. NETLIB.OLB must be pre-loaded into
+$! [.NETLIb]NETLIB.OLB
+$! MULTINET - Used with Multinet transport (no NETLIB is used).
+$! HEBREW - Build the Hebrew version.
+$!
+$!
+$ IF F$EXISTS("[.IMAP.ANSI]C-CLIENT.DIR") THEN RENAME [.IMAP.ANSI]C-CLIENT.DIR [];
+$ IF F$EXISTS("[.CONTRIB.VMS]VMSBUILD_CCLIENT.COM") THEN RENAME [.CONTRIB.VMS]VMSBUILD_CCLIENT.COM [.C-CLIENT]VMSBUILD.COM;
+$ SET DEF [.PICO]
+$@VMSBUILD 'P1'
+$ SET DEF [-.C-CLIENT]
+$@VMSBUILD 'P1'
+$ SET DEF [-.PINE]
+$@VMSBUILD 'P1'
+$ SET DEF [-]
+$!
+$ TYPE SYS$INPUT:
+Executables can be found in:
+
+PICO/PICO.EXE - The stand-alone editor (not needed).
+C-CLIENT/MTEST.EXE - Interactive testing program (not needed).
+C-CLIENT/IMAPD.EXE - the IMAP daemon. Should be copied elsewhere and defined
+ in the INETD.CONF file or equivalent.
+PINE/PINE.EXE - What you waited for...
+
+$!
+$ EXIT
diff --git a/contrib/ports/vms/vmsbuild_cclient.com b/contrib/ports/vms/vmsbuild_cclient.com
new file mode 100644
index 00000000..7d4c0a20
--- /dev/null
+++ b/contrib/ports/vms/vmsbuild_cclient.com
@@ -0,0 +1,103 @@
+$! Program: Operating-system dependent routines -- VMS version
+$!
+$! Author: Yehavi Bourvine, The Hebrew University of Jerusalem.
+$! Internet: Yehavi@VMS.huji.ac.il
+$!
+$! Date: 2 August 1994
+$! Last Edited: 2 August 1994
+$!
+$! Copyright 1994 by the University of Washington
+$!
+$! Permission to use, copy, modify, and distribute this software and its
+$! documentation for any purpose and without fee is hereby granted, provided
+$! that the above copyright notice appears in all copies and that both the
+$! above copyright notice and this permission notice appear in supporting
+$! documentation, and that the name of the University of Washington not be
+$! used in advertising or publicity pertaining to distribution of the software
+$! without specific, written prior permission. This software is made available
+$! "as is", and
+$! THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
+$! WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED
+$! WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN
+$! NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL,
+$! INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+$! LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT
+$! (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION
+$! WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+$!
+$! VMSBUILD.COM for C-CLIENT.
+$ CREATE LINKAGE.H
+$ DECK
+extern DRIVER imapdriver, nntpdriver, vmsmaildriver;
+$ EOD
+$ CREATE LINKAGE.C
+$ DECK
+ mail_link((DRIVER *)&imapdriver);
+ mail_link((DRIVER *)&nntpdriver);
+ mail_link((DRIVER *)&vmsmaildriver);
+$ EOD
+$!
+$ DEFINE SYS SYS$LIBRARY: ! Normal .H location.
+$ DEFINE NETINET SYS$LIBRARY:
+$ DEFINE ARPA SYS$LIBRARY:
+$!
+$ COPY OS_VMS.H OSDEP.H;
+$ COPY TCP_VMSN.C TCP_VMS.C; ! Default - no TcpIp support.
+$!
+$ CC_DEF = ",''P1'"
+$ LINK_OPT = ""
+$ IF P1 .EQS. "" THEN CC_DEF=""
+$ IF F$LOCATE("MULTINET", P1) .LT. F$LENGTH(P1)
+$ THEN
+$ DEFINE SYS MULTINET_ROOT:[MULTINET.INCLUDE.SYS],sys$library
+$ DEFINE NETINET MULTINET_ROOT:[MULTINET.INCLUDE.NETINET]
+$ DEFINE ARPA MULTINET_ROOT:[MULTINET.INCLUDE.ARPA]
+$ COPY TCP_VMSM.C TCP_VMS.C; ! Multinet support.
+$ LINK_OPT = ",[-.CONTRIB.VMS]VMS_MULTINET_LINK/OPTION"
+$ ENDIF
+$ IF F$LOCATE("NETLIB", P1) .LT. F$LENGTH(P1)
+$ THEN
+$ LINK_OPT = ",[-.CONTRIB.VMS]VMS_NETLIB_LINK/OPTION"
+$ COPY TCP_VMSL.C TCP_VMS.C; ! Netlib support.
+$ ENDIF
+$!
+$ CC_PREF = ""
+$ IF F$LOCATE("VAX", F$GETSYI("HW_NAME")) .EQS. F$LENGTH(F$GETSYI("HW_NAME"))
+$ THEN
+$ CC_PREF = "/PREFIX=(ALL,EXCEPT=(SOCKET,CONNECT,BIND,LISTEN,SOCKET_READ,SOCKET_WRITE,SOCKET_CLOSE,SELECT,ACCEPT,BCMP,BCOPY,BZERO,GETHOSTBYNAME,"
+$ CC_PREF = CC_PREF + "GETHOSTBYADDR,GETPEERNAME,GETDTABLESIZE,HTONS,HTONL,NTOHS,NTOHL,SEND,SENDTO,RECV,RECVFROM))"
+$ CC_PREF = CC_PREF + "/STANDARD=VAXC"
+$ ELSE
+$ CC_PREF = "/INCLUDE=[]"
+$ LINK_OPT = LINK_OPT + ",[-.CONTRIB.VMS]VMS_LINK/OPTION"
+$ COPY SYS$LIBRARY:CTYPE.H *.*;
+$ EDIT/EDT CTYPE.H
+s/readonly// w
+exit
+$ ENDIF
+$ SET VERIFY
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') OS_VMS
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') vms_mail
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') MAIL
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') SMTP
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') RFC822
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') NNTP
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') nntpcvms
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') MISC
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') IMAP2
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def', -
+ L_SET=0) SM_VMS
+$!
+$ CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') MTEST
+$! CC/NOOPTIMIZE'CC_PREF'/define=("readonly"="ReadOnly"'cc_def') IMAPD
+$!
+$ LIBRARY/OBJECT/CREATE/INSERT C-CLIENT OS_VMS,vms_mail,MAIL,SMTP,RFC822,-
+ NNTP,nntpcvms,MISC,IMAP2,SM_VMS
+$!
+$ SET NOVERIFY
+$ LINK MTEST,IMAP2,MAIL,MISC,NNTP,nntpcvms,OS_VMS,RFC822,SMTP,-
+ SM_VMS,VMS_MAIL,SYS$INPUT:/OPTION'LINK_OPT'
+PSECT=_CTYPE_,NOWRT
+$! LINK IMAPD,imapd_vms,IMAP2,MAIL,MISC,NNTP,nntpcvms,OS_VMS,RFC822,SMTP,-
+$! SM_VMS,VMS_MAIL'LINK_OPT'
+$ EXIT