[tex-live] TeX Live 2008, i386-freebsd, FreeBSD 6.4 and i386-linux
Conny Andersson
unitex at telia.com
Wed Mar 18 22:36:33 CET 2009
Hi all of you: Yue Wang, Norbert Preining, Edward Barrett, Karl Berry
All of my problems with TeX Live 2008 on FreeBSD 6.4 are solved. Without
the help from you Yue Wang and Norbert Preining this would not have been
possible. Thank you very much.
First I turn to you Yue Wang:
I have successfully built the TeX Live 2008 for i386-freebsd from source
(texlive-20080816-source.tar.lzma). As you suggested.
> But Conny, can you try to build the TeXLive source tree on your
> FreeBSD 6.4, and copy all the binaries to your bin/freebsd-i386
> directory. This should be work for you (and no libmap.conf is needed).
> Only by this way all the libraries will be correctly linked. And this
> should be the best way to solve your problem.
Yes it was!
You also made clear to me that:
> Before building the sources, read the README carefully
> (for example, you should always set the TL_MAKE to gmake, and set the
> fontconfig library path to /usr/local)
In the README I saw that 'Bison and Flex (or maybe equivalents) are needed
for web2c'. Flex was on my system, but not bison, so I built bison from
/usr/ports/devel/bison/. I edited the Build-script to ${TL_MAKE=gmake}. I
also noticed that --without-xindy, was the default when reading/editing the
Build script.
I called ./Build --with-fontconfig=/usr/local
And, after circa 90 minutes of a scrolling xterm-screen I got:
/home/unitex/texlive-20080816-source/inst/bin/i386-unknown-freebsd6.4 && strip
* >/dev/null 2>&1 || true
make world done.
7243.64 real 6184.86 user 487.10 sys
./Build: 292 binaries in /home/unitex/texlive-20080816-source/inst/bin.
The build run smoothly, but I saw i386-unknown-freebsd6.4 several times and
was surprised. But, I let the build proceed. I checked out that it did come
from the shell-script config.guess's 'echo i386-unknown-freebsd`echo
${UNAME_RELEASE}' in texlive-20080816-source/config/, maybe beacuse I had
recompiled the normal GENERIC kernel to my custom kernel ALICE.
But, i386-unknown-freebsd6.4 is nothing other than the name of a directory.
And, I am not using that directory for anything else than copying my fresh,
nicely built binaries from. I did not copy all 292 binaries, just those
that already were present in /usr/local/texlive/2008/bin/i386-freebsd.
I did not delete the leftovers binaries, they can be useful later on. In
fact I kept the texlive-20080816-source/ as is, after the build.
---
Before the build I had removed all of texlive from my disc, to get a
cleaner starting point. No symlinks referring from /usr/local/bin to
texlive/2008/bin/i386-linux/binaries. When removing I used Norbert's
advice:
> Calling
> tlmgr uninstall
> should have done all that for you
Then I installed as Norbert adviced me:
> It seems that the binaries we have for lzmadec.i386-freebsd are not
> working.
>
> Do you have on your system a working lzmadec? If yes you can do the
> following:
>
> - get the network installation package
> mirror.ctan.org/systems/texlive/tlnet/2008/install-tl-unx.tar.gz
> - unpack it
> - replace
> install-tl/tlpkg/installer/lzma/lzmadec.i386-freebsd
> with a working copy
> - call install-tl as is (thus installing from the network), or with
> perl ./install-tl -location /dvd/texlive/
> which will use the packages from the DVD.
> - after the installation is done again replace the lzmadec.i386-freebsd
> in DESTINATION_FOLDER/texlive/2008/tlpkg/installer/lzma/
> Hope that helps.
The fresh new binaries were copied (so the already installed ones were
overwritten one by one as I saw them as needed. The overwritten ones did
come from the foregoing install from the DVD, TeX Collection).
Last, I called texconfig, and rebuilt the filename databases, so I got
mktexlsr: Done
---
And, all binaries are now working. Earlier ldd on i386-freebsd binaries
gave (with pdflatex as an example):
unitex at alice [/dvd/texlive/bin/i386-freebsd] > ldd ./pdflatex
./pdflatex:
libm.so.5 => not found (0x0)
libc.so.7 => not found (0x0)
And, i386-linux gave (when installed):
unitex at alice [/usr/local/bin] > ldd pdflatex
pdflatex:
libm.so.6 => /lib/obsolete/linuxthreads/libm.so.6 (0x28194000)
libc.so.6 => /lib/obsolete/linuxthreads/libc.so.6 (0x281bb000)
/lib/ld-linux.so.2 (0x2816d000)
NOW ldd gives (and also confirms working symlinks):
unitex at alice [/usr/local/bin] > ldd pdflatex
pdflatex:
libm.so.4 => /lib/libm.so.4 (0x2818c000)
libc.so.6 => /lib/libc.so.6 (0x281a2000)
Much more BSD-like, and now xdvi and all other things work without
problems.
My problems are now solved. And I am very happy, thanks to you.
---
Library summary to why TeX Live 2008 does not work on FreeBSD 6.4:
On the DVD in [tlpkg/installer/lzma] > ldd lzmadec.i386-freebsd
lzmadec.i386-freebsd:
libc.so.7 => not found (0x0
On the DVD in [tlpkg/installer/lzma] > ldd lzma.i386-freebsd
lzma.i386-freebsd:
libstdc++.so.6 => not found (0x0)
libm.so.5 => not found (0x0)
libgcc_s.so.1 => not found (0x0)
libc.so.7 => not found (0x0)
The now working in my /usr/local/texlive/2008/tlpkg/installer/lzma/:
[tlpkg/installer/lzma] > ldd lzmadec.i386-freebsd
lzmadec.i386-freebsd:
libc.so.6 => /lib/libc.so.6 (0x2807b000)
[tlpkg/installer/lzma] > ldd lzma.i386-freebsd
lzma.i386-freebsd:
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x2808d000)
libm.so.4 => /lib/libm.so.4 (0x28158000)
libc.so.6 => /lib/libc.so.6 (0x2816e000)
(To try to run i386-linux binaries, that I see as no good solution.)
So, the most clean, easy way to install a working TeX Live 2008 on a
FreeBSD system that complains about missing libraries is to build binaries
from source - the texlive-20080816-source.tar.lzma . Lesson learned by
doing, so to speak.
---
On Sun, Mar 15, 2009 at 11:46:54PM +0100, Conny Andersson wrote:
>> So I did that, but then libc.so.7 did pop up as missing - again - when
>> trying to run any TeX-program. And, solving that via /etc/libmap gave
>> ld-linux.so.1 as missing. And, solving that gave me 'segmentation fault'.
>> Like Russian dolls ...
On Tue, 17 Mar 2009 18:14:33 +0000, Edd Barrett wrote:
> This is exactly why I made a port for OpenBSD. The shared libs on
> community driven operating systems bump quickly. By making a port, the
> build is automated every 2 weeks and put on the FTP servers, linking the
> libraries -current is using at the time.
> You can try symlinking the missing libs, but its a hack and probably
> will break at some stage.
As matter of fact Edward, I did read your very interesting article 'Porting
TEX Live to OpenBSD' in the paper edition of TUGboat, Volume 29 (2008). It
was for the third time I read it, now when trying to solve my problem. You
had to work very hard to port TeX Live, but you made it. So, it is not so
easy to make a FreeBSD port, but your work on the port to OpenBSD may have
made it a lot easier.
---
Yue Wang wrote that:
> Maybe for TL09 we should consider building binaries on old releases (like
> 5.x) so all the releases will be supported. (But newer versions like 6 and 7
> should install extra compatibility packages from ports tree).
I think that is a very good idea. I saw in the article 'explaining-bsd':
'BSD handles library version upgrades by providing compatibility modules
for earlier library versions, so it is possible to run binaries which are
several years old with no problem.'
And, in a 'migration-guide.html:
'Any changes that could break backward compatibility (including kernel or
library interefaces) are strongly discouraged, and will not be permitted
except as a last-resort solution to a critical problem.'
On March 17, Karl Berry wrote:
> Well, that seems like a problem. If people on newer systems have to
> install more packages, then the benefit of "supporting" older systems is
> rather murky.
>
> Anyway, of course it's up to you FreeBSD guys to figure out the
> maximally useful binaries. I'll just take what I'm given :).
I think that backward compatibility, is no (big) problem. It might already
have been done in/via the GENERIC kernel:
options COMPAT_43 # Compatible with BSD 4.3 [KEEP #THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
I, myself, always look for the most stable FreeBSD with the longest time to
live, i.e. supported by freebsd-security-notifications. Most of the time it
means one step back in branch, from 7.x to 6.x etc.
---
I am happy, and I am very grateful to you Yue Wang and Norbert Preining.
And, all the rest of you who wrote the sources that made my build run
smoothly. Thank you all for the nice approach you have when helping guys
like me. At last, thank you Edward Barrett for the exceptional article in
TUGboat.
Happy TeX-greetings - best wishes,
Conny
=-=-=-=-=-=-=-=-=-=
Conny Andersson
<unitex at telia.com>
=-=-=-=-=-=-=-=-=-=
More information about the tex-live
mailing list