[gobolinux-users] I'm new; Don't hurt me ;)

Andy Feldman nereusren at gmail.com
Thu Dec 28 15:48:21 UTC 2006


On 12/27/06, Stefan de Konink <skinkie at xs4all.nl> wrote:
> But what do you do with packages that are know to not work (like the
> package masking in portage). Or certain versions work on certain platforms
> etc.? Or have dependancies?

There's two things I see here, and I'm not sure which one you're
addressing, so I'll mention both:

There's no official management utility that does the equivalent of
"emerge world." There is an unofficial script that does it
("InstallPackage Freshen" to get it) but I've never used it. It does
seem to have an option to exclude a given list of packages from a
system update, so presumably you could write a wrapper script that
reads your mask file and passes them as the proper command-line
argument to Freshen.

If you mean broken dependencies where AppA won't compile against the
current version of LibB 2.0, but instead needs the older version 1.2:
support for more specific dependencies is being actively developed.
The capabilities are mostly in place in the Scripts, but most recipes
haven't been updated to use the new syntax yet. Maybe someone who's
actually worked on it can give a better status update, since I haven't
really paid that much attention :-).

Either way, resolving such conflicts yourself isn't much trouble once
you know what the right dependency is. You can have multiple versions
of any Lib or Program installed at once, and you can control which one
is the "active" one by symlinking it into place with SymlinkProgram
LibB. Assuming there aren't any naming conflicts, you can even have
multiple versions of a lib active at once. Here's how I'd solve the
above dependency problem:

SymlinkProgram LibB 1.2
Compile AppA
SymlinkProgram LibB 2.0

If AppA is really badly behaved the second SymlinkProgram might break
it, but in that case I'm not sure how anyone would use AppA even in
other distros. You'd have to compile it statically, I guess.

I have certainly used this trick successfully, e.g. to compile k3b
against Qt3 instead of Qt4, or to use an older version of GCC to
compile a specific program that wouldn't work with GCC4.

Hope that answers your question,
-Andy


More information about the gobolinux-users mailing list