On Wed, 17 Mar 2010 09:19:38 +0100 (CET), Antoine Jacoutot wrote:

>On Wed, 17 Mar 2010, Rod Whitworth wrote:
>
>> I became a brave and tried installing Cherokee from the most recent
>> snap package.
>> 
>> pkg_add completed without whining and gave me instructions for modding
>> the rc* files.
>> 
>> First up I just started the server from a console. No problem - saw the
>> default page.
>> 
>> Read some docs - saw that they strongly suggested using their admin
>> tool, so fired it up and that's where my problems started. I could see
>> that I was connecting to port 9090 but I got a 503 error anyway. The
>> favicon was there but nothing else.
>> 
>> Running the admin server with debug log to console showed me that it
>> was missing python2.5. Funny, that's not in the dependencies. pkg_add
>> fixed that, and I could get around the pages.
>
>$ cd /usr/ports/www/cherokee && make show=RUN_DEPENDS
>:python->=2.5,<2.6:lang/python/2.5
>
>Something is wrong on your side...
>
>-- 
>Antoine
>


OK, let's do a fresh install.
...
# uname -a
OpenBSD temp.witworx.com 4.7 GENERIC#556 i386
Install included xbase set.

Let's get cherokee:
# pkg_add cherokee-0.99.39.tgz
cherokee-0.99.39:png-1.2.41: ok (5 to go)
cherokee-0.99.39:libart-2.3.20p0: ok (4 to go)
cherokee-0.99.39:rrdtool-1.2.30: ok (3 to go)
cherokee-0.99.39:pcre-7.9: ok (2 to go)
cherokee-0.99.39:spawn-fcgi-1.6.3: ok (1 to go)
cherokee-0.99.39: ok
--- +cherokee-0.99.39 -------------------
To complete the installation, you need to configure cherokee.  As root:
    # cherokee-admin [-b bind-to-IP] [-p port]
(without parameters it will bind to 127.0.0.1 on port 9090).

If you want to run cherokee on boot, add these lines to /etc/rc.local:

if [ X"${cherokee_flags}" != X"NO" ]; then
        echo -n ' cherokee'
        /usr/local/sbin/cherokee ${cherokee_flags} 1> /dev/null
fi

for admin management:

if [ X"${cherokee-admin_flags}" != X"NO" ]; then
        echo -n ' cherokee-admin'
        /usr/local/sbin/cherokee-admin ${cherokee-admin_flags} 1>
/dev/null &
fi

and in /etc/rc.conf.local:

cherokee_flags="-d"     # use -d to run in daemon mode
cherokee-admin_flags=NO # use -b if you want listen on ALL interfaces

Hmmmm...... didn't see python in there did you?

Well let's try the admin in debug mode:
# cherokee-admin -b -u -x

Web Interface:
  URL:               http://localhost:9090/

Cherokee Web Server 0.99.39 (Mar  6 2010): Listening on port ALL:9090,
TLS
disabled, IPv6 disabled, using poll, 4096 fds system limit, max. 2041
connections, caching I/O, single thread

So far so good. Now I'll browse to port 9090 from a remote host. Now
the error messages flow:
sh: /usr/local/share/cherokee/admin/server.py: No such file or
directory
sh: /usr/local/share/cherokee/admin/server.py: No such file or
directory
sh: /usr/local/share/cherokee/admin/server.py: No such file or
directory
sh: /usr/local/share/cherokee/admin/server.py: No such file or
directory
sh: /usr/local/share/cherokee/admin/server.py: No such file or
directory

Funny that. It must need python. I've never added a package in my life
that needed a resource and did not fetch it as part of the pkg_add or
give a message that it had to be installed some other way.

Oh, well I must have failed my mind-reading test. So I'll add python:
# pkg_add python-2.5.4p3.tgz
python-2.5.4p3:bzip2-1.0.5: ok (2 to go)
python-2.5.4p3:sqlite3-3.6.16.1: ok (1 to go)
python-2.5.4p3: ok
--- +python-2.5.4p3 -------------------
If you want to use this package as your default system python, as root
create symbolic links like so (overwriting any previous default):
 ln -sf /usr/local/bin/python2.5 /usr/local/bin/python
 ln -sf /usr/local/bin/python2.5-config /usr/local/bin/python-config
 ln -sf /usr/local/bin/pydoc2.5  /usr/local/bin/pydoc

That looks complete. Let's try the browser again:
# cherokee-admin -b -u -x

Web Interface:
  URL:               http://localhost:9090/

Cherokee Web Server 0.99.39 (Mar  6 2010): Listening on port ALL:9090,
TLS
disabled, IPv6 disabled, using poll, 4096 fds system limit, max. 2041
connections, caching I/O, single thread
Server 0.99.39 running.. PID=26238
Socket=/tmp/cherokee-admin-scgi.socket

No errors now when I browse to admin.

All seems to be fine.

So where was the message telling me that I stuffed up and had to just
install python?
Python is NOT mentioned as a run-time dependency in
/usr/ports/www/cherokee/cherokee-0.99.39.html on my build machine (and
I'm NOT building the packages I'm testing, they are from
ftp.ca.openbsd.org snapshots) nor does python appear in the Makefile as
a RUN-dependancy. py-docutils appears as a build dependancy and
lang/python is listed in MODULES.

AIUI that means that the package building machine will have python
running on it as a result of that MODULES lang/python. I can't see how,
absent a RUN_DEPENDS-main including python in the Makefile, python will
get to my machine except by me knowing that the errors with .py in them
imply that I need to do it.

Unless you can pick holes in that reasoning - we have a bug. It looks
like something not spotted because python had to exist on the build
machine to satisfy the BUILD_DEPENDS requirement for py-docutils.

It's the only case I know of where building a package from ports would
have been better that using one compiled by the generous providers of
snapshots and releases.

A bit late for 4.7 but maybe a note in a few places will be found by
(the seemingly rare) people who do STFA?

R/


*** NOTE *** Please DO NOT CC me. I <am> subscribed to the list.
Mail to the sender address that does not originate at the list server is 
tarpitted. The reply-to: address is provided for those who feel compelled to 
reply off list. Thankyou.

Rod/
---
This life is not the real thing.
It is not even in Beta.
If it was, then OpenBSD would already have a man page for it.


Reply via email to