Hi list,
Seeing as I haven't tried pkgsrc on Linux before I decided to try it out
on my host system, Fedora Core 6, to see if anything needed tweaking (I
use pkgsrc on netbsd so am fairly familiar with it), especially as I
have justly "blindly recommended" it :)
Hopefully this will be helpful to anyone else trying (perhaps the
makings of a hint if someone with LFS went through similar examples?).
I started from scratch to compile "tuxracer" (what else? :)
Following the on-line documentation I extracted pkgsrc.tar.gz (from
www.pkgsrc.org) to /usr, and ran /usr/pkgsrc/bootstrap/bootstrap.
To compile and install into /usr/pkg/{bin,lib,etc} (including dependencies):
cd /usr/pkgsrc/games/tuxracer && make && make install
Things I tweaked in my /usr/pkgsrc/etc/mk.conf:
X11BASE = /usr #pkgsrc looks for include/X11/X.h on the host system,
which, for me, was in /usr
I had to use /usr/pkgsrc/bin/bmake instead of "make" to make install
packages.
I had to make sure /usr/pkg/bin/pkg-config was used not my host's copy
in /usr/bin (ie. set PATH)
I had to install /usr/pkgsrc/devel/imake for some X11 dependencies. This
involved fixing the xorg-cf-files Makefile. This also involved
installing x11/xproto manually (ie. the dependency wasn't handled). I
also had to bash it into working by faking pkg-config output.
For the SDL dependency -> nas dependency I had to bodge
work/.tools/bin/imake as well as pkg-config :( I removed nas support in
SDL as a quick fix after this failed.
I also specified CFLAGS += in the mk.conf for optimizations (note the +=
not and =, as some packages require special CFLAGS...)
Sources are stored in /usr/pkgsrc/distfiles (in case you need to
manually download any).
Make sure your PATH and MANPATH point to /usr/pkg (or whatever you chose
for the pkgsrc base.)
There is a nice "bmake show-options" functionality which lets you
configure the packages so as not to compile unwanted supports for kde
etc. You can globally set options in mk.conf (ala portage). I couldn't
figure out how to show-options for dependencies automatically tho.
"bmake clean CLEANDEPENDS=YES" is useful.
Results:
pkgsrc checks its own pkg db for dependency checking (by default in
/var/db). For a fresh pkgsrc install this was empty so all the
dependencies were compiled (even though most of them already existed on
the host system, just not in /var/db). You could add fake entries into
/var/db but that's an ugly fudge.
After compiling and installing tuxracer (which works) I checked what
pkgsrc had compiled and installed for this using the "pkg_info" tool in
/usr/pkg/sbin.
[EMAIL PROTECTED] SDL]$ /usr/pkg/sbin/pkg_info
imake-1.0.2 Imake and other utilities from modular X.org
renderproto-0.9.2 Render extension headers from modular X.org
perl-5.8.8nb3 Practical Extraction and Report Language
expat-2.0.0nb1 XML parser library written in C
Xft2-2.1.7nb2 Library for configuring and customizing font access
freetype2-2.2.1nb2 Font rendering engine and library API
jpeg-6bnb3 IJG's jpeg compression utilities
arts-1.5.5 Analog Real-Time Synthesizer
Xfixes-2.0.1nb4 X Fixes extension of X RandR
Xrender-0.9.0nb1 Client library for the X Rendering Extension protocol
aalib-1.4.0.5nb2 ASCII Art library
autoconf-2.61 Generates automatic source code configuration scripts
xproto-7.0.9nb3 X protocol and ancillary headers from Xorg X11
png-1.2.14nb1 Library for manipulating PNG images
automake-1.10 GNU Standards-compliant Makefile generator
randrproto-1.1.2 Randr extension headers from modular X.org
qt3-libs-3.3.7 C++ X GUI toolkit
pkg_install-20061103 Package management and administration tools for pkgsrc
xcursor-1.1.2nb2 Client-side cursor loading library for X
pax-20060202 POSIX standard archiver with many extensions
xpkgwedge-1.16 Allows X11 pkgs to be built and used outside of
${X11BASE}
p5-perl-headers-2.6.18-1.2869.fc6nb3 Perl header files
glib2-2.12.4nb1 Some useful routines for C programming (glib2)
tcl-8.4.14 Ousterhout's Tool Command Language, a scripting language
unzip-5.52nb3 List, test and extract compressed files in a ZIP archive
libmad-0.15.1bnb1 High-quality MPEG audio decoder
bootstrap-mk-files-20061111 *.mk files for the bootstrap bmake utility
nasm-0.98.39nb2 General-purpose x86 assembler
smpeg-0.4.4nb13 SDL MPEG Player Library
Xrandr-1.0.2nb3 X RandR extension (Library)
libaudiofile-0.2.6nb1 Sound library for SGI audio file
digest-20060826 Message digest wrapper utility
libogg-1.1.3 Ogg project codecs library
mng-1.0.9nb1 Multiple-image Network Graphics (MNG) reference library
libtool-base-1.5.22nb4 Generic shared library support script (the script
itself)
MesaLib-6.4.2nb2 Graphics library similar to SGI's OpenGL
mtree-20040722 Utility for mapping and checking directory hierarchies
libvorbis-1.1.2 Library for the Ogg Vorbis audio encoding format
x11-links-0.30 Shadow tree of links to native X11 headers and libraries
tiff-3.8.2nb3 Library and tools for reading and writing TIFF data
files
lcms-1.15nb2 Light Color Management System -- a color management
library
SDL-1.2.11nb1 Simple DirectMedia Layer, a cross-platform
multimedia library
tnftp-20050625 The enhanced FTP client in NetBSD
pkgmanpages-20050911 Manual page(s) for the packages collection
SDL_mixer-1.2.7nb1 Multi-channel audio mixer library
tuxracer-0.61nb12 3D penguin racing game using OpenGL
xorg-cf-files-1.0.2 Xorg imake rules
esound-0.2.36nb1 The Enlightened sound daemon
glu-6.4.2 GLU polygon tessellation facility for Mesa
fontconfig-2.4.2 Library for configuring and customizing font access
pkg-config-0.21 System for managing library compile/link flags
qt3-tools-3.3.7 QT GUI (WYSIWYG) builder and other tools
I should note I only specified not to include nas support in my mk.conf,
and had I specified other supports to be removed less of the above stuff
would have been compiled.
I also checked against which libraries tuxracer was compiled...
[EMAIL PROTECTED] SDL]$ ldd `which tuxracer`
linux-gate.so.1 => (0x00d68000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00c93000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00c77000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00aa1000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x006de000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00ba5000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0x007d0000)
libXt.so.6 => /usr/lib/libXt.so.6 (0x00761000)
libdl.so.2 => /lib/libdl.so.2 (0x00a75000)
libtcl84.so.1 => /usr/pkg/lib/libtcl84.so.1 (0x00110000)
libSDL-1.2.so.0 => /usr/pkg/lib/libSDL-1.2.so.0 (0x001f2000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00a7b000)
libSDL_mixer-1.2.so.0 => /usr/pkg/lib/libSDL_mixer-1.2.so.0
(0x002ae000)
libGL.so.1 => /usr/pkg/lib/libGL.so.1 (0x0032f000)
libGLU.so.1 => /usr/pkg/lib/libGLU.so.1 (0x007e7000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0090b000)
libm.so.6 => /lib/libm.so.6 (0x00a4c000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x006bc000)
libc.so.6 => /lib/libc.so.6 (0x00d69000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00a9c000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00a94000)
/lib/ld-linux.so.2 (0x008f0000)
libaa.so.1 => /usr/pkg/lib/libaa.so.1 (0x006e6000)
libsmpeg-0.4.so.0 => /usr/pkg/lib/libsmpeg-0.4.so.0 (0x00bb5000)
libgpm.so.1 => /usr/lib/libgpm.so.1 (0x008bc000)
pkgsrc include paths included /usr/lib so a lot of the libraries are not
the ones compiled by pkgsrc...
I manually updated /usr/pkg/lib/libGL.so to my system's
/usr/lib/libGL.so to get hardware accelerated tuxracer.
It seems to me to be an "all or nothing" affair. Either use it from the
beginning of your LFS installation to compile everything (and thus
against the "spirit" of LFS as discussed in the original thread
vis-a-vis portage etc) or don't use it, unless you want wasted
space/time although arguably the ease of "make install" might save you
lots (of time)...
It always comes down to personal preference...
Great, I can get back to some work now :)
HTH
Amadeus
ps. If there's a package you can't find in pkgsrc try pkgsrc-wip (work
in progress)
Zeb Packard wrote:
> The one thing I would really like though, is some sort of general
> "here's how to handle dependancies in PM"
>
--
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page