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