Hi Glenn, hi all,

Glenn Linderman schrieb:
Now if a library was not originally part of the <perl-install> tree, it is an open question where it should be installed... and maybe that is what you are referring to?

Unless I'm grossly mistaken, that's exactly what Scott is referring to.

So then in the PAR case we have <par-cache-for-this-app>/(lib|bin|script) and you are suggesting that anything that is included from other parts of the original file system should be placed in <par-cache-for-this-app>? I'd have suggested placing them in <par-cache-for-this-app>/script -- the script and any non-perl stuff should go there?

I don't see any reason to put non-perl stuff in script, to be honest. Maybe this is a Windows thing where people generally put dlls next to the executables in PATH?

My suggestion would be the following:
- For any Perl stuff, use the original paths and names.
- For shared libraries added with -l, use shlib/ORIGINALNAME or whatever that path's called. Add that to LD_LIBRARY_PATH and -- on Windows -- to PATH. - For data files added with -a, use the main cache directory and the original file name.

Now, what happens if filenames of external shared objects clash? There might be a sys/libfoo.so, a glib/libfoo.so, and a bork/libfoo.so required by the same program, as far as I know. (Is that right?)

We can't possibly recover those paths by looking at them unless we test against something like m|\blib/((?:[^/]+/)*[^/]+.so)$| on Linux and use $1 for extraction. But that's not going to work. And I digress...

So maybe -l should accept syntax similar to -a, except it places things under /shlib instead of / (i.e. -l/usr/lib/sys/foo;sys/foo).

Cheers,
Steffen

Reply via email to