LinkLib Issues In freebsd Lazarus

Bob bob at tania.servebbs.org
Mon Jul 17 21:17:11 UTC 2006


Mike Meyer wrote:

> 
> It's *really* unusual for a port to install a binary tarball if the
> source is available. Most ports that install binaries are for
> commercial products for which source isn't available.
> 

In this case, the unusual rules. Here are the contents of the "ports"
binary.i386-freebsd.tar
demo.tar.gz
doc-pdf.tar.gz
install.sh

> 
> A port is basically a Makefile plus at least some text files. The
> ports tree includes a lot of make machinery to
> fetch/extract/patch/build/etc. based on that. See the porters handbook
> at <URL:
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/index.html
>> for details.


Thanks Mike.

I have been involved in a parallel discussion on the fpc-devel list, and
have discovered a few facts which will impact the manufacture of a
freepascal Lazarus port. In fact, what I have learned will impact the
usability of FPC on freepascal itself.

The "problem" which initiated this thread was the "wrong naming" of some
libraries. Well, it turns out that this renaming was done mid-stream by
the freebsd development team, and not by the freepascal folks.

It seems that from freebsd 6.0 to freebsd 6.1 (the one I am using)
library names were arbitrarily changed. The ones I ran into were libgdk,
libgtk, and libglib. In all previous versions (prior to 6.1) of freebsd,
the lib versions 1.2 were named libgdk12, libgtk12, and libglib12 they
were changed in 6.1 to libgdk-12, libgtk-12, and libglib-12
respectively. I wonder how many more library names were changed? This is
a real blow to any third party software developer, who's software will
likely start to bomb on freebsd6.1, where it ran just fine on 6.0

BIG problem! If I compile a program on my 6.1 system, which makes any
dynamic calls to these libraries (and possibly others as yet unknown),
that executable will ONLY run on freebsd 6.1, and bomb on all prior
versions. My "fix" of patching the freepascal 2.0.2, or your method of
sym-linking, while fixing the local problem of compiling Lazarus, breaks
all portability to previous freebsd installs. This is a bad thing the
freebsd folks have done!

There are some dirty work-arounds, and according to the fpc developers,
they will be implementing some new tools to deal with this in fpc-2.0.4,
who's rc2 has just been released.

I can see making these kinds of changes from a 5.x version to a 6.x
version, as bad as even that would be, but to make such a change from
within the 6.x branch is pretty inconsiderate IMHO.

Given the above, it would be senseless to create a "port" of lazarus,
which would require a "port" of the "patched" fpc sources, (as a
dependency), and then have a development system which was tied to a
particular version of freebsd.

Bob



More information about the freebsd-questions mailing list