Installation guide for LISTSERV® 14.5 for OpenVMS


Copyright (c) L-Soft international, Inc., 1994-2006


Last update: 24 Feb 2006


For changes to LISTSERV from version 14.4 to 14.5, please view the LISTSERV 14.5 release notes at .


Please note that OpenVMS/VAX was no longer supported as of LISTSERV version 1.8e (14.0).


There are two versions of LISTSERV: A "Classic" version and a "Lite" version. For a description of the differences between LISTSERV Classic and LISTSERV Lite, please see the URL


LISTSERV Lite is user-supported, via the mailing list




Please do not send questions regarding LISTSERV Lite to L-Soft's normal support addresses.




Statement of Year 2000 Compliance for L-Soft's Products

Quick installation

Technical requirements

NJE mode vs TCP/IP mode

The LISTSERV account

The LISTSERV directory tree



Starting up LISTSERV

LISTSERV executables


IMPORTANT - License Activation Key

Downloading the kit and running VMSINSTAL

Registering the server

Automatic Registration for LISTSERV Lite Servers

List creation

Deleting a list

Note to customers migrating from VM

File server functions

Installing the LISTSERV web archive and administration interface

Failover facility

Upgrading your LISTSERV installation

Contacting L-Soft Support

Documentation and where to get more help


Statement of Year 2000 Compliance for L-Soft's Products


Please see .

Quick installation


We recommend that you take a few moments to read this installation guide before starting the installation of LISTSERV. The software is delivered in VMSINSTAL format, downloadable from FTP.LSOFT.COM as a ZIP file. To extract the VMSINSTAL savesets from the ZIP file, type:


     $ UNZIP = $directory:UNZIP.EXE

     $ UNZIP xxxxxx.ZIP


You can get a copy of UNZIP.EXE from L-Soft, or from . Then, to begin installation, login as SYSTEM and type:


     $ @SYS$UPDATE:VMSINSTAL LSV018 directory


For instance:




Note:  if the directory you specify does not exist, VMSINSTAL will prompt you to supply it.

Technical requirements


  1. LISTSERV 14.5 was built on OpenVMS V7.3 and may not work on earlier versions. Because L-Soft no longer has any working hardware running older versions of VMS, the lowest supported version is V7.3.
  2. OpenVMS (VAX): not supported. The last version of LISTSERV to support the VAX architecture was 1.8d (13.x). Following the retirement of a trusty, 14 year old MicroVAX, L-Soft no longer has access to any VAX hardware.
  3. LISTSERV 14.5 does not supports third-party TCP/IP stacks – Compaq TCP/IP Services for OpenVMS is required (UCX 4.x will also work). L-Soft believes that version 14.5 may still work with most third-party stacks, but these configurations are not supported.
  4. L-Soft international, Inc.'s, LSMTP mailer product, or MadGoat's Message Exchange (MX) version 4.1 or higher, or Innosoft International's PMDF(R) product, version 4.2 or higher. Please note that if you choose to use LSMTP you must also install either MX or PMDF(R) if you want local mail delivery to VMSMail mailboxes.


If your TCP/IP package includes an SMTP server, you may wonder why you need to install an additional mail package when you have no trouble sending mail to/from the Internet with what you have. The reason is that you need to interface LISTSERV to the mail package - when a message arrives for the LISTSERV address, or for one of the mailing lists, it must be passed to LISTSERV for processing. Reading the corresponding  MAIL.MAI files is not an acceptable solution, because important SMTP and RFC822 information is lost in the process of gatewaying the message to VMSmail. Thus, you need an interface that intercepts the message before it is passed to VMSmail, and delivers it to LISTSERV. Both LSMTP and Version 4.1 of MX include a built-in LISTSERV interface, and L-Soft has developed a  LISTSERV "channel program" for PMDF® version 4.2 and above. While you can of course use other mail packages if you develop a suitable LISTSERV interface for them, it is simpler to install a product for which the work has already been done and tested. This is the reason why L-Soft recommends the use of either LSMTP, PMDF® or MX. (Remember that LSMTP does not interface directly to VMSMail and you will need either PMDF® or MX in addition to LSMTP if you want local mail delivery to VMSMail mailboxes.)


For more information on L-Soft's LSMTP product, write to SALES@LSOFT.COM or call +1 (800) 399-5449 (from the US and Canada) or +1 (301) 731-0440 (outside US and Canada).  You can also find more information about LSMTP at .


For more information on PMDF®, write to Sales@INNOSOFT.COM or call +1 (818) 919-3600. MX is a free product, available via anonymous FTP from FTP.SPC.EDU and a number of other sites.




L-Soft international, Inc. ("L-Soft") does not warrant or make any representation whatsoever regarding either PMDF(R) or MX, the use thereof, or the results of such use, except insofar as their ability to successfully interface to the LISTSERV product is concerned. Under no condition shall L-Soft be liable for any indirect, consequential, or incidental damage arising from the use, the result of the use, or the inability to use such products. The products are warranted as per their respective vendor's licensing agreements.

NJE mode vs TCP/IP mode


LISTSERV can operate in either TCP/IP or NJE mode. In TCP/IP mode, LISTSERV communicates with other servers over the Internet, using the SMTP protocol. In NJE mode, LISTSERV communicates with other servers over BITNET, using the NJE protocol. It is possible to install support for both TCP/IP and NJE modes, but only one mode can be active at a time.


NJE mode requires the JNET(R) software package. JNET(R) is assumed to be installed if the JANSHR logical name is defined. JANSHR points to the JNET(R) shareable image. JNET(R) does not need to have been started for NJE support to be installed. However, the JNET(R) logical names should be defined before starting the installation.


TCP/IP mode requires one of several TCP/IP packages. Like JNET(R), TCP/IP packages are identified by looking for library or shareable image files. Similarly, your TCP/IP packages does not need to have been started for TCP/IP support to be installed, but the logical names do need to be defined. If multiple TCP/IP libraries are found, you will be required to choose one. You should choose the TCP/IP package that will be running when LISTSERV is running in TCP/IP mode. If you later decide to switch TCP/IP packages, you will need to reinstall LISTSERV.

The LISTSERV account


The LISTSERV account will be created by this installation if it does not already exist. LISTSERV is created with the following settings:



the UIC specified


the root device and directory specified.


Full Batch, No Network, No Local, No Dialup, and No Remote.


0 (no CPU Time limit)









Privileges (Authorized and Default)



The UIC of the LISTSERV account is used as the owner UIC for all files created under LISTSERV_ROOT. Thus, a user with the same UIC as LISTSERV will have full access to the LISTSERV files. Similarly, users in the same UIC group as LISTSERV will have group access to the LISTSERV files. It is recommended that LISTSERV be given a unique UIC in a group that is not populated by (nonprivileged) interactive users.


By default, LISTSERV's login directory is the root of the LISTSERV directory tree. This is not a requirement. The only requirement for LISTSERV's login directory is that LISTSERV needs to have write access and enough disk quota (or EXQUOTA privilege) to create its .LOG files.


The access restrictions on the LISTSERV account are recommended but not required. Full batch access is required, since the LISTSERV detached process is created by SUBMITting a batch job under a username of LISTSERV.


If disk quotas are enabled on the device containing the LISTSERV root directory, LISTSERV will either need the EXQUOTA privilege or a disk quota entry on that device.


In addition to the privileges listed above, you may need to enable some privileges for LISTSERV-NJE. The JNET® "Application Programmer's Reference" lists the privileges required for a program that uses the JNET® Application Program Interface. If you are planning to run LISTSERV in NJE mode, LISTSERV will also need the privileges listed. For versions 3.5 and 3.6 of JNET®, the only additional privilege required is WORLD, which is automatically added

when you select NJE support.

The LISTSERV directory tree


You will be required to specify the root of the LISTSERV directory tree. If the LISTSERV account already exists, it will default to the login directory of the LISTSERV account. LISTSERV refers to this directory tree by the concealed logical name LISTSERV_ROOT. The following directories are created by the installation:



where the .EXE and startup files are located.


where most data files are located.  Also, used as a work area.


Incoming and outgoing mail spool directory.


Temporary (scratch) file directory.



Message Exchange (MX) is a freeware electronic mail interface. Version 4.1 introduced some additional LISTSERV support. MX now includes a LISTSERV agent which communicates directly with the local LISTSERV server passing on commands. If MX V4.1 is installed and the LISTSERV support is installed but not enabled, the installation will attempt to enable the LISTSERV support. Like JNET(R), MX does not need to be started for the installation to determine that it is there, but the MX logical names do need to be defined.


Once the installation is finished, if MX is already running and you wish to start the LISTSERV agent, use the following commands:






     MCP> EXIT


This sequence of commands will not be needed to start the LISTSERV agent every time. If you enable the LISTSERV support in MX, the LISTSERV agent will be started every time that MX is started.


Note: You will need to reset the MX ROUTER process every time you create a new list.



PMDF® is a commercial electronic mail interface produced by Innosoft International, Inc. This installation provides an executable, PMDF_CHANNEL.EXE, to interface between PMDF® and LISTSERV. PMDF_CHANNEL.EXE uses the PMDF® Application Program Interface, which was introduced in version 4.2. The installation uses several of the PMDF® logical names, so, like JNET®, PMDF® does not need to be started, but the logical names need to be defined.


If PMDF® version 4.2 or higher is found, PMDF_CHANNEL.EXE will be copied to LISTSERV_ROOT:[PMDF] and LSV_CHANNEL_MASTER.COM will be copied to PMDF_COM:. LSV_CHANNEL_MASTER.COM is executed by PMDF(R) to handle the LISTSERV channel; it contains the line:


     $ run listserv_root:[pmdf]pmdf_channel


You will need to add the following lines to PMDF_ROOT:[TABLE]PMDF.CNF to activate the LISTSERV channel:


     lsv_channel logging



In addition, you will need to add the following aliases to PMDF_ROOT:[TABLE]ALIASES:


     listserv:                     listserv@LISTSERV

     owner-listserv:               owner-listserv@LISTSERV


and for each of the mailing lists:


     listname:                     listname@LISTSERV

     owner-listname:               owner-listname@LISTSERV

     listname-request:             listname-request@LISTSERV

     listname-server:              listname-server@LISTSERV

     listname-search-request:      listname-search-request@LISTSERV

     listname-signoff-request:     listname-signoff-request@LISTSERV

     listname-subscribe-request:   listname-subscribe-request@LISTSERV

     listname-unsubscribe-request: listname-unsubscribe-request@LISTSERV


You will need to add these eight aliases for each new mailing list you create.


The LISTSERV_ROOT:[PMDF] directory will be created if PMDF(R) support is installed. This directory should contain the following PMDF-related files:



used to link a new version of PMDF_CHANNEL.EXE.  Needs to be done each time you install a new version of PMDF®.


object code for LISTSERV interface routines


an options file specifying the PMDF® shareable image.


C source code for PMDF_CHANNEL.EXE.


LISTSERV channel program.


object code for PMDF_CHANNEL.EXE


Note: PMDF_CHANNEL.EXE will need to be relinked each time you install a new version of PMDF®. The following command will relink PMDF_CHANNEL.EXE:



Starting up LISTSERV


The LISTSERV installation creates SYS$STARTUP:LISTSERV_STARTUP.COM to start LISTSERV. It contains a hard coded reference to the root directory chosen during the installation. The other startup files determine the root directory by virtue of their own location. Thus, if you decide to move the LISTSERV root directory, you will need to modify SYS$STARTUP:LISTSERV_STARTUP to point to the new root. The following startup files are located in the root directory:



used to create the server process.


executed by the server process to set up its environment.


the server configuration utility.


lists the files to be installed at startup.


the real startup file.  It is executed by SYS$STARTUP:LISTSERV_STARTUP.COM.


send a STOP command to the server.


LISTSERV__STARTUP.COM will take a comma-separated list of options including LOGICALS, to define the logical names; INSTALL, to install the .EXEs; and START, to start the server process. If no options are specified, all three options are chosen.


GO.COM references a couple of files in LISTSERV_FILES_DIR (by default LISTSERV_ROOT:[MAIN]): SYSTEM_CONFIG.DAT and SITE_CONFIG.DAT. These files contain process-table logical names that are defined for the server process. SYSTEM_CONFIG.DAT contains the default values. SITE_CONFIG.DAT can be used to override the defaults. You should confine your modifications to SITE_CONFIG.DAT. If SITE_CONFIG.DAT has not been created at install time, the installation will create a new one based on some questions asked. The installation will ask you to specify a value for the following logical names:



the local node name. If you specify an Internet host name, LISTSERV-TCP/IP will be enabled. If you specify a BITNET nodeid (without the .BITNET), LISTSERV-NJE will be enabled.


Lists the possible host names for this system. If this is a BITNET site, you should include the nodeid and nodeid.BITNET forms.


Lists wildcarded host names that identify the "local" mail.


the Greenwich Mean Time offset for your location. The value should take the form +hhmm or -hhmm. For example, -0500 is the GMT offset for Eastern Standard time. Timezone abbreviations such as EST, CET, JST, etc. will also work.


the password required to create a list.


the password required for other privileged commands.


lists the addresses of people who manage LISTSERV on this system. If a user appears in the list, they are authorized to send privileged commands. IF a user appears in the list, but not after a "quiet:". they will be notified of server errors.


lists the addresses of users to be notified when the server starts.


your "organization name." This appears on the "From:" line of messages from LISTSERV, so you should try to keep it short to avoid a multi-line "From:."


LISTSERV_CONFIGURE.COM can be used to update the values stored in  SITE_CONFIG.DAT. If you make modifications while the LISTSERV process is running, you will need to restart it ($ LCMD STOP REBOOT) before the changes will take effect.


To start LISTSERV at system startup, you should add the following command to the system startup command procedure:




LISTSERV should be started after JNET® or your TCP/IP package depending upon whether you are running in NJE or TCP/IP mode. If have installed MX along with its LISTSERV support, you will need to add the following commands to the system startup command procedure:






This sequence of commands should replace the "@SYS$STARTUP:MX_STARTUP" that started MX. Note: if you are running LISTSERV in NJE mode and the server reports an error starting the JNET(R) interface, make sure it has the necessary privileges. If you had to abort it with STOP/ID or Ctrl-Y, you may have to issue the following command:



LISTSERV executables


The LISTSERV installation is responsible for providing three executables: LSV.EXE, LSV_MAILIN.EXE, and LCMD.EXE. LSV.EXE is the program that is run by the server process. LSV_MAILIN.EXE is a standalone incoming mail interface for LISTSERV. It allows you to route mail to LISTSERV from DCL level. By default, LSV_MAILIN.EXE is not installed with privileges. If you plan to use LSV_MAILIN.EXE, it will either need to be installed with or run from an account that has SYSLCK and SYSPRV.


LCMD.EXE is used to send commands directly to the local server (instead using mail or going going through the NJE interface). Commands sent via LCMD are executed ahead of commands received via mail or NJE files; this can be particularly useful when the server is backlogged. LCMD.EXE requires SYSPRV and SYSLCK. However, if you wish to allow general users to use LCMD, you can install it with those privileges. LCMD.EXE also needs to be able to create files within LISTSERV_SPOOL_DIR. The default LISTSERV_SPOOL_DIR, LISTSERV_ROOT:[SPOOL] is created with a SYSTEM protection of RWE, allowing users with SYSPRV to create files within it. If you relocate LISTSERV_SPOOL_DIR, you will need to keep SYSTEM:RWE protection on the directory file.


LCMD must be defined as a DCL verb. If you choose not to add LCMD to DCLTABLES, you will need to add it to your process command table with the following command:




LISTSERV_ROOT:[000000]LCMD.CLD is the command definition file for the LCMD command. Consult the SET COMMAND documentation for more information on DCL verbs and command tables.


In addition to adding LCMD to DCLTABLES, the installation will add the help for LCMD to the help library of your choice. The installation displays the names of the help libraries accessed by the DCL HELP command: SYS$HELP:HELPLIB.HLB, HELP_LIBRARY, HELP_LIBRARY_1, etc. The help for LCMD will be available from DCL ($ HELP LCMD) if you choose one of these libraries. The help text for LCMD, LISTSERV_ROOT:[000000]LCMD.HLP, is provided if you later decide to add or relocate the LCMD help.



You will need to make some modifications to JANTIDY.COM, if you use it to restart JNET(R) every night. JANTIDY.COM needs to be modified to stop and restart the LISTSERV process. The command to stop the LISTSERV process:




needs to be placed before the "jcp shutdown". The command to restart the LISTSERV process is:




It needs to be placed after the "@janstart warm".

IMPORTANT - License Activation Key


Before you can start up LISTSERV, you will need to install a License Activation Key (LAK) for 'LISTSERV-VMS-xxx' (xxx = AXP, or a wildcard for architecture-independent licenses). LAKs are similar to PAKs, but are installed differently. The reason we do not use PAKs is that we support LISTSERV on IBM® mainframes and unix® and Microsoft Windows® systems, where PAKs are not available. In order to offer the same range of services on all systems, we had to develop our own "license key" scheme. Using PAKs for OpenVMS(tm) and LAKs for other system would have required us to develop two parallel authorization schemes, and would also complicate the task of issuing license keys to customers. Since LISTSERV is a server and typically runs on a single cluster member, there was no technical advantage to the use of PAKs, other than having all the licensing information in a single place.


Just like PAKs, LAKs are not included in the VMSINSTAL kit and must be installed separately. However, since the LAK manager is part of LISTSERV, you must install LISTSERV (LSV018) before you can install the LAK. Once LISTSERV is installed, run:




and follow the instructions in the License Registration Form that came with your media. For evaluation kits, the License Registration Form is the file called LICENSE.MERGE in the FTP directory where you found the AXP.ZIP file. That file is also included in the ZIP file itself.

Downloading the kit and running VMSINSTAL


Here are more verbose instructions on downloading the kit containing the savesets and running VMSINSTAL against them.


Log in as SYSTEM, or as an account with system-level privileges.  Next, create a scratch directory, and make it the default.  (Do not attempt to install LISTSERV into the same directory from which you do the installation, as this is destined to fail.)  For the purpose of example, we will assume that you are creating the scratch directory DKA100:[LISTSERV-SCRATCH].


$ create /directory dka100:[listserv-scratch]

$ set default dka100:[listserv-scratch]


Next, download the appropriate kit from into DKA100:[LISTSERV-SCRATCH] .  This will be either AXP.ZIP or VAX.ZIP, depending on your hardware.  Then, unzip the file (for our example we will assume that you are installing on Alpha hardware, and that you have already downloaded and installed UNZIP.EXE).


$ unzip


Finally, run VMSINSTAL against the savesets.


$ @sys$update:vmsinstal lsv018 dka100:[listserv-scratch]


This results in the following conversation.  Output of VMSINSTAL is displayed in fixed-width type. Our responses are shown in <bold sans-serif type>, and comments that are not part of the installation program are shown in plain sans-serif type.


        OpenVMS AXP Software Product Installation Procedure V7.3-1



It is 16-JUL-2003 at 10:07.


Enter a question mark (?) at any time for help.


* Are you satisfied with the backup of your system disk [YES]? <return>



The following products will be processed:


  LSV V1.8



        Beginning installation of LSV V1.8 at 10:12


%VMSINSTAL-I-RESTORE, Restoring product save set A ...


                       LISTSERV(R) for VMS, Version 1.8e

                   Copyright L-Soft international, 1986-2002


* Do you want to purge files replaced by this installation [YES]? <return>


%LSV-I-NONJE, Jnet was not found

-LSV-I-NONJE, LISTSERV-NJE support will not be installed



TCP/IP Libraries have been found for the following products:


         1. DEC TCP/IP Services for VMS (UCX)



%LSV-I-TCPIP, LISTSERV TCP/IP support will be installed.



        LISTSERV requires the creation of the LISTSERV account.  The files

        provided by this installation should be stored under the login

        directory of this account.  These files may be relocated, if desired.

        Consult the installation guide for more information.



Looking for the LISTSERV account ...


* What UIC do you want to use for the LISTSERV account [[100,100]]: <return>

* Where should the LISTSERV root directory be located [SYS$SYSDEVICE:[LISTSERV]]: <return>


        If disk quotas are enabled on the LISTSERV device, you will either

        need to set a disk quota entry for LISTSERV or grant the EXQUOTA

        privilege to LISTSERV.


* Do you wish to grant EXQUOTA to LISTSERV [YES]? <return>


%VMSINSTAL-I-ACCOUNT, This installation creates an ACCOUNT named LISTSERV.

%UAF-I-ADDMSG, user record successfully added

%UAF-I-RDBADDMSGU, identifier LISTSERV value [000100,000100] added to rights database

%VMSINSTAL-I-ACCOUNT, This installation updates an ACCOUNT named LISTSERV.

%UAF-I-MDFYMSG, user record(s) updated

%VMSINSTAL-I-ACCOUNT, This installation updates an ACCOUNT named LISTSERV.

%UAF-I-MDFYMSG, user record(s) updated

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  SYS$SYSDEVICE:[LISTSERV].

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  SYS$SYSDEVICE:[LISTSERV.MAIN].

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  SYS$SYSDEVICE:[LISTSERV.TMP].

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  SYS$SYSDEVICE:[LISTSERV.SPOOL].

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  SYS$SYSDEVICE:[LISTSERV.LOG].


        It appears that MX is not installed on this system.  MX (Message

        Exchange) is a freeware electronic mail interface.  MX version 4.1

        now includes an agent which directly interfaces with LISTSERV.

        Consult the installation guide if you later decide to install MX.



        Building SITE_CONFIG.DAT.


        SYSTEM_CONFIG.DAT and SITE_CONFIG.DAT are read when the LISTSERV

        process is created.  They contain logical name definitions that are

        used to control the operation of LISTSERV.  SYSTEM_CONFIG.DAT contains

        defaults.  You should limit your modifications to SITE_CONFIG.DAT.


        If you wish to modify the contents of SITE_CONFIG.DAT once the

        installation is finished, you should use the configuration utility

        provided.  To execute this utility type:


                $ @LISTSERV_ROOT:[000000]LISTSERV_CONFIGURE



        The NODE logical name should contain the local host name.  NODE is

        used to control whether LISTSERV operates in TCP/IP or NJE mode.  If

        NODE is an Internet host name, LISTSERV-TCP/IP will be enabled.  If

        NODE is a BITNET nodeid, LISTSERV-NJE will be enabled.


* Enter the LISTSERV node name [VMS001]: LISTSERV.EXAMPLE.COM<return>


Note:  The node name suggested by the installation program is the VMS system name.  Under the assumption that you are NOT installing into an NJE (BITNET) environment, you should NOT take the default, but rather should enter the fully-qualified DNS hostname you wish for LISTSERV to identify itself with.


If you take the default and you are not operating in an NJE environment, a message will be displayed telling you that you can't do that, and you will be presented with the question again.


        The MYDOMAIN logical name should list all possible variants of the

        local host name.  If this is a BITNET site, you should list both the

        nodeid and nodeid.BITNET forms.  For example, the following is the

        MYDOMAIN logical for the SEGATE system:




* Enter the MYDOMAIN value for this system [LISTSERV.EXAMPLE.COM]: <return>


        The LOCAL logical name is a list of one or more wildcarded strings

        that identify hostnames that should be handled locally.


* Enter the LOCAL value for this system [*.EXAMPLE.COM]: <return>


        The TZONE logical name should contain the local time offset from

        Greenwich Mean Time or one of the standard timezone abbreviations.


* Enter the TZONE value for this system [EST]: <return>


Note:  TZONE will default to whatever the VMS system time zone is set to.


        The CREATEPW logical name should contain the password required to

        create a list.


* Enter CREATEPW value for this system [XXXXXXXX]: LUXFIAT<return>


        The STOREPW logical name should contain the password required for

        other privileged commands.


        Note:   At present, there are no other privileged commands.


Note:  STOREPW should simply be set to the same value as CREATEPW.


* Enter STOREPW value for this system [XXXXXXXX]: LUXFIAT<return>


        The POSTMASTER logical name should list the addresses of the users

        responsible for managing LISTSERV on this system.  POSTMASTER is used

        to identify users who are authorized to send privileged commands to

        LISTSERV and to identify the users who should notified in case of

        errors.  Addresses that appear after a "quiet:" keyword are authorized

        to send privileged commands but are not notified of errors.  For

        example, a POSTMASTER value of


                JOE@XYZ.EDU quiet: JACK@XYZ.EDU JIM@XYZ.EDU


        authorizes Joe, Jack, and Jim to send privileged commands, but only

        Joe will be notified of LISTSERV errors.


* Enter the POSTMASTER value for this system [LISTMGR@LISTSERV.EXAMPLE.COM]: <return>


        The STARTMSG logical name should list the addresses of users who

        should be notified when LISTSERV starts.  Enter NONE if you do not

        wish any notification.


* Enter the STARTMSG value for this system [LISTMGR@LISTSERV.EXAMPLE.COM]: NONE<return>


        The MYORG logical name, the short organization name, appears on the

        "From:" line of messages sent from LISTSERV.  It should be kept

        reasonably short to avoid causing the "From:" to extend over multiple



* Enter the MYORG value for this system [LISTSERV.EXAMPLE.COM]: <return>


      ** TCP/IP mode only **


        LISTSERV can be configured to deliver mail in either synchronous or

        asynchronous mode.  In synchronous mode, mail is forwarded by the

        LISTSERV server process during the course of its duties.  In

        asynchronous mode, mail is delivered by one or more SMTP worker

        processes.  Each worker process is assigned a host to which it will

        connect and forward mail messages.


* Do you wish to use asynchronous mode [YES]? <return>


        We recommend that you create one worker process per 10,000-50,000

        mail messages delivered per day.


* How many worker processes do you wish to create: 1 <return>


%VMSINSTAL-I-ACCOUNT, This installation updates an ACCOUNT named LISTSERV.

%UAF-I-MDFYMSG, user record(s) updated

* Enter the host name for worker #  [LISTSERV.EXAMPLE.COM]: <return>


        LCMD.EXE is used to send commands to the LISTSERV process.  If you

        want to allow general users to use LCMD, it will need to be installed

        with SYSPRV and SYSLCK.


        Note:   Installing LCMD with SYSPRV and SYSLCK will NOT allow

                unauthorized users to send privileged commands.


* Do you want to install LCMD with SYSPRV and SYSLCK [YES]? <return>

* Do you want to add LCMD to DCLTABLES [YES]? <return>

* Do you want to add the LCMD help to a library [YES]? <return>


        There are several help libraries in which the LCMD help can be placed.

        Some of them are:




* Where do you wish to put the LCMD help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: <return>


        No more questions will be asked during the installation.  The

        remaining steps will take between 5 and 30 minutes depending upon

        your CPU, installation media, etc.


%VMSINSTAL-I-RESTORE, Restoring product save set B ...


Linking LSV.EXE ...


Linking LSV_MAILIN.EXE ...


Linking LCMD.EXE ...




%VMSINSTAL-I-RESTORE, Restoring product save set D ...


        To start LISTSERV at system startup, you will need to add the following

        command to the system startup command procedure:




        LISTSERV should be started after Jnet or your TCP/IP package

        depending upon whether you are running in NJE or TCP/IP mode.


        If this is a new installation, you will need to register a License

        Activation Key (LAK) before LISTSERV will start.  Your LAK should

        be contained in a file called LICENSE.MERGE.  To install the LAK,

        define the LISTSERV logical names with:




        and then follow the instructions found in LICENSE.MERGE.  For more

        information on LAKs, consult the installation guide.

%VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...


        Installation of LSV V1.8 completed at 10:29


    Adding history entry in VMI$ROOT:[SYSUPD]VMSINSTAL.HISTORY


    Creating installation data file: VMI$ROOT:[SYSUPD]LSV018.VMI_DATA



        VMSINSTAL procedure done at 10:29




Registering your LISTSERV Classic server


NOTE: This section does not apply to evaluation kits or to LISTSERV Lite or Shareware kits. Evaluation copies of LISTSERV should not be registered because they are (presumably) temporary servers running test lists, whose existence should not be broadcast. LISTSERV Lite and Shareware kits are automatically registered via a different process.


Once the server is ready for production use (that is, once you have purchased and installed a permanent License Activation Key, and once you have arranged for LISTSERV to be started automatically when the system boots), you should consider registering it with L-Soft. Registering the server is necessary to broadcast its existence to the other LISTSERV servers and to receive automatic, periodic updates of LISTSERV's networking tables. Once you have registered, your server will also be sent periodic updates about the public lists hosted by other LISTSERV sites, and, similarly, other LISTSERV sites will receive information about the public lists you are hosting. Registration also makes it possible to assign the most efficient DISTRIBUTE routing path for your server.


Please note the following requirements for registration:


L-Soft registers only sites that have unlimited (UNITS=0) licenses or sites licensed for DISTRIBUTE-only use, which are running version 1.8d or higher of LISTSERV Classic or LISTSERV Classic HPO. (Versions prior to 1.8d are not Y2K compliant and therefore sites seeking new LISTSERV registrations must be running the release version of 1.8d or later.)


In order to qualify for registration, a LISTSERV site must also:


·         Be running in NETWORKED runmode. If you have RUNMODE=STANDALONE or RUNMODE=TABLELESS in SITE.CFG, you must remove the RUNMODE line (or change it to RUNMODE=NETWORKED) and stop and restart the server before registering.

·         Be readily accessible via the Internet by e-mail from outside users.

·         Have a name that is unlikely to change any time soon. For instance, LISTSERV.EXAMPLE.ORG, LISTS.EXAMPLE.EDU, and LSV.EXAMPLE.COM are completely acceptable (although we strongly suggest using "LISTSERV" rather than "LISTS" or "LSV", simply because that is what most users are familiar with), whereas something like A8B703A.CC.EXAMPLE.EDU is not. If you are running a test server that you plan to rename later when it goes into production, do not register the server until it is running under its final name. Note also that a hostname containing "LISTSERVE", "LISTSERVER", or any other misspelling of "LISTSERV" is not acceptable.

·         Have an A or MX record in DNS corresponding to the value you place in the NODE section (an A record is recommended at minimum).


L-Soft does not register sites running evaluation kits, LISTSERV Lite, or LISTSERV shareware. Requests to register such sites will be discarded.


L-Soft cannot register intranet sites since by definition such sites are not accessible via the Internet. Registration requires that your LISTSERV site be readily accessible via e-mail by outside users.


If your LISTSERV Classic site does not meet the above criteria, there are other options for keeping your LISTSERV networking tables current (which is the most important reason for registering the software). See for more information.


You may submit an online registration form at . If there are special considerations for your site that are not covered by the standard form, or if you are unable to access the web site, you can contact to obtain a registration form. When contacting the site registrar, please tell us what operating system LISTSERV is running under so that we can send you the proper form.

Automatic Registration for LISTSERV Lite Servers


LISTSERV Lite servers are registered automatically when you start the software for the first time. This auto-registration is not optional for Free Edition servers, but may be disabled for non-Free Edition Lite servers by specifying STANDALONE runmode (see "RUNMODE=" in Appendix C of the Site Manager's Operations Guide).


The auto-registration allows you to take part in the global List of Lists and CataList services maintained by L-Soft. Registrations are verified on a regular basis by a central L-Soft server, which sends out several informational commands that return non-privileged information about your server (anyone can issue these commands). Since these registrations are maintained by regular communication with your server, please note that, should you decommission the server, registration verifications will continue to be mailed to your server for several days until the central server decides that your server is actually gone, and not simply unable to receive mail for some reason. Please note carefully that it is not possible for L-Soft to stop these registration queries manually even if you write to us and tell us that the server has been shut down permanently. They will stop after several days without a response.

List creation


In order to create a new list, you must:


Prepare a "list header", for instance using the sample provided below. You can also get the header of an existing (L-Soft) LISTSERV list and use it as sample.

Fill in the PW=CCCCCCCC on the first line with the "CREATEPW" you chose when configuring LISTSERV. The PW=XXXXXXX line at the end defines the password you want to assign to your list. This is the password that the list owner will have to supply with sending commands via mail, if you select "Validate= Yes". Alternatively, you can select "Validate= Yes,Confirm" to use the "OK" mechanism, which does not require any password.

Mail the resulting file to the LISTSERV address, from a username defined as "postmaster" in the LISTSERV configuration. For instance:


     $ MAIL

     MAIL> send newlist.create

     To:     mx%""





If you have questions about list creation, keywords, list management and other high-level or system-independent LISTSERV topics, the best place to ask them is the LSTOWN-L list, an open forum of LISTSERV list owners.


Please note that, for security reasons, LISTSERV will not create archive directories automatically. You must create the directory and set the protections before storing the list. LISTSERV will need RWED access to the directory; since LISTSERV runs with SYSPRV, it is sufficient to have S:RWED protection on the directory.


For assistance with problems specific to evaluation kits, join the LSTSRV-E list or contact Support@LSOFT.COM for a prompt reply. Please don't forget to tell us which mail system (LSMTP, PMDF® or MX), transport (JNET®, MultiNet®, etc) and which version of OpenVMS you are running!


------------------------------- Cut here --------------------------------



* Title of sample LISTSERV list


* Review= Public         Subscription= Open       Send= Public

* Notify= Yes            Reply-to= List,Respect   Validate= No

* Notebook= Yes,FILES:[SAMPLE],Monthly,Public


* Owner=



------------------------------- Cut here --------------------------------


(If you use this sample, be sure to change "FILES:[SAMPLE]" in the Notebook= keyword specification to a directory that actually exists on your machine. Also be sure to put a valid e-mail address in the Owner= keyword.)


Once you have constructed a list header file, and sent it to your LISTSERV, you need to instruct your mail system to route mail for that new list to the LISTSERV interface. Refer to the MX and PMDF® sections of the present document for more information about this.

Deleting a list


While there is no LISTSERV command to delete a list, the procedure is quite simple. Log in to the listserv account (or any other account with administrative privileges in LISTSERV's directories), copy or archive any files (list archives, etc.) that you want to keep to a safe place, and then use the VMS 'DELETE' command to delete the list file. For instance, if you are deleting a list called 'TEST.LIST', simply 'DELETE TEST.LIST;*' from LISTSERV's 'MAIN' directory. Optionally you may also remove the PMDF aliases, but once the '.LIST' file is gone, it has been deleted as far as LISTSERV is concerned.

Note to customers migrating from VM


VM lists can be migrated to OpenVMS with a much simpler procedure:


A. Stop LISTSERV on VMS, and go to its [MAIN] directory.


B. FTP a copy of the xxxx.LIST file from the VM system, in ASCII mode. Note that you must grab the file as it appears on the VM server's "A-disk". If you send a REVIEW command to the VM LISTSERV, you may be sent a file called xxxx.LIST, but it is not suitable for migration: among other things, it will not list subscribers with the "conceal" flag.


C. If the list is archived, edit the xxxx.LIST file (which is an ordinary text file) to insert a suitable directory name in the "Notebook=" keyword (see example below). Do not modify the lines with subscriber names! The only lines you may edit at this stage are the ones starting with an asterisk.


D. Start LISTSERV on VMS. It will issue a warning about incorrect list format, and automatically convert it to the proper RMS attributes.


You can also FTP the archive files (xxxx.LOGyymm) directly to the directory selected in point C.

File server functions


There are three file server systems currently in use or under development for LISTSERV:


·         The VM (mainframe) version of LISTSERV continues to support the "traditional" file server system. While it is very powerful, this file server system dates back to 1986 and suffers from a few annoying limitations. In addition, it is written in a non portable language. This will be replaced eventually with the "new" file server system, currently under development.


·         The non-VM versions of LISTSERV 1.8d and later enhance further the new file server system introduced in non-VM 1.8c, which includes most of the functionality of the "traditional" file system. Notably, GIVE and file "packages" are now available. Most end user commands will continue to work as before. However, there is no guarantee that the internal data files manipulated by the file server functions will remain as before. Note that SITE.CATALOG files from versions 1.8a through 1.8c are still supported and will not need to be changed in order to work with 1.8d and later.


·         The non-VM versions of LISTSERV 1.8a and 1.8b supported a "temporary" file server system, to provide an interim solution while the new system was being developed. This temporary system only supports a subset of the functions of the traditional system. This system is no longer supported by L-Soft as it has been superseded by the new non-VM file server referenced above.


In general, the three systems are compatible, with the understanding that the temporary system does not include all the possible options. However, the mechanism for registering files (defining them to the file server system) is different. With the traditional (VM) system, you create files called "listname FILELIST", which contain definitions for all the files belonging to a particular archive. With the temporary system, you store these definitions in a file called SITE.CATALOG, in the LISTSERV "home" directory (by default, this directory is LISTSERV_ROOT:[MAIN]). You create files called listname.CATALOG and register them in SITE.CATALOG in order to provide access to them. Please be aware that there are major differences between the way files are registered on VM versus other systems, as many list owners use (or are used to) a VM server with different conventions.


To register a new file to the server, you add a line to the SITE.CATALOG file in the LISTSERV_ROOT:[MAIN]directory (create SITE.CATALOG if it does not exist; L-Soft does not ship it with the software). Do not modify the SYSTEM.CATALOG file, as it is part of LISTSERV and may be replaced when you apply software updates; however, site.catalog is formatted identically to system.catalog. Here is what a typical SITE.CATALOG entry for a file looks like:


MY.FILE       MY.FILE.FILES:[XYZ]      ALL JOE@XYZ.COM              


The first item, MY.FILE, is the name by which the file is known to LISTSERV. That is, the users will use GET MY.FILE to order a copy of that file. The name is case-insensitive and must contain one and only one period (in other words, all files served by LISTSERV must have a file name and file extension separated by a "." character). It is recommended that this identifier consist of a filename of no more than 13 characters and a file extension of no more than 15 characters.  For instance




will work, but the display of this name in the output of an INDEX command will look like this:


* filename      filetype        GET PUT -fm lrecl nrecs date       time

* --------      --------        --- --- --- ----- ----- ---------- --------

  TEST          CATALOG         ALL OWN V      73     6 1998-02-18 11:18:31


  PEERS         NAMES           ALL LMC V     108  1681 1998-01-13 20:01:20


The second item, "MY.FILE.FILES:[XYZ]", is the name LISTSERV will use for the actual disk file. Note that the directory must be created before you register the file. For security reasons, LISTSERV will not create the directory (or set the protections) for you. This item should be typed in lower case.


Note: if you are upgrading from LISTSERV 1.8a or 1.8b to 1.8e, the preceding represents a change in the format of SITE.CATALOG entries. For compatibility, the old style entries are also acceptable.


Note that if you are not creating special subdirectories for file archives and they will reside in the LISTSERV_ROOT:[MAIN] directory, you can simplify the SITE.CATALOG entry by using "A" instead of the full path, e.g.:




If you are running a large production server, however, this is not advised; it is much better to create separate directories for each list and put archive files belonging to each list in those directories rather than to store them all in the LISTSERV_ROOT:[MAIN] directory.


The third and fourth items are "File Access Codes" (FACs). The first is for read accesses, and the second for writing. The following file access codes are available:


·         ALL: universal access.

·         CTL: LISTSERV administrator only.

·         PRIVATE(xxx): only members of the xxx list have access.

·         OWNER(xxx): only the owners of the xxx list have access.

·         SERVICE(xxx): only users in the service area of the xxx list have access.

·         NOTEBOOK(xxx): same access as the archives of the xxx list.

·         user@host: the user in question is granted access.


Except for ALL and CTL, which must occur on their own, you can specify multiple file access code entries, separated by a comma with no intervening space. For instance:




defines a file that Joe, Jack and the subscribers of the XYZ-L list can order via the GET command, but that only the LISTSERV administrator can update.


NOTE CAREFULLY that you cannot use the VM-specific FAC codes PRV or OWN under the unix version of LISTSERV.  You MUST use the PRIVATE(xxx) or OWNER(xxx) FACs from the list above (and you MUST specify the listname) or the outcome will not be what you expect.


IMPORTANT: LISTSERV does not set file protection attributes, ACLs, etc. These attributes apply to LISTSERV commands (GET, PUT, INDEX) only; it is your responsibility to protect the actual VMS file by setting the owner UIC, protection and DEFAULT ACL on the directory in which it is created. Please keep in mind that the LISTSERV username must be able to read the files it is to distribute to people, and it must have read/write access to files you want people to be able to update via PUT commands.


For more information on running the LISTSERV file archive server on your machine, including how to set up sub-catalogs, please consult chapter 8 of the Site Manager's Operations Manual for LISTSERV, available from L-Soft's ftp and World Wide Web sites.

Installing the LISTSERV web archive and administration interface


Note:  Under OpenVMS, L-Soft cannot guarantee future compatibility between its web archive/administration interface and web server software other than the Compaq Secure Web Server (CSWS).  CSWS is an Apache-based web server provided by Compaq at (as of 23 May 2002).


  1. Copy the WA.EXE executable from LISTSERV's MAIN directory to the CGI script directory for your web server. You can rename WA.EXE to something else, but a short name will help keep the HTML documents small!  WA.EXE must have ACLs set such that it can be executed by whatever userid the web server is running under (and in turn, that userid must have read access to the directories under which LISTSERV will keep web archive notebooks).


  1. Create a subdirectory on your web server to contain the various files LISTSERV will be creating. You should not use your main directory as LISTSERV will create quite a few files! The suggested name is 'archives'.


  1. Define the systemwide logical LISTSERV_WWW_ARCHIVE_PATH to point to the directory you just created, and LISTSERV_WWW_ARCHIVE_URL with the URL to the directory in question (preferably relative). You may also need to define the systemwide logical LISTSERV_TCPGUI_IPADDR containing the IP address of the web server.


  1. Modify LISTSERV's configuration to add two variables, as follows:



is the relative URL that leads to the CGI script you have just installed. Typically this will be something like '/htbin/wa.exe'. This is a URL, not an OS path name.


is the full path name to the directory you created in step 2.


For each list that you want accessible through the web interface, you must create a subdirectory in the directory you created in step 3, named like the list. For instance, if you create 'archives/xyz-l', the list XYZ-L will be accessible through the interface. Note that only lists with public archives are ever made accessible, for security reasons.


Finally, reboot LISTSERV. It should create a file accessible with the URL http://localhost/archives/index.html, and from there you should be able to access all the postings.


Complete information on installing the Web Archive Interface is contained in chatper 5 of the Site Manager's Operations Manual.

Failover facility


LISTSERV for VMS now includes "failover" functionality. The failover facility allows you to build a fully-redundant LISTSERV configuration based on an OpenVMS cluster with shared mass storage (CI, SCSI cluster, etc.). Failover can take place among any number of suitably-configured nodes. Following a failover, the service will automatically migrate back to the designated primary when it is returned to operation. A priority scheme allows you to establish a hierarchy of failover nodes from most to least preferred (nodes with the same priority are treated as peers).


The failover facility requires a special add-on license on top of your base LISTSERV license. However, only one base LISTSERV license is required, regardless of the number of failover nodes. In other words, the standby nodes do not consume a license until they take over from the primary, at which point the primary has relinquished its use of the base license.


For more information on the LISTSERV for VMS failover facility, please download our white paper "Implementing the LISTSERV failover facility" from .

Upgrading your LISTSERV installation


L-Soft recommends reading the release notes (available from ) before proceeding with the upgrade.



IMPORTANT: LISTSERV 14.5 requires a version 14.5 LAK!


You must obtain and install a LISTSERV version 14.5 product LAK prior to upgrading your server, or LISTSERV will not start after the upgrade.


IMPORTANT: Install your LISTSERV 14.5 product LAK before upgrading! A valid product LAK (License Activation Key) with "REL=14.5" must be installed before upgrading, or LISTSERV will not start after the upgrade.


If you have not received a LISTSERV 14.5 product LAK, please contact your sales representative or SALES@LSOFT.COM before upgrading!


To find out if you can upgrade to LISTSERV 14.5 with your current license key, please issue a SHOW LICENSE command to LISTSERV and examine the response. It will be similar to this:


License type:      Permanent

Expiration date:   None - perpetual license

Maintenance until: 31 May 2006, serial number MNT-XYZ-1

Capacity:          Unlimited

Version:           14.5

Serial number:     XYZ-1

Build date:        15 Feb 2006


Your license key will be valid for the 14.5 upgrade if your current LAK is for version 14.5 or higher.


The initial 14.5 release will not require a current maintenance LAK to activate it (although the maintenance LAK will of course be required if you use LISTSERV features that require current maintenance). Later fixes or "level-set" releases WILL require a current maintenance LAK to activate.



If you have received a new LAK but not yet installed it, first, install the new LAK onto your old installation, following the instructions that come with the LAK.  Send LISTSERV a "SHOW LICENSE" command after restarting LISTSERV to ensure that the new LAK has been installed properly.


Your 14.5 license key will work with older versions of the product, so it may be installed on an older version without causing a problem. Please contact your sales representative or write to SALES@LSOFT.COM if you did not receive your new license key.




The upgrade kits for OpenVMS are found in .  Download the appropriate kit for the AXP architecture you are running on.


L-Soft recommends making a backup of your entire LISTSERV directory tree before updating the code.


Stop LISTSERV, then run VMSINSTAL on the new kit. The kit will automatically update your previous installation.


Contact L-Soft technical support (see the options below for contacting support) if you have any question regarding the upgrade procedure. Please note that technical support is unable to assist with licensing issues; you should contact the sales group in that case.

Contacting L-Soft Support


At we've attempted to document a few of the most frequently-asked questions pertaining to installing and running a LISTSERV server. Before writing to our support department for problem resolution, please take a moment to read through the online FAQ and see if your problem is answered there.


L-Soft recognizes that the FAQ pages are not going to solve every problem you may face. We are always willing to help diagnose and correct problems you may be having with your registered LISTSERV® server. To that end, please note the following when you write to L-Soft with a problem report:


1.       Please make the subject line of your report indicative of the problem, and in particular the product with which you are having a problem. A subject like "Problem posting to moderated LISTSERV list" is much more useful to us than "Help me please!"


2.       Include any appropriate log entries. LISTSERV keeps logs of everything it does, and without a log excerpt it is often impossible to determine what caused a given error.


3.       Always send a copy of your SITE_CONFIG.DAT file (with the passwords XXX'ed out).


4.       Send along anything else that you think might be helpful in diagnosing the problem.


If you are running an evaluation version of our software, please join the evaluation users' list,

LSTSRV-E@PEACH.EASE.LSOFT.COM, and send your trouble reports there.


If you are running LISTSERV Lite, please join the LISTSERV-LITE mailing list,

LISTSERV-LITE@PEACH.EASE.LSOFT.COM, and send your trouble reports there.


If your LISTSERV Classic server is registered and has paid-up maintenance, you may send problems to SUPPORT@LSOFT.COM for a quick reply.

Documentation and where to get more help


You should be aware that there are several documentation files included with LISTSERV. They are located in the LISTSERV_ROOT:[MAIN] directory by default and include the following:


listserv.memo          A General Introduction to LISTSERV

listpres.memo          A presentation of LISTSERV for the general user

listownr.memo          A List Owner's Manual for LISTSERV

listkeyw.memo          A manual of the various list header keywords and what they do

listall.refcard      A quick reference card for LISTSERV commands


The List Owner's Manual can also be viewed on the World Wide Web at the URL


The Site Manager's Operations Manual (much more detailed than this installation guide) can be viewed at the URL


Additionally, the following files are available for downloading from L-Soft's anonymous ftp site, :


LISTSERV for the non-technical user


   NSC93US.PS       PostScript(tm) version formatted for 8-1/2" x 11" paper

   NSC93A4.PS       PostScript(tm) version formatted for A4 paper

   NSC93.MEMO      Plain text version


List Owner's Manual for LISTSERV


   OWNER.*          The List Owner's Manual is available in several popular word processing formats, Adobe PDF format, and PostScript format (both US and A4 versions of the PostScript file are available).


Site Manager's Operations Manual for LISTSERV


   SITEMGR.*               The Site Manager's Operations Manual is available in several popular word processing formats, Adobe PDF format, and PostScript format (both US and A4 versions of the PostScript file are available).


General User's Manual for LISTSERV


   USER.*                     The General User's Manual is available in several popular word processing formats, Adobe PDF format, and PostScript format (both US and A4 versions of the PostScript file are available).


There are several mailing lists dedicated to the support of LISTSERV.



for LISTSERV maintainers and interested list owners




for LISTSERV list owners




for LISTSERV evaluation kit users 




for LSMTP users




for LISTSERV Lite users 




for third-party developers using features documented in the Developer's Guide to LISTSERV 


To subscribe to any of these lists, send mail to LISTSERV@PEACH.EASE.LSOFT.COM with the following command in the body of the message:


SUBSCRIBE listname Your Name



LISTSERV is a registered trademark licensed to L-Soft international, Inc.

LSMTP is a trademark of L-Soft international, Inc.

EASE and CATALIST are service marks of L-Soft international, Inc.

L-SOFT is a trademark of L-Soft international.

MultiNet is a trademark of TGV, Inc.

JNET is a registered trademark of Wingra Technologies, Inc.

PMDF is a registered trademark of Innosoft International, Inc.

Unix is a registered trademark of X/Open Company, Limited.

IBM is a registered trademark of International Business Machines Corporation.

Alpha AXP, OpenVMS, VAX and VMS are trademarks of Hewlett-Packard Corporation.

All other trademarks, both marked and not marked, are the property of their respective owners.