Hi,

  Marko has sorted out this problem. Thanks for your help :-)
Yes, he did his homework on this one. Very thorough. Anyway, 0.4.27 builds fine with the 2 patches Marko submitted, but somehow when I try to compile from SVN I get a strange error related to sed. I am posting the output in case anybody as any idea of what's going on (I am sure it's something simple I am missing;):

generating symbol list for `libcherokee-base.la'
/usr/bin/nm -p .libs/avl.o .libs/deflate.o .libs/deftree.o .libs/ dict_generic.o .libs/sp_tree.o .libs/get.o .libs/pcre.o .libs/ chartables.o .libs/fdpoll-poll.o .libs/fdpoll-kqueue.o .libs/fdpoll- select.o .libs/http.o .libs/list_merge_sort.o .libs/list_ext.o .libs/ ncpus.o .libs/crc32.o .libs/util.o .libs/buffer.o .libs/table.o .libs/ dict.o .libs/buffer_escape.o .libs/socket.o .libs/fdpoll.o .libs/ mime.o .libs/matching_list.o .libs/iocache.o .libs/md5.o .libs/ md5crypt.o .libs/sha1.o .libs/match.o .libs/tdate_parse.o .libs/ header.o .libs/session_cache.o .libs/access.o .libs/regex.o .libs/ resolv_cache.o .libs/typed_table.o .libs/mime_grammar.o .libs/ mime_scanner.o | sed -n -e 's/^.*[ ]\([BCDEGRST][BCDEGRST]*\) [ ][ ]*_\([_A-Za-z][_A-Za-z0-9]*\)$/\1 _\2 \2/p' | /usr/bin/ sed 's/.* //' | sort | uniq > .libs/libcherokee-base.exp grep -E -e "^[^_].*" ".libs/libcherokee-base.exp" > ".libs/ libcherokee-base.expT"
mv -f ".libs/libcherokee-base.expT" ".libs/libcherokee-base.exp"
sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < .libs/ libcherokee-base.exp > .libs/libcherokee-base-symbols.expsym~gcc - dynamiclib ${wl}-undefined ${wl}dynamic_lookup -o .libs/libcherokee- base.0.0.0 .libs/avl.o .libs/deflate.o .libs/deftree.o .libs/ dict_generic.o .libs/sp_tree.o .libs/get.o .libs/pcre.o .libs/ chartables.o .libs/fdpoll-poll.o .libs/fdpoll-kqueue.o .libs/fdpoll- select.o .libs/http.o .libs/list_merge_sort.o .libs/list_ext.o .libs/ ncpus.o .libs/crc32.o .libs/util.o .libs/buffer.o .libs/table.o .libs/ dict.o .libs/buffer_escape.o .libs/socket.o .libs/fdpoll.o .libs/ mime.o .libs/matching_list.o .libs/iocache.o .libs/md5.o .libs/ md5crypt.o .libs/sha1.o .libs/match.o .libs/tdate_parse.o .libs/ header.o .libs/session_cache.o .libs/access.o .libs/regex.o .libs/ resolv_cache.o .libs/typed_table.o .libs/mime_grammar.o .libs/ mime_scanner.o /opt/local/lib/libiconv.dylib /opt/local/lib/ libintl.dylib /opt/local/lib/libz.dylib -L/opt/local/lib /opt/local/ lib/libgnutls.dylib /opt/local/lib/libtasn1.dylib /opt/local/lib/ libgcrypt.dylib /opt/local/lib/libgpg-error.dylib -ldl - install_name /usr/local/lib/libcherokee-base.0 - compatibility_version 1 -current_version 1.0~nmedit -s .libs/ libcherokee-base-symbols.expsym .libs/libcherokee-base.0.0.0
sed: illegal option -- d
usage: sed script [-Ean] [-i extension] [file ...]
sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]
make[2]: *** [libcherokee-base.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Any hint grealy appreciated ;)

Also, I know this does not affect compilation, but just to make it cleaner, it would nice to remove the -pthread CFLAG for Darwin, as it does not need it (http://developer.apple.com/documentation/Darwin/ Reference/ManPages/man3/pthread.3.html). I believe pthread were introduced in OS 10.2, which may have required the CFLAG (did not verify), but 10.3 and 10.4 certainly don't need it. So I propose the following patch to configure.in:

Index: configure.in
===================================================================
--- configure.in        (revision 72)
+++ configure.in        (working copy)
@@ -82,7 +82,6 @@
           ;;
        *-*-darwin*)
                so_suffix=dylib
-               thread_ldflags="-pthread"
           libdl="-ldl"
           ;;
        *)

While I am at it, here is also a patch to autogen.sh so that under OS X it uses the gnu version of LIBTOOL & LIBTOOLIZE, since Apple had a the good idea to use those names for other purposes :(

Index: autogen.sh
===================================================================
--- autogen.sh  (revision 72)
+++ autogen.sh  (working copy)
@@ -13,6 +13,15 @@
DIE=0
+system=`uname -s`
+if test "$system" = "Darwin"; then
+       test -z "$LIBTOOL" && LIBTOOL=glibtool
+       test -z "$LIBTOOLIZE" && LIBTOOLIZE=glibtoolize
+else
+       test -z "$LIBTOOL" && LIBTOOL=libtool
+       test -z "$LIBTOOLIZE" && LIBTOOLIZE=libtoolize
+fi
+
test -z "$AUTOMAKE" && AUTOMAKE=automake
test -z "$ACLOCAL" && ACLOCAL=aclocal
test -z "$AUTOCONF" && AUTOCONF=autoconf
@@ -26,7 +35,7 @@
        DIE=1
}
-(libtool --version) < /dev/null > /dev/null 2>&1 || {
+($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || {
         echo
         echo "You must have libtool installed to compile gnome-xml."
         echo "Get ftp://ftp.gnu.org/gnu/libtool/libtool-1.4.tar.gz";
@@ -82,7 +91,7 @@
# run libtoolize ...
echo "Running libtoolize..."
-libtoolize --force
+$LIBTOOLIZE --force
echo "Running automake..."
$AUTOMAKE -a $am_opt

  I will try to take a look at it. Anyway, if someone has it running
  it in *BSD with kqueue(), please let me know how is it working.
I would, but I am not sure how easy it is to install one of the *BSD on my powerbook. I see that FreeBSD 6 RC1 has added again PPC support which is nice, I may try it if I get bored ;) Otherwise it seems that OpenBSD is the way to go, at least for PPC hardware, but not easy to make it share nicely the HD apparently...

  Actually, I wrote a script a few days ago.. it is something like
  that but focussed in the compilation process.  I will run it just
  before each release to ensure it Cherokee is building in all the
  possible ways: dynamic, static, u-Cherokee, GNUTLS and OpenSSL.

  http://svn.0x50.org/file/cherokee/debian_testing.sh
  http://svn.0x50.org/file/cherokee/debian_testing_chroot.sh

  It is very handy; the dark side is that it is Debian dependent.
That's great! I guess if building fails on another platform somebody will report it ;)

  About the pre-release performance tests.. do you have some idea
  about how to approach it?
Well, I had thought about it and I think that using a python script to run various tests on a local or remote cherokee peer would be the way to go. I would still want to use a benchmarking tool like ab or httperf but simply grab their output, parse it and build a little table of the data collected to output to the user. I imagine it would neat if the result of the script could be posted via HTTP to the cherokee web site in order to collect info on those basics test on various cherokee installs. On a practical level I imagine that you could release a public candidate when you are done with your work for a new release and give 48-72 hours to people on the list to download it and run the quick benchmark script to post the results back to you. This way it might allow you to collect the stats you need to make sure performance did not drop from one release to the next. Again those benchmarks would be pretty synthetic, but we are just looking at the variation, not at getting a true benchmark of cherokee each time. To compare the benchmark collected, it would require though to grab additional info on the computer that ran it (OS, proc, compilation options, etc..) but I don't think that's anything difficult a good python script could do ;) Who knows, I may even have sometime to work on a prototype...

Finally, again on a different topic, I put quickly together a Portfile for DarwinPorts on OS X. Would you mind quickly making sure the info below is correct? (basically description, etc...). As you can see it is downloading 0.4.27, which will not work on OS X, when do you think you will release 0.4.28 with all the patches that got submitted in the past few days? There are a lot more options to complete like variants and stuff, but I thought this would be a good start and wanted to have your approval on the textual content first and refine the Portfile once 0.4.28 is out.

# $Id: $
PortSystem        1.0
name              cherokee
version           0.4.27
categories        web
maintainers       [EMAIL PROTECTED] [EMAIL PROTECTED](?)
description Cherokee is a flexible, ultrafast, lightweight Web server long_description Cherokee is a flexible, ultrafast, lightweight Web server. It is \ implemented entirely in C, and has no dependencies beyond a standard C \ library. It is embeddable, extensible with plug- ins, and supports \ on-the-fly configuration by reading files or strings, content \ compression, virtual hosts, authentication, dynamic content, pipelined \ requests, GGI support and run in a chroot environment, among other \
                  features.  It scales up in SMP systems.
homepage          http://www.0x50.org/
master_sites      http://www.0x50.org/download/0.4/0.4.27/
checksums         md5 1bbf4e873ffba25faf59b735bae1f451
configure.pre_args --prefix="${prefix}/cherokee"

2 things I already know I might want to change is to directly put cherokee into ${prefix} instead of ${prefix}/cherokee, but for testing it's easier to see what got installed this way ;) And also, passing along to configure and argument to disable kqueue for now, until we solve the issue. Marko, if you want to be one of the maintainers of the DarwinPort please let me know ;)

Cheers,

Sébastien




_______________________________________________
Cherokee mailing list
[email protected]
http://www.alobbs.com/cgi-bin/mailman/listinfo/cherokee

Reply via email to