info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS For VMS


From: Dale Miller
Subject: Re: CVS For VMS
Date: Fri, 06 Jul 2001 14:34:50 -0500

"Derek R. Price" wrote:

> Bill Whiting wrote:
>
> > Rex,
> > I would like a copy of the source, or patches for VMS.
> >
> > //Bill
> >
> > address@hidden wrote:
> > >
> > > >Nobody's contributed a binary for OpenVMS since 1.9.27, so if you need
> > > >anything more recent you'll probably have to do some porting work 
> > > >yourself.
> > > >That may or may not be a big deal.
> > >
> > > I can compile 1.11 (client only) under OpenVMS 7.2 if anyone is 
> > > interested.  We
> > > also have local modifications to support vms wildcard filespecs if 
> > > interested.
> > > Those interested send me mail or post to list and if there is interest 
> > > perhaps i
> > > can send the binary to someone at openave for hosting.  I can try to 
> > > compile the
> > > server side, but I havent yet done so.
>
> Same here.  I'll check in anything needed to get CVS to compile under VMS as 
> well as
> seeing that a binary gets posted at OA.  Of course, a binary that does 
> client/server
> probably appeals to a wider market, but I'll take whatever you can send me.
>
> Derek
>
> --
> Derek Price                      CVS Solutions Architect ( http://CVSHome.org 
> )
> mailto:address@hidden     OpenAvenue ( http://OpenAvenue.com )
>

Greetings,

I have been trying to compile 1.11.1p1 under OpenVMS 7.2-1.
Rex Jolliff says he has been successful with 1.11.
Maybe I should be using 1.11 and not 1.11.1p1 at this time but I will share 
what I have
found so far because it could help others.

In 1.11 the following .com files are present:
./build.com
./diff/build_diff.com
./lib/build_lib.com
./src/build_src.com
./vms/build_vms.com
./zlib/Make_vms.com
./zlib/build_zlib.com

In 1.11.1p1 the following .com files are present:
./build.com
./diff/build_diff.com
./lib/build_lib.com
./src/build_src.com
./vms/build_vms.com
./zlib/Make_vms.com

The build.com is identical on 1.11 and 1.11.1p1 containing:
$ set def [.zlib]
$ @build_zlib.com
$ set def [-.diff]
$ @build_diff.com
$ set def [-.vms]
$ @build_vms.com
$ set def [-.lib]
$ @build_lib.com
$ set def [-.src]
$ @build_src.com

Since 1.11.1p1 does not have a ./zlib/build_zlib.com I copied build_zlib.com 
from 1.11
to 1.11.1p1 and did a build.  My other option is to change build.com to use
./zlib/Make_vms.com; I also am trying this option and discuss it later.

-------------------------------------

getdate.c does not build with the "#if defined (VMS)" test that included
# include <types.h>
so I hard coded
# include <sys/types.h>
# include "xtime.h"
and it compiles without errors. I do get information warnings such as the 
following in
diff/io.c, lib/getdate.c, and src/patch.c:

    if (Year < 0)
........^
%CC-I-QUESTCOMPARE, In this statement, the unsigned expression "Year" is being 
compared
with a relational operator to a constant whose value is not greater than  zero. 
 This
might not be what you intended.
at line number 616 in file 
USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1.LIB]GETDATE.Y;1

    return Start == -1 ? 0 : Start;
...........^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression "Start" is being
compared with an equality operator to a constant whose value is negative.  This 
 might
not be what you intended.
at line number 977 in file 
USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1.LIB]GETDATE.Y;1

The build resulted in 2 undefined symbols:
    ANNOTATE from main.obj and CVS_TEMP_FILE form cvslib.olb

With these results I tested cvs from the VMS client using a cvs client v1.11 on 
a DEC
ALPHA (OSF1 cmp V4.0 878 alpha).

So far I have not been successful with cvs login but have been successful with 
the
cvs -d :pserver:address@hidden:/cvsroot method.
For testing I copied an existing ,v from the repository into VMS/TESTIT,v and 
have been
able to cvs checkout, edit the file, cvs diff, cvs commit, cvs diff revisions, 
cvs log,
and cvs status the file under VMS.

The cvs annotate failed.  I added "CC annotate.c" to the build_src.com and 
rebuilt cvs
and then "cvs annotate" worked.
I am not sure why annotate.c was not in the .com file, it should be.

--------------------------------------

Using the other option of altering the build.com to use ./zlib/Make_vms.com 
instead of
copying the ./zlib/build_zlib.com from v1.11 to v1.11.1p1 I found the 
following::

zlib/Make_vms.com builds a libz.olb instead of a zlib.olb that 
zlib/build_zlib.com
builds.
This causes a problem because the src/build_src.com file looks for a zlib.olb 
and not
the libz.olb that Make_vms.com uses.

I used egrep "zlib.olb|libz.olb" on all the .com files in 1.11.1p1 and 1.11 to 
help
identify the mismatch, results are shown for the .com files that contain 
zlib.olb or
libz.olb:

cvs-1.11.1p1:
----- ./src/build_src.com -----
    [-.zlib]zlib.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
----- ./zlib/Make_vms.com -----
$   CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ
$   call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb
                "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" -
                minigzip.obj libz.olb

cvs-1.11:
----- ./zlib/Make_vms.com -----
$   CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ
$   call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb
                "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" -
                minigzip.obj libz.olb
----- ./zlib/build_zlib.com -----
$ library/create zlib.olb adler32.obj,-
----- ./src/build_src.com -----
[-.vms]openvmslib.olb/lib,[-.zlib]zlib.olb/lib,[-.diff]diff.olb/lib

So I decided to alter src/build_src.com to look for libz.olb instead of 
zlib.olb.
This goes along with the idea that UNIX libraries by convention start with lib 
and the
Makefile.in and Makefile.am create zlib/libz.a libraries.

Doing the build using libz.olb I still get the undefined symbol of 
CVS_TEMP_FILE.

Using CVS client with pserver on a VMS processor is challenging because of the 
need to
double quote strings so that the case is use.  For example:  cvs -H add   does 
not work,
but   cvs "-H" add   works.

Some more examples:

DIPSD->cvs checkout alpha/fcs/Makefile
cvs server: cannot find module `alpha/fcs/makefile' - ignored
cvs [checkout aborted]: cannot expand modules

DIPSD->cvs checkout "alpha/fcs/Makefile"
U alpha/fcs/Makefile
DIPSD->dir


Directory USER$DISK:[USERS.CM.MILLER.CVS_STAGE]

ALPHA.DIR;1         DIPS.DIR;1          VMS.DIR;1

Total of 3 files.

DIPSD->cvs status alpha/fcs/Makefile
===================================================================
File: no file makefile          Status: Needs Checkout

   Working revision:    No entry for makefile
   Repository revision: 1.32    /sdhs_mnt2/cvsroot/alpha/fcs/Makefile,v

DIPSD->cvs status "alpha/fcs/Makefile"
===================================================================
File: Makefile          Status: Up-to-date

   Working revision:    1.32
   Repository revision: 1.32    /sdhs_mnt2/cvsroot/alpha/fcs/Makefile,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)


I have found that rtag -F -r HEAD current module must be done as
rtag "-F" -r "HEAD" current


I have also found that if I create a .cvspass file manually that cvs login does 
not
error.
I also have found that CVSROOT should be a symbol and not a logical.


Bottom line I changed the following three files in v1.11.1p1:
BUILD.COM
LIB/GETDATE.C
SRC/BUILD_SRC.COM

The VMS diffs of my changes are:
DIPSD->diff build.com
************
File USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1]BUILD.COM;2
    2   $ @make_vms.com
    3   $ set def [-.diff]
******
File USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1]BUILD.COM;1
    2   $ @build_zlib.com
    3   $ set def [-.diff]
************

DIPSD->diff [.lib]getdate.c
************
File USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1.LIB]GETDATE.C;2
   62   /*  if  defined(vms)  */
   63   /*  # include <types.h>   */
   64   /*  #else   */   /* defined(vms) */
   65   # include <sys/types.h>
   66   # include "xtime.h"
   67   /*  #endif  */  /* !defined(vms) */
   68
******
File USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1.LIB]GETDATE.C;1
   62   #if     defined(vms)
   63   # include <types.h>
   64   #else /* defined(vms) */
   65   # include <sys/types.h>
   66   # include "xtime.h"
   67   #endif  /* !defined(vms) */
   68
************

DIPSD->diff [.src]build_src.com
************
File USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1.SRC]BUILD_SRC.COM;4
   68       [-.zlib]libz.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
******
File USER$DISK:[USERS.CM.TOOLS.CVS.CVS-1_11_1P1.SRC]BUILD_SRC.COM;3
   68       [-.zlib]zlib.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib
************



What affect does the undefined symbol of CVS_TEMP_FILE have?

Thanks,  Dale Miller
Logicon Sterling Federal
address@hidden
(402) 294-8373















reply via email to

[Prev in Thread] Current Thread [Next in Thread]