Discussion:
problem with ssh during cvs actions
Harry Putnam
2009-06-17 20:40:38 UTC
Permalink
Having a error when attempting to take any actions in my cvs checked
out module that involves sourcing/quering $CVSROOT.

$CVSROOT in this case is:

<remote-host>:/usr/local/cvsroot

so ssh is involved when talking to CVSROOT.

Something like cvs add file

Will first prompt for password but then throws this error:

cvs add file
Password: xxxxxxxx <enter>

Unknown command: `server'

There doesn't seem to be any switches for verbosity in man cvs or for
debug of some kind.

How can I determine what the problem is.

A regular ssh to <remote-host> prompts for password and succeeds
without error once password is given.
Arthur Barrett
2009-06-17 20:53:18 UTC
Permalink
Harry,
Post by Harry Putnam
<remote-host>:/usr/local/cvsroot
so ssh is involved when talking to CVSROOT.
Something like cvs add file
cvs add file
Password: xxxxxxxx <enter>
Unknown command: `server'
What version of the client are you using, eg: CVS 1.11.3, what version
of the server? Also what is the server and client OS?
Post by Harry Putnam
There doesn't seem to be any switches for verbosity in man cvs or for
debug of some kind.
cvs -ttt add file
Post by Harry Putnam
How can I determine what the problem is.
To connect from a unix client to a unix server with CVS 1.11.x you would
typically use:
CVS_SERVER=path-to-cvs-on-remote-host
CVSROOT=:ext:***@hostname:/path/to/repo

To connect from a windows cvsnt client to a unix server with CVS 2.5.x
you would use (note: please direct questions about CVSNT to the CVSNT
mailing list):
CVS_SERVER=path-to-cvs-on-remote-host
CVSROOT=:ssh:***@hostname-or-putty-session-name:/path/or/repo-alias

See also:
http://ximbiot.com/cvs/manual/cvs-1.12.13/cvs_2.html#SEC29

Regards,


Arthur
Harry Putnam
2009-06-17 21:42:54 UTC
Permalink
Post by Arthur Barrett
Harry,
Post by Harry Putnam
<remote-host>:/usr/local/cvsroot
so ssh is involved when talking to CVSROOT.
Something like cvs add file
cvs add file
Password: xxxxxxxx <enter>
Unknown command: `server'
What version of the client are you using, eg: CVS 1.11.3, what version
of the server? Also what is the server and client OS?
Yes, sorry:
Both server and client are installed on Gentoo linux:
Concurrent Versions System (CVS) 1.12.12 (client)

Its an OpenSolaris OS doing the calling and using:
Concurrent Versions System (CVS) 1.12.13 (client/server)

So Opensolaris cvs client is contacting Gentoo linux where CVSROOT is
housed.

I'm not running a pserver or any server far as I know. Just updating
modules thru ssh from home lan machines.
The gentoo machine houses CVSROOT and all others contact the repo there.
Post by Arthur Barrett
Post by Harry Putnam
There doesn't seem to be any switches for verbosity in man cvs or for
debug of some kind.
cvs -ttt add file
-> main: Session ID is kabeeWkC85KqRfSt
-> Name_Root ((null), (null))
-> parse_cvsroot (reader:/usr/local/cvsroot)
-> walklist ( list=814ddb0, proc=80a09a0, closure=0 )
-> main loop with CVSROOT=/usr/local/cvsroot
-> open_connection_to_server (reader:/usr/local/cvsroot)
-> Starting server: ssh reader cvs server
Password:
Unknown command: `server'

Thanks for the tip and it gives a little more ouput but where is the
`server' command getting in there from.
Post by Arthur Barrett
Post by Harry Putnam
How can I determine what the problem is.
To connect from a unix client to a unix server with CVS 1.11.x you would
CVS_SERVER=path-to-cvs-on-remote-host
To connect from a windows cvsnt client to a unix server with CVS 2.5.x
you would use (note: please direct questions about CVSNT to the CVSNT
CVS_SERVER=path-to-cvs-on-remote-host
I've never done any of that in many years until this problem with
`server' popping up in any attempt to contact cvsroot remotely.

My setup has always been CVSROOT=reader:/usr/local/cvsroot
export CVROOT
On the 3 client machines
Opensolaris gentoo debian

Then on my main desktop (also gentoo)
Gentoo (houses cvsroot)
On that host CVSROOT=/usr/local/cvsroot;export CVSROOT

Are there changes in cvs 1.12.13 and 1.12.12 that have rendered my
setup incompatible?

I do think 1.12.11 may have been what I last used... and I have thoroughly
updated the OS on both Gentoo and Opensolaris.. so its possible they
are both running newer versions than I've used.

Far as I know I haven't really had to run a server before.

/etc/xinetd.d/cvspserver was installed when I installed cvs on the
gentoo machine but I've never set it up or ran any server.

I've always been able in effect do:

cvs -d reader:/usr/local/cvsroot add file

Is that no longer possible? How does the string `server' get stuffed
into my command if I try the command above?.

Thanks for your time
Arthur Barrett
2009-06-18 03:20:42 UTC
Permalink
Harry,
Post by Harry Putnam
Post by Arthur Barrett
CVS_SERVER=path-to-cvs-on-remote-host
.
.
.
Post by Harry Putnam
cvs -d reader:/usr/local/cvsroot add file
Is that no longer possible? How does the string `server' get stuffed
into my command if I try the command above?.
The cvs command 'cvs server' is the other half of a client/server
connection - it's valid.

I suggest you use the technique recommended by the manual with the ext
protocol and CVS_SERVER environment variable - you do not need to set up
pserver or anything else - just use the instructions for ssh in the
manual.

Regards,


Arthur Barrett
Harry Putnam
2009-06-18 14:37:56 UTC
Permalink
Post by Arthur Barrett
I suggest you use the technique recommended by the manual with the ext
protocol and CVS_SERVER environment variable - you do not need to set up
pserver or anything else - just use the instructions for ssh in the
manual.
Thanks.... If you can tell me.. I'd still like to know why my setup of
yrs standing fails now... Are there changes in most recent cvs that
cause it?
Harry Putnam
2009-06-18 14:56:01 UTC
Permalink
Post by Arthur Barrett
I suggest you use the technique recommended by the manual with the ext
protocol and CVS_SERVER environment variable - you do not need to set up
pserver or anything else - just use the instructions for ssh in the
manual.
Using the recommended technique makes no difference that I can see:

CVS_SERVER=/usr/bin/cvs;export CVS_SERVER
CVSROOT=:ext:***@reader:/usr/local/cvsroot;export CVSROOT

cvs -ttt -n update -dP
-> main: Session ID is e9SqppgKq6SCFlSt
-> Name_Root ((null), (null))
-> parse_cvsroot (reader:/usr/local/cvsroot)
-> walklist ( list=814ddb0, proc=80a09a0, closure=0 )
-> main loop with CVSROOT=/usr/local/cvsroot
-> open_connection_to_server (reader:/usr/local/cvsroot)
-> Starting server: ssh reader /usr/bin/cvs server
Password: xxxxxxx

Unknown command: `server'

CVS commands are:
[...]
Spiro Trikaliotis
2009-06-18 18:13:39 UTC
Permalink
Hello Harry,
Post by Harry Putnam
CVS_SERVER=/usr/bin/cvs;export CVS_SERVER
cvs -ttt -n update -dP
-> main: Session ID is e9SqppgKq6SCFlSt
-> Name_Root ((null), (null))
-> parse_cvsroot (reader:/usr/local/cvsroot)
-> walklist ( list=814ddb0, proc=80a09a0, closure=0 )
-> main loop with CVSROOT=/usr/local/cvsroot
-> open_connection_to_server (reader:/usr/local/cvsroot)
-> Starting server: ssh reader /usr/bin/cvs server
Password: xxxxxxx
Unknown command: `server'
[...]
Do you have a shell account on the server? Can you verify that the
command

/usr/bin/cvs server

actually works from the command line?


You stated in one of your first mail:

OLD>
OLD> Both server and client are installed on Gentoo linux:
OLD> Concurrent Versions System (CVS) 1.12.12 (client)

OLD> Its an OpenSolaris OS doing the calling and using:
OLD> Concurrent Versions System (CVS) 1.12.13 (client/server)

OLD> So Opensolaris cvs client is contacting Gentoo linux where CVSROOT is
OLD> housed.

So, the Gentoo Linux CVS in /usr/bin/cvs is compiled without server
support (as the version information tells us). Thus, "cvs server" is not
supposed to work.

In contrast, the OpenSolaris system has the server functionality
compiled it. Thus, the opposite direction should work. I had to reread
this mail over and over again to recognise that Gentoo is intended to be
the CVS server, not OpenSolaris.

Thus, you have to recompile CVS on the Gentoo box and make sure that you
include the server functionality.

HTH,
Spiro.
--
Spiro R. Trikaliotis http://opencbm.sf.net/
http://www.trikaliotis.net/ http://www.viceteam.org/
Harry Putnam
2009-06-19 15:06:07 UTC
Permalink
Spiro Trikaliotis <list-info-***@spiro.trikaliotis.net> writes:


[...]

"Matthew M. Ogilvie" <***@mailcan.com> writes:

Thanks to you both for noticing I had compiled cvs without the server
enabled

I had already gone ahead and downgraded to an 11.X version... which
apparently didn't need the server option enabled ... since it does
work now.

But now I can go ahead with the most up to date version...

Thanks

Matthew M. Ogilvie
2009-06-19 07:01:04 UTC
Permalink
Harry,
Post by Harry Putnam
Concurrent Versions System (CVS) 1.12.12 (client)
Concurrent Versions System (CVS) 1.12.13 (client/server)
So Opensolaris cvs client is contacting Gentoo linux where CVSROOT is
housed.
By default Gentoo does not enable server support when
building/installing CVS. You need to enable the "server" USE flag
(typically editting /etc/make.conf is best) and re-run
"emerge -va cvs" (or similar).

When installed properly, running "cvs --version" on the Gentoo
box should claim "... (client/server)", not just "... (client)".

--
Matthew Ogilvie [***@mailcan.com]
Loading...