HOW-TO get Flash7 working!

Alexander Leidinger Alexander at Leidinger.net
Fri Jan 11 08:07:29 PST 2008


Quoting Chuck Robey <chuckr at chuckr.org> (from Thu, 10 Jan 2008  
21:05:16 -0500):

> I actually got the linux flash9 working.  Why didn't I post it, put in a
> patch?  Because one of the main reasons that it doesn't work now is the
> insane way that much Linux libraries are installed.  If folks would honor

Would you mind telling us how, so that we understand the problem?

> hier(7) then  all linux libs would go into /usr/compat/usr/lib, but
> instead, many linux ports (including browsers, believe me) install into
> $(PREFIX)/lib/libsubdir.  This means every single linux app that uses linux
> libs hsa to be run with a shell wrapper, artificially extending the
> LD_LIBRARY_PATH.  Since no porter of an app installing libs knows all the
> ports that might use their libs, random breakages are the rule of the day,
> to say nothing of the egregious harm to security this kind of strategy
> causes.  It's a big reason why the flash things don't work.  Want proof?
> Go use the linux ldd to see just how long the list of libraries is, that
> those extensions use, then  you'll begin to see.  Not all those libs are
> browser products, either.  Have fun trying to get a wrapper to work there.
>
> I volunteered to fix this situation all myself, if only the ports
> management would give me written agreement that the strategy I decry is in
> fact bad software practice, so that I may point to that document to port
> authors, when I ask for permission to edit their work.  Ports management
> hasn't seen fit to reply, or at least, I haven't seen it if they did.  I
> don't intend to force anyone, but without having ports mangement backing, I
> am NOT going to have this argument with every porter, no way.  I tried that
> once, and at least one fellow told me he thought that requiring every linux
> application to have it's own wrapper was the "cleaner" way to go.  Huh, if
> that's so, then I guess I should be stopped anyhow.  You think that way?

I think you are referring to me here. I think the important part to  
understand my opinion to install end-user applications into PREFIX  
instead of LINUXPREFIX (note: linux library ports _have_ to go to  
LINUXBASE) is missing here.

No user shall have subdirs of LINUXPREFIX in his path. This would open  
up Pandorra's box.

A clean way to achieve this is to have something in prefix which calls  
the linux program. This can be a symlink or a wrapper in PREFIX. If  
you install parts of a port into LINUXPREFIX and a link/wrapper in  
PREFIX (or more generic: if you have 2 different prefixes in a port),  
you have to do some ports-magic. If you install the port in a  
sub-directory in PREFIX and add a wrapper in the PREFIX/bin, you don't  
have to do ports-magic.

Writting a wrapper is easy, porting linux programs is already hard,  
and the ports-magic is something which can result in tears when not  
done correctly.

Also don't underestimate the pitfalls with accessing linux libs in the  
linuxulator when they are in LINUXPREFIX. The best solution would be  
to rewrite the linux run time linker and get rid of the linux default  
one, but this is not really a pragmatic solution, we will get hit by  
problems as soon as something important changes in the linux run time  
linker, and we don't have the man-power to permanently keep up.

The current way of handling the linuxulator things in the ports is not  
the ideal way, it is a pragmatic way. It's weighting the good and the  
bad things of the different ways to get it working, and trying to do  
it in a way which is beneficial to most people.

Bye,
Alexander.

-- 
Absence makes the heart grow fonder.
		-- Sextus Aurelius

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-ports mailing list