You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-user@tcl.apache.org by Nicholas Brawn <nc...@users.sourceforge.net> on 2003/08/03 18:30:28 UTC

Re: Problems with latest cvs of tcl-rivet (init.tcl must be installed correctly for Apache Rivet to function: can't find package RivetTcl 1.1)

Ok, this might be useful to go into a FAQ entry. I have been unbelievably 
stupid - or over presumptious.

My default umask is 027. When I *initially* did my install of rivet, it was 
027. Later on I set it to 022 to ensure it would be readable. All tests of 
loading RivetTcl were performed as root - so of course no errors.

However, just then, I checked the permissions on /usr/local/lib/rivet. They 
were 750 (rwxr-x---). So it turns out those errors were to do with permissions.

Two thoughts about this personal saga:
1. Can the make.tcl set umask when it installs - or at least warn if the 
users umask is not 022.
2. Can the error logging perhaps be more verbose. In hindsight "errno open 
failed, etc" mean precisely that - it couldn't open. But I didn't put it 
together until now. I was thinking there was some wierd auto_path issue or 
similar.

Cheers,
Nick

At 02:48 PM 8/3/2003, Nicholas Brawn wrote:
>This is the first time I've tried out tcl-rivet, so bear with me.
>
>My build/testing environment is as follows:
>- FreeBSD 5.1-RELEASE
>- tcl 8.4.4
>- apache-ssl 1.3.27.1.48_2
>
>Steps I took:
>1. Grab latest tcl-rivet via anoncvs
>2. cd /usr/local/tcl-rivet/src
>3. tclsh8.4 make.tcl shared
>
># tclsh8.4 make.tcl shared
>apache_multipart_buffer.o -> Command (sh): gcc -pipe -g -O -Wall 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache -I/usr/local/include 
>-DTCL_THREADED=0 -c apache_multipart_buffer.c
>apache_request.o -> Command (sh): gcc -pipe -g -O -Wall -Wno-implicit-int 
>-fPIC -I/usr/local/include/apache -I/usr/local/include -DTCL_THREADED=0 -c 
>apache_request.c
>rivetChannel.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetChannel.c
>rivetParser.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetParser.c
>rivetCore.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetCore.c
>mod_rivet.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c 
>-DNAMEOFEXECUTABLE="/usr/local/bin/tclsh8.4" mod_rivet.c
>Result: mod_rivet.c: In function `Rivet_ParseExecFile':
>mod_rivet.c:238: warning: long unsigned int format, time_t arg (arg 4)
>mod_rivet.c:238: warning: long unsigned int format, time_t arg (arg 5)
>TclWebapache.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c TclWebapache.c
>Result: TclWebapache.c: In function `TclWeb_UploadData':
>TclWebapache.c:563: warning: unused variable `bytes'
>mod_rivet.so -> Command (sh): ld -Bshareable -x -o mod_rivet.so 
>apache_multipart_buffer.o apache_request.o rivetChannel.o rivetParser.o 
>rivetCore.o mod_rivet.o TclWebapache.o -L/usr/local/lib -ltcl8.4   -lm -lcrypt
>rivetList.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetList.c
>rivetCrypt.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetCrypt.c
>rivetWWW.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetWWW.c
>rivetPkgInit.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c rivetPkgInit.c
>librivet.so -> Command (sh): ld -Bshareable -x -o librivet.so rivetList.o 
>rivetCrypt.o rivetWWW.o rivetPkgInit.o -L/usr/local/lib -ltcl8.4   -lm -lcrypt
>parserPkgInit.o -> Command (sh): gcc -pipe -g -O -Wall -Wconversion 
>-Wno-implicit-int -fPIC -I/usr/local/include/apache 
>-I/usr/local/include   -DTCL_THREADED=0 -c parserPkgInit.c
>librivetparser.so -> Command (sh): ld -Bshareable -x -o librivetparser.so 
>rivetParser.o parserPkgInit.o -L/usr/local/lib -ltcl8.4   -lm -lcrypt
>shared ->
>
>4. tclsh8.4 make.tcl install
>
># tclsh8.4 make.tcl install
>librivet.so -> Command (sh): ld -Bshareable -x -o librivet.so rivetList.o 
>rivetCrypt.o rivetWWW.o rivetPkgInit.o -L/usr/local/lib -ltcl8.4   -lm -lcrypt
>librivetparser.so -> Command (sh): ld -Bshareable -x -o librivetparser.so 
>rivetParser.o parserPkgInit.o -L/usr/local/lib -ltcl8.4   -lm -lcrypt
>install -> Command (tcl): file delete -force /usr/local/libexec/apache/rivet
>Command (tcl): file delete -force /usr/local/lib/rivet
>Command (tcl): file copy -force mod_rivet.so /usr/local/libexec/apache
>Command (tcl): file copy -force ../rivet /usr/local/lib
>Command (tcl): file copy -force librivet.so 
>/usr/local/lib/rivet/packages/rivet
>Command (tcl): file copy -force librivetparser.so 
>/usr/local/lib/rivet/packages/rivet
>
>5. Added following lines to httpsd.conf
>(in appropriate locations)
>LoadModule rivet_module       libexec/apache/mod_rivet.so
>AddModule mod_rivet.c
>AddType application/x-httpd-rivet .rvt
>AddType application/x-rivet-tcl .tcl
>
>6.  httpsdctl start
>
>7. Error logs start filling with:
>[Sun Aug  3 14:04:06 2003] [error] (2)No such file or directory: init.tcl 
>must be installed correctly for Apache Rivet to function: can't find 
>package RivetTcl 1.1
>[Sun Aug  3 14:04:06 2003] [error] (2)No such file or directory: init.tcl 
>must be installed correctly for Apache Rivet to function: can't find 
>package RivetTcl 1.1
>
>
>Seems the interpereter doesn't know how to find the package. How can I 
>resolve this?
>
>Cheers,
>Nick
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: rivet-user-unsubscribe@tcl.apache.org
>For additional commands, e-mail: rivet-user-help@tcl.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-user-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-user-help@tcl.apache.org


Re: Problems with latest cvs of tcl-rivet (init.tcl must be installed correctly for Apache Rivet to function: can't find package RivetTcl 1.1)

Posted by "David N. Welton" <da...@dedasys.com>.
Nicholas Brawn <nc...@users.sourceforge.net> writes:

> Yep, got it working. Only gripe is that there's no vim syntax file
> for it, if I do it in html it complains about the tcl, and if i use
> tcl highlighting, it complains about the html.

You might look for a PHP mode or something else that has to contend
with two syntaxes.  I wrote an emacs mode that deals with switching
between Tcl mode and HTML mode, but I guess if you are a vi person,
you're a vi person:-)

But... now that you remind me, I just remembered something.  Try the
included vim file, changing ttml to rvt.

> Of course, I could do it *all* in tcl.

> By the way, I also tried building it on RedHat 9 (uses apache
> 2.0.x). Failed with some ugly errors. Is rivet only supported under
> Apache 1.3.x?

Apache 2.0 has a quite different API, and is not supported at the
moment.  I'm working on it, but it's complicated because of the
threading issue...  WebSh and mod_tcl do support 2.0 to some degree.

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

----
" TTML (mod_dtcl) syntax file.
" Language:	Tcl + HTML
" Maintainer:	Wojciech Kocjan <zo...@nowiny.net>
" Filenames:	*.ttml

if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'ttml'
endif

if version < 600
  so <sfile>:p:h/html.vim
else
  runtime! syntax/html.vim
  unlet b:current_syntax
endif


syntax include @tclTop syntax/tcl.vim

syntax region ttmlTcl keepend matchgroup=Delimiter start="<?" end="?>" contains=@tclTop

let b:current_syntax = "ttml"

if main_syntax == 'ttml'
  unlet main_syntax
endif

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-user-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-user-help@tcl.apache.org


Re: Problems with latest cvs of tcl-rivet (init.tcl must be installed correctly for Apache Rivet to function: can't find package RivetTcl 1.1)

Posted by Nicholas Brawn <nc...@users.sourceforge.net>.
Yep, got it working. Only gripe is that there's no vim syntax file for it, 
if I do it in html it complains about the tcl, and if i use tcl 
highlighting, it complains about the html.

Of course, I could do it *all* in tcl.

By the way, I also tried building it on RedHat 9 (uses apache 2.0.x). 
Failed with some ugly errors. Is rivet only supported under Apache 1.3.x?

Nick

At 06:20 PM 8/4/2003, David N. Welton wrote:
><snip>
>
>So it all works correctly now?  You were able to create a hello world
>page that runs?
<snip>


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-user-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-user-help@tcl.apache.org


Re: Problems with latest cvs of tcl-rivet (init.tcl must be installed correctly for Apache Rivet to function: can't find package RivetTcl 1.1)

Posted by "David N. Welton" <da...@dedasys.com>.
Nicholas Brawn <nc...@users.sourceforge.net> writes:

> Ok, this might be useful to go into a FAQ entry. I have been
> unbelievably stupid - or over presumptious.

Heh, no, these things happen.  What's great is when I don't have to
track other people's problems down.  I love it when people figure
things out themselves:-)

> My default umask is 027. When I *initially* did my install of rivet,
> it was 027. Later on I set it to 022 to ensure it would be
> readable. All tests of loading RivetTcl were performed as root - so
> of course no errors.

> However, just then, I checked the permissions on
> /usr/local/lib/rivet. They were 750 (rwxr-x---). So it turns out
> those errors were to do with permissions.

So it all works correctly now?  You were able to create a hello world
page that runs?

> Two thoughts about this personal saga: 

> 1. Can the make.tcl set umask when it installs - or at least warn if
> the users umask is not 022.

> 2. Can the error logging perhaps be more verbose. In hindsight
> "errno open failed, etc" mean precisely that - it couldn't open. But
> I didn't put it together until now. I was thinking there was some
> wierd auto_path issue or similar.

So was I:-)

Let me sum up the situation:

* Tcl has no umask command itself, and I'm not inclined to require
  Tclx for the install.

* Tcl could use the 'file attribute' command to make sure that
  installed files are correct, but it might be kind of slow, as it
  would have to walk directories.

* Tcl could also create a test file, check the permissions on that,
  and complain if the umask is bad.

* Tcl could just check the permissions when it's done installing
  everything.

* You are indeed correct that the error information is bad.  I'm
  investigating that too:

What happens is that when Tcl makes its list of available packages,
that directory is simply excluded, because of the bad permissions.  So
when you do a package require, it doesn't even know that *that* is the
directory it needs, and so can't really give you any good information
about the problem.

So, Damon, Andy - any thoughts on which of the above is the best?  I
think maybe just checking the /usr/lib/rivet (+ other installed
packages) permissions at install time.  At that point, either fix them
(hmmmm might as well have done it right the first time, though...) or
error out?

> >This is the first time I've tried out tcl-rivet, so bear with me.
> >
> >My build/testing environment is as follows:
> >- FreeBSD 5.1-RELEASE
> >- tcl 8.4.4
> >- apache-ssl 1.3.27.1.48_2
> >
> >Steps I took:
> >1. Grab latest tcl-rivet via anoncvs
> >2. cd /usr/local/tcl-rivet/src
> >3. tclsh8.4 make.tcl shared
> >
> ># tclsh8.4 make.tcl shared

...

> >4. tclsh8.4 make.tcl install
> >
> ># tclsh8.4 make.tcl install
> > librivet.so -> Command (sh): ld -Bshareable -x -o librivet.so
> > rivetList.o rivetCrypt.o rivetWWW.o rivetPkgInit.o -L/usr/local/lib
> > -ltcl8.4   -lm -lcrypt
> > librivetparser.so -> Command (sh): ld -Bshareable -x -o
> > librivetparser.so rivetParser.o parserPkgInit.o -L/usr/local/lib
> > -ltcl8.4   -lm -lcrypt
> >install -> Command (tcl): file delete -force /usr/local/libexec/apache/rivet
> >Command (tcl): file delete -force /usr/local/lib/rivet
> >Command (tcl): file copy -force mod_rivet.so /usr/local/libexec/apache
> >Command (tcl): file copy -force ../rivet /usr/local/lib
> > Command (tcl): file copy -force librivet.so
> > /usr/local/lib/rivet/packages/rivet
> > Command (tcl): file copy -force librivetparser.so
> > /usr/local/lib/rivet/packages/rivet
> >
> >5. Added following lines to httpsd.conf
> >(in appropriate locations)
> >LoadModule rivet_module       libexec/apache/mod_rivet.so
> >AddModule mod_rivet.c
> >AddType application/x-httpd-rivet .rvt
> >AddType application/x-rivet-tcl .tcl
> >
> >6.  httpsdctl start
> >
> >7. Error logs start filling with:
> > [Sun Aug  3 14:04:06 2003] [error] (2)No such file or directory:
> > init.tcl must be installed correctly for Apache Rivet to function:
> > can't find package RivetTcl 1.1
> > [Sun Aug  3 14:04:06 2003] [error] (2)No such file or directory:
> > init.tcl must be installed correctly for Apache Rivet to function:
> > can't find package RivetTcl 1.1
> >
> >
> > Seems the interpereter doesn't know how to find the package. How
> > can I resolve this?

Thanks for the error report, though.  Without these, we have nothing
to help us improve Rivet:-)

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


Re: Problems with latest cvs of tcl-rivet (init.tcl must be installed correctly for Apache Rivet to function: can't find package RivetTcl 1.1)

Posted by "David N. Welton" <da...@dedasys.com>.
Nicholas Brawn <nc...@users.sourceforge.net> writes:

> Ok, this might be useful to go into a FAQ entry. I have been
> unbelievably stupid - or over presumptious.

Heh, no, these things happen.  What's great is when I don't have to
track other people's problems down.  I love it when people figure
things out themselves:-)

> My default umask is 027. When I *initially* did my install of rivet,
> it was 027. Later on I set it to 022 to ensure it would be
> readable. All tests of loading RivetTcl were performed as root - so
> of course no errors.

> However, just then, I checked the permissions on
> /usr/local/lib/rivet. They were 750 (rwxr-x---). So it turns out
> those errors were to do with permissions.

So it all works correctly now?  You were able to create a hello world
page that runs?

> Two thoughts about this personal saga: 

> 1. Can the make.tcl set umask when it installs - or at least warn if
> the users umask is not 022.

> 2. Can the error logging perhaps be more verbose. In hindsight
> "errno open failed, etc" mean precisely that - it couldn't open. But
> I didn't put it together until now. I was thinking there was some
> wierd auto_path issue or similar.

So was I:-)

Let me sum up the situation:

* Tcl has no umask command itself, and I'm not inclined to require
  Tclx for the install.

* Tcl could use the 'file attribute' command to make sure that
  installed files are correct, but it might be kind of slow, as it
  would have to walk directories.

* Tcl could also create a test file, check the permissions on that,
  and complain if the umask is bad.

* Tcl could just check the permissions when it's done installing
  everything.

* You are indeed correct that the error information is bad.  I'm
  investigating that too:

What happens is that when Tcl makes its list of available packages,
that directory is simply excluded, because of the bad permissions.  So
when you do a package require, it doesn't even know that *that* is the
directory it needs, and so can't really give you any good information
about the problem.

So, Damon, Andy - any thoughts on which of the above is the best?  I
think maybe just checking the /usr/lib/rivet (+ other installed
packages) permissions at install time.  At that point, either fix them
(hmmmm might as well have done it right the first time, though...) or
error out?

> >This is the first time I've tried out tcl-rivet, so bear with me.
> >
> >My build/testing environment is as follows:
> >- FreeBSD 5.1-RELEASE
> >- tcl 8.4.4
> >- apache-ssl 1.3.27.1.48_2
> >
> >Steps I took:
> >1. Grab latest tcl-rivet via anoncvs
> >2. cd /usr/local/tcl-rivet/src
> >3. tclsh8.4 make.tcl shared
> >
> ># tclsh8.4 make.tcl shared

...

> >4. tclsh8.4 make.tcl install
> >
> ># tclsh8.4 make.tcl install
> > librivet.so -> Command (sh): ld -Bshareable -x -o librivet.so
> > rivetList.o rivetCrypt.o rivetWWW.o rivetPkgInit.o -L/usr/local/lib
> > -ltcl8.4   -lm -lcrypt
> > librivetparser.so -> Command (sh): ld -Bshareable -x -o
> > librivetparser.so rivetParser.o parserPkgInit.o -L/usr/local/lib
> > -ltcl8.4   -lm -lcrypt
> >install -> Command (tcl): file delete -force /usr/local/libexec/apache/rivet
> >Command (tcl): file delete -force /usr/local/lib/rivet
> >Command (tcl): file copy -force mod_rivet.so /usr/local/libexec/apache
> >Command (tcl): file copy -force ../rivet /usr/local/lib
> > Command (tcl): file copy -force librivet.so
> > /usr/local/lib/rivet/packages/rivet
> > Command (tcl): file copy -force librivetparser.so
> > /usr/local/lib/rivet/packages/rivet
> >
> >5. Added following lines to httpsd.conf
> >(in appropriate locations)
> >LoadModule rivet_module       libexec/apache/mod_rivet.so
> >AddModule mod_rivet.c
> >AddType application/x-httpd-rivet .rvt
> >AddType application/x-rivet-tcl .tcl
> >
> >6.  httpsdctl start
> >
> >7. Error logs start filling with:
> > [Sun Aug  3 14:04:06 2003] [error] (2)No such file or directory:
> > init.tcl must be installed correctly for Apache Rivet to function:
> > can't find package RivetTcl 1.1
> > [Sun Aug  3 14:04:06 2003] [error] (2)No such file or directory:
> > init.tcl must be installed correctly for Apache Rivet to function:
> > can't find package RivetTcl 1.1
> >
> >
> > Seems the interpereter doesn't know how to find the package. How
> > can I resolve this?

Thanks for the error report, though.  Without these, we have nothing
to help us improve Rivet:-)

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-user-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-user-help@tcl.apache.org