Mailing List Archive

undefined_symbol in 0.4.4-pre4
Hey,

to have some traffic on the list ;-) ...
just downloaded the current 0.4.4-pre4 and trying to run it with the standard-config leads to:

ts77@athlon-gt bin $ ./cherokee
dlopen (/home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so): /home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so: undefined symbol: cherokee_encoder_init_base
dlopen (/home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so): /home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so: undefined symbol: cherokee_encoder_init_base

####

btw. how is the current gzip-handler supposed to work?



TIA,

Thomas
undefined_symbol in 0.4.4-pre4 [ In reply to ]
On Sun, 1 Jun 2003 12:12:10 +0000, Thomas Seifert wrote:

Hi Thomas :)

> just downloaded the current 0.4.4-pre4 and trying to run it with the
> standard-config leads to:
>
> ts77@athlon-gt bin $ ./cherokee
> dlopen (/home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so): /home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so: undefined symbol: cherokee_encoder_init_base
> dlopen (/home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so): /home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so: undefined symbol: cherokee_encoder_init_base

Ummm, same problem here:

rpons@cosmos:/tmp/cherokee$ bin/cherokee
dlopen (/tmp/cherokee/lib/cherokee/libcherokee_gzip.so): /tmp/cherokee/lib/cherokee/libcherokee_gzip.so: undefined symbol: cherokee_encoder_init_base
dlopen (/tmp/cherokee/lib/cherokee/libcherokee_gzip.so): /tmp/cherokee/lib/cherokee/libcherokee_gzip.so: undefined symbol: cherokee_encoder_init_base

Its a bug in src/encoder.c. Please, replace

cherokee_encoder_init (cherokee_encoder_t *enc)
{
...
}

with:

cherokee_encoder_init_base (cherokee_encoder_t *enc)
{
....
}

But with this we have another problem:

rpons@cosmos:/tmp/cherokee$ bin/cherokee
dlsym (/tmp/cherokee/lib/cherokee/libcherokee_gzip.so, gzip_init): /tmp/cherokee/lib/libcherokee.so.0: undefined symbol: gzip_init


Cheers :)

--
.''`. Why is a cow? Mu. (Ommmmmmmmmm)
: :' :
`. `' Proudly running Debian GNU/Linux Sid (Kernel 2.4.20) on Ext3
`- http://laurel.datsi.fi.upm.es/~rpons/

Exercise your freedom of religion. Set fire to a church of your choice.
undefined_symbol in 0.4.4-pre4 [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sunday 01 June 2003 13:23, Ramon Pons Vivanco wrote:

Thomas, Ram?n.. :-)

> > just downloaded the current 0.4.4-pre4 and trying to run it with the
> > standard-config leads to:
> >
> > ts77@athlon-gt bin $ ./cherokee
> > dlopen (/home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so):
> > /home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so: undefined
> > symbol: cherokee_encoder_init_base dlopen
> > (/home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so):
> > /home/ts77/cherokee-test/lib/cherokee/libcherokee_gzip.so: undefined
> > symbol: cherokee_encoder_init_base

Well, at this moment I'm writing down the encoder support and It will be
broken or unstable until the 0.4.4 release. ':-)

At first moment, I though add an "encoder" property to each "directory" entry
of the configuration file. Something like:

Directory /public {
Handler common
Encoder gzip
}

but, I think it's not the right way to do it. ':-)
I think that it should be a global server configuration parameter instead of
a per-directory parameter, don't you think?

The 0.4.4 -pre releases fix some bugs, and include the work arround code for
encoders support, but it's not finished (at all O:-). I'm going to remove
the "Encoder" entries of the configuration file right now to fix that error
messages.

BTW, do you have some idea or sugestion about the encoder support? :-) It's
the best moment to talk about it. :)

- --
Greetings, alo.
http://www.alobbs.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+2eRBVRSCNxlNnu0RAsufAJ0TocQ0cjX0EfZn6BRDsSQLZ09YOwCgv2YP
B8z5g2t2qypiCtmDWaWzHVU=
=5EOD
-----END PGP SIGNATURE-----
undefined_symbol in 0.4.4-pre4 [ In reply to ]
On Sun, 1 Jun 2003 13:31:54 +0200 Alvaro Lopez Ortega <alvaro@alobbs.com> wrote:

> Well, at this moment I'm writing down the encoder support and It will be
> broken or unstable until the 0.4.4 release. ':-)

Hehe, just wanted to let you know about it :).

>
> At first moment, I though add an "encoder" property to each "directory" entry
> of the configuration file. Something like:
>
> Directory /public {
> Handler common
> Encoder gzip
> }
>
> but, I think it's not the right way to do it. ':-)
> I think that it should be a global server configuration parameter instead of
> a per-directory parameter, don't you think?

Hmm, what exactly should it do with that setting?
Serving ALL content of that directory gzip-encoded?
What about browser-issues and already compressed files like gif-images or .gz-files? ;-)

> The 0.4.4 -pre releases fix some bugs, and include the work arround code for
> encoders support, but it's not finished (at all O:-). I'm going to remove
> the "Encoder" entries of the configuration file right now to fix that error
> messages.
>
> BTW, do you have some idea or sugestion about the encoder support? :-) It's
> the best moment to talk about it. :)

I like the way how it works with apache and mod_gzip (no flaming), you define either
globally or for each vhost,
on/off
which content-types/extensions/file-mask should be delivered compressed and some
special settings like up to which size should be compressed in memory and where
temporary files can be put.

Would be nice if we had such flexibility in cherokee too.

As I'll probably put it in use shortly I will post some more questions in another thread,
good to see that we can at least a bit influence how its done :-).


Thomas
undefined_symbol in 0.4.4-pre4 [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sunday 01 June 2003 17:33, Thomas Seifert wrote:

> > At first moment, I though add an "encoder" property to each "directory"
> > entry of the configuration file. Something like:
> >
> > Directory /public {
> > Handler common
> > Encoder gzip
> > }
> >
> > but, I think it's not the right way to do it. ':-)
> > I think that it should be a global server configuration parameter
> > instead of a per-directory parameter, don't you think?
>
> Hmm, what exactly should it do with that setting?
> Serving ALL content of that directory gzip-encoded?
> What about browser-issues and already compressed files like gif-images or
> .gz-files? ;-)

The idea was that at first time check the browser capabilities. Cherokee will
only encode the files if the browser supports some of the encoding methods of
the directory configuration.

Well, I saw that it is not the right way to do it.. ':-) It could has lot of
problems: encode compresed files, no-endding configuration files, etc.

> > BTW, do you have some idea or sugestion about the encoder support? :-)
> > It's the best moment to talk about it. :)
>
> I like the way how it works with apache and mod_gzip (no flaming), you
> define either globally or for each vhost, on/off
> which content-types/extensions/file-mask should be delivered compressed and
> some special settings like up to which size should be compressed in memory
> and where temporary files can be put.

Yeah, that's it.
The encoders should be actived in the each virtual server.
Filter by extensi?n/mime/.. seems to be a great idea :-)) Something like:

Encoder gzip {
ExcludeExtensions .gz .jpg .zip
}

About add more configuration settings, It is a good idea too, but not for the
first version. I would like to write down a global cache system for all the
encoder modules, and it could take some time to be tested and stabilized.

I've added it to the TODO list just now :-)

> Would be nice if we had such flexibility in cherokee too.

Of course, this is the idea. :-)

- --
Greetings, alo.
http://www.alobbs.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+2hWjVRSCNxlNnu0RAioGAJ4lBvRr9AwwMQ1L0nnZmIRokEMCcwCfQu0K
1srMrOTzb0SRnnoJJSm2iX0=
=oBfE
-----END PGP SIGNATURE-----
undefined_symbol in 0.4.4-pre4 [ In reply to ]
On Sun, 1 Jun 2003 17:02:59 +0200 Alvaro Lopez Ortega <alvaro@alobbs.com> wrote:

> Yeah, that's it.
> The encoders should be actived in the each virtual server.
> Filter by extensi?n/mime/.. seems to be a great idea :-)) Something like:
>
> Encoder gzip {
> ExcludeExtensions .gz .jpg .zip
> }
>
> About add more configuration settings, It is a good idea too, but not for the
> first version. I would like to write down a global cache system for all the
> encoder modules, and it could take some time to be tested and stabilized.
>
> I've added it to the TODO list just now :-)

How about to have the way to either IncludeExtensions or ExcludeExtensions?
If IncludeExtensions is specified, then all other ones are excluded and if
ExcludeExtensions all other ones are included.
Sometimes its just simpler to tell which ones should be included than to exclude
all the other ones :-).


Thanks,

Thomas
undefined_symbol in 0.4.4-pre4 [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sunday 01 June 2003 19:36, Thomas Seifert wrote:

> > Encoder gzip {
> > ExcludeExtensions .gz .jpg .zip
> > }
> >
> > About add more configuration settings, It is a good idea too, but not
> > for the first version. I would like to write down a global cache system
> > for all the encoder modules, and it could take some time to be tested and
> > stabilized.
> >
> > I've added it to the TODO list just now :-)
>
> How about to have the way to either IncludeExtensions or ExcludeExtensions?
> If IncludeExtensions is specified, then all other ones are excluded and if
> ExcludeExtensions all other ones are included.
> Sometimes its just simpler to tell which ones should be included than to
> exclude all the other ones :-).

It includes a new problem.. :) what is first allow or deny?

Apache solves it with the "Order" [1] configuration entry. It could be
something like:

[1] http://httpd.apache.org/docs/mod/mod_access.html#order

================
Encoder gzip {
Exclude .gz
Allow .txt
Order allow,deny
}
================

It could be implemented like:

================
if has encoder config {
encode_exclude is encode match in exclude list
encode_allowed is encode match in allowed list

if allow,deny {
encode = encode_allowed and not encode_excluded
} else {
encode = not encode_excluded
if encode_excluded {
encode = encode_allowed
}
}
}
================

But it's not the only way to do it.
We could get an easier way, for example set an default actitude (allow or
deny). E.g:

================
Encoder gzip {
Default allow
Exclude zip gz jpg
}
================

which will encode everything except the compressed files.

What is the best way to do it? that is the question. :)

- --
Greetings, alo.
http://www.alobbs.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+2igWVRSCNxlNnu0RArDXAJ0esJlAbQ9T8vsJfF8jz1TnEXq3hwCgnwOf
Szsb+dQD2M5XO2209X0Q4mc=
=4I6U
-----END PGP SIGNATURE-----
undefined_symbol in 0.4.4-pre4 [ In reply to ]
On Sun, 1 Jun 2003 18:21:42 +0200 Alvaro Lopez Ortega <alvaro@alobbs.com> wrote:


> But it's not the only way to do it.
> We could get an easier way, for example set an default actitude (allow or
> deny). E.g:
>
> ================
> Encoder gzip {
> Default allow
> Exclude zip gz jpg
> }
> ================
>
> which will encode everything except the compressed files.
>
> What is the best way to do it? that is the question. :)


Hmm, I thought about using whatever comes first ;-).
But the second way sounds good too.



Thomas
undefined_symbol in 0.4.4-pre4 [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sunday 01 June 2003 20:53, Thomas Seifert wrote:

> > But it's not the only way to do it.
> > We could get an easier way, for example set an default actitude (allow
> > or deny). E.g:
> >
> > ================
> > Encoder gzip {
> > Default allow
> > Exclude zip gz jpg
> > }
> > ================
> >
> > which will encode everything except the compressed files.
> >
> > What is the best way to do it? that is the question. :)
>
> Hmm, I thought about using whatever comes first ;-).
> But the second way sounds good too.

I've uploaded the 0.4.4-pre5 release.
It includes a new "List Matching" class, which implements this. :-)

It works in both ways:
* Apache: allow,deny and deny,allow
* Simplified: default_allow and default_deny

This class is not still integrated in the encoders support.. but well, it
will be soon. :-))

- --
Greetings, alo.
http://www.alobbs.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+2oAMVRSCNxlNnu0RAhrKAJ4z+dcyeYN5lbp07TYEA2kN5hPl+gCgiUa4
WMlfoMQv76+LoNUR2UKabIg=
=3wwN
-----END PGP SIGNATURE-----