LFS Xorg

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einleitung

Diese Anleitung beschreibt die Installation Xorg, KDE, kvdr unter LFS-6.0

Hinweis
Hinweis

Diese Anleitung wird Schritt für Schritt vervollständigt. Prinzipiell ist der Ablauf für XFree86 nahezu identisch. Die Anleitung folgt natürlich in weiten Teilen BLFS.
wirbel


Xorg

libpng-1.2.8

Testen ob libpng-1.2.8 installiert ist

pkg-config --modversion libpng

falls nicht installieren:

cd /usr/src
wget http://prdownloads.sourceforge.net/libpng/libpng-1.2.8.tar.bz2 
wget http://www.linuxfromscratch.org/blfs/downloads/6.0/libpng-1.2.8-link_to_proper_libs-1.patch 
tar xvfj libpng-1.2.8.tar.bz2
cd libpng-1.2.8
patch -Np1 -i ../libpng-1.2.8-link_to_proper_libs-1.patch &&
make prefix=/usr ZLIBINC=/usr/include \
    ZLIBLIB=/usr/lib -f scripts/makefile.linux &&
make prefix=/usr install -f scripts/makefile.linux
/sbin/ldconfig
cd /usr/src
mv libpng-1.2.8.tar.bz2 packages
mv libpng-1.2.8-link_to_proper_libs-1.patch packages
rm -r libpng-*

FreeType-2.1.9

Bitte überspringen, falls Freetype-2.1.9 bereits installiert ist.

cd /usr/src
wget http://prdownloads.sourceforge.net/freetype/freetype-2.1.9.tar.bz2 
wget http://www.linuxfromscratch.org/blfs/downloads/6.0/freetype-2.1.9-bytecode_interpreter-1.patch 
tar xvfj freetype-2.1.9.tar.bz2
cd freetype-2.1.9
patch -Np1 -i ../freetype-2.1.9-bytecode_interpreter-1.patch &&
./configure --prefix=/usr &&
make &&
make install
/sbin/ldconfig
cd /usr/src
mv freetype-2.1.9.tar.bz2 packages
mv freetype-2.1.9-bytecode_interpreter-1.patch packages
rm -r freetype*

expat-1.95.8

Bitte überspringen, falls expat-1.95.8 bereits installiert ist.

cd /usr/src
wget http://prdownloads.sourceforge.net/expat/expat-1.95.8.tar.gz 

tar xvfz expat-1.95.8.tar.gz
cd expat.1.95.8
./configure --prefix=/usr &&
make &&
make install
cd /usr/src
mv expat-1.95.8.tar.gz packages
rm -r expat-*

Fontconfig-2.2.3

cd /usr/src
wget http://fontconfig.org/release/fontconfig-2.2.3.tar.gz 
tar xvfz fontconfig-2.2.3.tar.gz
cd fontconfig-2.2.3
./configure --prefix=/usr \
    --sysconfdir=/etc --disable-docs &&
make &&
make install
/sbin/ldconfig
cd /usr/src
mv fontconfig-2.2.3.tar.gz packages
rm -r fontconfig*

Grafiktreiber

An dieser Stelle muss der Grafiktreiber geladen werden. Ich verwende eine GF4MX400, deswegen als Beispiel:

/usr/src
wget http://download.nvidia.com/XFree86/Linux-x86/1.0-7664/NVIDIA-Linux-x86-1.0-7664-pkg1.run
chmod +x NVIDIA-Linux-x86-1.0-7664-pkg1.run
./NVIDIA-Linux-x86-1.0-7664-pkg1.run
modprobe nvidia
mv NVIDIA-Linux-x86-1.0-7664-pkg1.run packages

Xorg-6.8.2

Bitte überspringen, falls Xorg bereits installiert ist.

cd /usr/src
wget ftp://ftp.opengroup.org/pub/x.org/pub/X11R6.8.2/src-single/X11R6.8.2-src.tar.bz2
tar xfj X11R6.8.2-src.tar.bz2
cd X11R6.8.2 
sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile
pushd config/util &&
make -f Makefile.ini lndir
cp lndir /usr/bin/
popd
mkdir ../xcbuild &&
cd ../xcbuild &&
lndir ../xc

Die nachfolgende Datei kann sicherlich bequemer mit einem Editor erstellt werden.

cat > config/cf/host.def << "EOF"
/* Begin Xorg host.def file */
 
/* System Related Information.  If you read and configure only one
 * section then it should be this one.  The Intel architecture defaults 
 * are set for a i686 and higher.  Axp is for the Alpha architecture 
 * and Ppc is for the Power PC.  AMD64 is for the Opteron processor. 
 * Note that there have been reports that the Ppc optimization line 
 * causes segmentation faults during build.  If that happens, try 
 * building without the DefaultGcc2PpcOpt line.  ***********/
 
/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce \
                              -fno-strict-aliasing -march=i686 */
/* #define DefaultGccAMD64Opt -O2 -fno-strength-reduce \
                              -fno-strict-aliasing */
/* #define DefaultGcc2AxpOpt  -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt  -O2 -mcpu=750 */

#define HasFreetype2            YES
#define HasFontconfig           YES
#define HasExpat                YES
#define HasLibpng               YES
#define HasZlib                 YES

/*
 * Which drivers to build.  When building a static server, each of 
 * these will be included in it.  When building the loadable server 
 * each of these modules will be built.
 *
#define XF86CardDrivers         mga glint nv tga s3virge sis rendition \
                                neomagic i740 tdfx savage \
                                cirrus vmware tseng trident chips apm \
                                GlideDriver fbdev i128 \
                                ati AgpGartDrivers DevelDrivers ark \
                                cyrix siliconmotion vesa vga \
                                XF86OSCardDrivers XF86ExtraCardDrivers
*/

/*
 * Select the XInput devices you want by uncommenting this.
 *
#define XInputDrivers           mouse keyboard acecad calcomp citron \
                                digitaledge dmc dynapro elographics \
                                microtouch mutouch penmount spaceorb \
                                summa wacom void magictouch aiptek
 */

/* Most installs will only need this */

#define XInputDrivers           mouse keyboard

/* Disable building Xprint server and clients until we get them figured
 * out but build Xprint libraries to allow precompiled binaries such as
 * Acrobat Reader to run.
 */

#define XprtServer              NO
#define BuildXprintClients      NO

/* End Xorg host.def file */
EOF

Dann endlich kann Xorg gebacken werden:

sed -i -e "s@^#include <linux/config.h>@/* & */@" \
    `grep -lr linux/config.h *` &&
( make World 2>&1 | tee xorg-compile.log && exit $PIPESTATUS )

make install && 
make install.man &&
ln -sf ../X11R6/bin /usr/bin/X11 &&
ln -sf ../X11R6/lib/X11 /usr/lib/X11 &&
ln -sf ../X11R6/include/X11 /usr/include/X11
cd /usr/src
mv X11R6.8.2-src.tar.bz2 packages
cat > ~/.xinitrc << "EOF"
# Begin .xinitrc file
xterm  -g 80x40+0+0   &
xclock -g 100x100-0+0 &
twm
EOF

cd /usr/src
wget ftp://ftp.gnu.org/savannah/files/freefont/freefont-ttf.tar.gz
tar xfvz freefont-ttf.tar.gz
cd freefont-ttf/sfd && mv *.tff /usr/X11R6/lib/X11/fonts/TTF
cd /usr/src
mv freefont-ttf.tar.gz packages
rm -r freefont*

Anschließend wird in /etc/ld.so.conf /usr/X11R6/lib ergänzt und ldconfig aufgerufen. Außerdem wird in /etc/profile die $PATH Variable um /usr/X11R6/bin ergänzt, z.B. so:

export PATH=$PATH:/usr/X11R6/bin

Der erste Start von Xorg

Zuerst wird eine Vorgabedatei erstellt, hier am Beispiel einer GF4MX400, die als Monitor einen TV am S-Videeo Ausgang betreibt und einer Maus mit Scrollrad am PS/2 Port:

cd ~
Xorg -configure

Entsprechend dem aktuellen System wird die Datei editiert:

Section "ServerLayout"
  Identifier  "X.org Configured"
  Screen 0    "Screen0" 0 0
  InputDevice "Keyboard0" "CoreKeyboard" 
EndSection

Section "Module"
  Load "glx"
  Load "extmod"
  Load "dbe"
  Load "record"
  Load "xtrap"
  Load "type1"
  Load "freetype"
EndSection

Section "InputDevice"
  Identifier "Keyboard0"
  Driver "kbd"
EndSection

Section "InputDevice"
  Identifier "Mouse0"
  Driver "mouse"
  Option "Protocol" "imps/2"
  Option "Device" "/dev/input/mouse0"
  Option "Buttons" "5"
  Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
  Identifier "Monitor0"
  VendorName "Monitor Vendor"
  ModelName  "Monitor Model"
EndSection

Section "Device"
  Option "NoLogo" "true"
  Option "NvAGP" "3"
  Option "ConnectedMonitor" "TV"
  Option "TVStandard" "PAL-B"
  Option "TVOutFormat" "S-Video"
  Identifier "Card0"
  Driver "nvidia"
  VendorName "nVidia Corporation"
EndSection

Section "Screen"
  Identifier "Screen0"
  Device "Card0"
  Monitor "Monitor0"
  DefaultDepth 24
  SubSection "Display"
    Viewport 0 0
    Depth 24
  EndSubSection
EndSection

Der X-Server startet nur, wenn eine gültiger und funktionierender Screen gefunden wird, also eine Kombination aus Device und Monitor, ebenso muss die Section InputDevice gültig sein.

Nachdem der X-Server ordnungsgemäß startet, wird die erzeugte xorg.conf.new nach /etc/X11 kopiert:

X -config ~/xorg.conf.new
mv ~/xorg.conf.new /etc/X11/xorg.conf

Jetzt muss sich der X-Server mit startx starten lassen und mit STRG+ALT+BACKSPACE wieder beenden lassen.

QT-lib Installation

libjpeg-06b

Prüfen, ob libjpeg installiert ist mit

which cjpeg

Installation:

cd /usr/src && wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
tar xfz jpegsrc.v6b.tar.gz && cd jpegsrc.v6b
./configure --prefix=/usr --enable-static --enable-shared &&
make &&
make install
cd /usr/src && mv jpegsrc.v6b.tar.gz packages && rm -r jpeg*

lcms-1.14

Prüfen, ob lcms installiert ist mit

pkg-config --modversion lcms

Installation:

cd /usr/src && wget http://www.littlecms.com/lcms-1.14.tar.gz 
tar xfz lcms-1.14.tar.gz 
cd lcms-1.14
./configure --prefix=/usr &&
make &&
make install
cd /usr/src && mv lcms-1.14.tar.gz packages && rm -r lcms*

libmng

Prüfen, ob libmng-1.0.9 installiert ist, falls nicht: installieren.

Hinweis
Hinweis

Anm.: Die libmng-1.0.8 bei sourceforge lässt sich nicht entpacken. Leider scheint bei libmng-1.0.9 autogen.sh nicht mehr zu funktionieren und es existiert auch kein ./configure, deswegen hier ein work-around.
wirbel


cd /usr/src && wget http://mesh.dl.sourceforge.net/sourceforge/libmng/libmng-1.0.9.tar.gz
tar xfz libmng-1.0.9.tar.gz && cd libmng-1.0.9
cat >> /usr/src/libmng-1.0.9/autogen.sh<< "EOF"
# autogen.sh
#
# move out configure.in
if ! test -f configure.in; then
  echo "copying configure.in"
  ln -s makefiles/configure.in .
fi

# move out the macros and run aclocal
if test ! -f acinclude.m4 -a -r makefiles/acinclude.m4; then
  echo "copying configure macros"
  ln -s makefiles/acinclude.m4 .
fi

# copy up our Makefile template
if ! test -f Makefile.am; then
  echo "copying automake template"
  ln -s makefiles/Makefile.am .
fi

echo "running aclocal"
aclocal

# libtool is named glibtool on MacOS X
for LIBTOOLIZE in libtoolize glibtoolize nope; do
  ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break
done
if test x$LIBTOOLIZE = xnope; then
  echo "error: Could not find libtoolize in the path!"
  echo "  You'll need to install a copy of libtool before continuing"
  echo "  with the generation of the build system."
  echo
  exit 1
fi

echo "running $LIBTOOLIZE"
$LIBTOOLIZE --automake

echo "running automake"
automake --foreign --add-missing

echo "building configure script"
autoconf

# and finally invoke our new configure
./configure $*

# end
EOF

chmod 755 autogen.sh &&
sh autogen.sh &&
./configure --prefix=/usr &&
make &&
make install
cd /usr/src && mv libmng-1.0.9.tar.gz packages && rm -r libmng*

QT-3.3.4 installieren

Wenn alle vorherigen Installationen erfolgreich waren, kann mit QT begonnen werden. QT sollte nach /opt/qt-$VERSION installiert werden, um für zukünftige Upgrades ein leichtes Ersetzen der qt-lib zu ermöglichen. Auf diese Weise kann auch extrem einfach zwischen verschiedenen Versionen mit einem einzigen Link /opt/qt -> /opt/qt-$VERSION "umgeschaltet" werden. Ansonsten folgt auch hier die Installation BLFS.

cd /opt && wget ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.4.tar.bz2 
tar xfj qt-x11-free-3.3.4.tar.bz2
mv qt-x11-free-3.3.4 qt-3.3.4
ln -s /opt/qt-3.3.4 /opt/qt
mv qt-x11-free-3.3.4.tar.bz2 /usr/src/packages
bash
export QTDIR=/opt/qt-3.3.4 &&
export LD_LIBRARY_PATH=/opt/qt-3.3.4/lib:$LD_LIBRARY_PATH &&
export PATH=/opt/qt-3.3.4/bin:$PATH &&
echo "yes" | ./configure -prefix /opt/qt-3.3.4 -qt-gif -system-libpng \
    -system-libmng -system-zlib -system-libjpeg -no-exceptions \
    -thread -plugin-imgfmt-png &&
make &&
make install &&
cd lib &&
ln -s libqt-mt.so libqt.so &&
exit

Anschließend wird in /etc/ld.so.conf /opt/qt/lib ergänzt und ldconfig aufgerufen. Außerdem wird in /etc/profile die $PATH Variable um /opt/qt/bin ergänzt, z.B. so:

export PATH=$PATH:/opt/qt/bin

Wie in BLFS alternativ vorgeschlagen evtl. ~/.bash_profile zu nutzen, ist nicht empfehlenswert, da dann der erweiterte Pfad nur für den jeweiligen Nutzer gefunden wird und nur für diesen dann die QT erreichbar ist.
Die Installation von QT ist damit beendet.

KDE Installation

Wieder wird in /etc/ld.so.conf ergänzt: /opt/kde/lib, in /etc/profiles wird $PATH um /opt/kde/bin ergänzt.
KDE wird hier ebenso wie QT in /opt installiert, um einfaches updaten später zu ermöglichen.

Hinweis
Hinweis

Die Anleitung für KDE folgt ebenso in weiten Teilen BLFS.


mkdir /opt/kde-3.4.1
ln -sf /opt/kde-3.4.1 /opt/kde
cp /etc/profile /etc/profile.sav
echo "export KDEDIR=/opt/kde" >> /etc/profile
echo "export QTDIR=/opt/qt" >> /etc/profile
echo "export PATH=$PATH:/opt/qt/bin:/opt/kde/bin" >> /etc/profile
echo "export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/kde/lib/pkgconfig" >> /etc/profile
echo "export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/opt/qt/lib:opt/kde/lib" \
>> /etc/profile
export KDEDIR=/opt/kde
export QTDIR=/opt/qt
export PATH=$PATH:/opt/qt/bin:/opt/kde/bin
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/kde/lib/pkgconfig
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/opt/qt/lib:opt/kde/lib

Download der Pakete

Jedes einzelne KDE-Paket aus dem Netz zu laden und zu entpacken ist recht mühsam, deswegen ein script, welches prüft, ob alle Pakete schon im Ordner sind, bei Bedarf herunterlädt und entpackt. Wers denn lieber per Hand Browser mag, kanns auch einzeln selbst machen:

mkdir /usr/src/kde && cd /usr/src/kde
cat > /usr/src/kde/get_packages << "EOF"
#!/bin/sh
###########################################################
N1="1"     # aRTS major number
N2="3"     # KDE  major number
N3="4.1"   # KDE  minor numbers
#---------------------------------------------------------
# language identifier like "de", "en", "fr", "it"
LANGUAGE="de"
#---------------------------------------------------------
# download server to be used if package not available
LOCATION="ftp://ftp.gwdg.de/pub/x11/kde/stable/$N2.$N3/src"

BASIC_PKG="kdelibs kdebase"
MULTIMEDIA_PKG="kdemultimedia kdeutils kdenetwork kdegraphics \
                kdebindings kdeartwork kdeadmin kdeaddons \
                kdepim kdeedu kdebindings kdeaccessibility \
		kdetoys kdegames kdeaddons"
############################################################


case "$1" in
	basic)
		if [ ! -e "arts-$N1.$N3.tar.bz2" ] ; then
		  echo "DOWNLOAD: arts-$N1.$N3.tar.bz2"
		  wget "$LOCATION/arts-$N1.$N3.tar.bz2"
		else
		  echo "GEFUNDEN: arts-$N1.$N3.tar.bz2"
		  fi
                if [ ! -e arts-$N1.$N3 ] ; then
		  echo "ENTPACKE: arts-$N1.$N3.tar.bz2"  
		  tar xfj arts-$N1.$N3.tar.bz2
		  fi
		for package in $BASIC_PKG ; do
                  if [ ! -e $package-$N2.$N3.tar.bz2 ] ; then
		    echo "DOWNLOAD: $package-$N2.$N3.tar.bz2"
		    wget "$LOCATION/$package-$N2.$N3.tar.bz2"
		  else
		    echo "GEFUNDEN: $package-$N2.$N3.tar.bz2"
		    fi
		  if [ ! -e $package-$N2.$N3 ] ; then
		    echo "ENTPACKE: $package-$N2.$N3.tar.bz2"
		    tar xfj $package-$N2.$N3.tar.bz2    
		    fi
		  done      
		;;

	optional)	
		if [ ! -e "kde-i18n-$LANGUAGE-$N2.$N3.tar.bz2" ] ; then
		  echo "DOWNLOAD: kde-i18n-$LANGUAGE-$N2.$N3.tar.bz2"
		  wget "$LOCATION/kde-i18n/kde-i18n-$LANGUAGE-$N2.$N3.tar.bz2"
		else
		  echo "GEFUNDEN: kde-i18n-$LANGUAGE-$N2.$N3.tar.bz2"
		  fi
		if [ ! -e kde-i18n-$LANGUAGE-$N2.$N3 ] ; then
		    echo "ENTPACKE: kde-i18n-$LANGUAGE-$N2.$N3.tar.bz2"
		    tar xfj kde-i18n-$LANGUAGE-$N2.$N3.tar.bz2    
		    fi
		for package in $MULTIMEDIA_PKG ; do
                  if [ ! -e $package-$N2.$N3.tar.bz2 ] ; then
		    echo "DOWNLOAD: $package-$N2.$N3.tar.bz2"
		    wget "$LOCATION/$package-$N2.$N3.tar.bz2"
		  else
		    echo "GEFUNDEN: $package-$N2.$N3.tar.bz2"
		    fi
		  if [ ! -e $package-$N2.$N3 ] ; then
		    echo "ENTPACKE: $package-$N2.$N3.tar.bz2"
		    tar xfj $package-$N2.$N3.tar.bz2    
		    fi
		  done    
		;;
        *)
		$0 basic
		;;
esac

# End get_packages; wirbel 20050609
EOF
chmod +x get_packages
./get_packages basic

Jede Menge an Libs

Eine Installation von KDE erfordert viele libs und Tools, die nicht standardmäßig installiert sind.

Hinweis
Hinweis

Die Versionen und Reihenfolge der hier installierten Bibliotheken ist nicht zufällig. Abweichende Versionsnummern können (müssen aber nicht) zu Compilerfehlern führen. Ebenso kann es zu Fehlern kommen, wenn bereits installierte Bibliotheken fehlerhaft ins System eingebunden wurden oder unterschiedliche Versionen von libs existieren.


pkgconfig-0.15.0

which pkg-config
, falls nicht pkgconfig installieren:
cd /usr/src && wget ftp://ftp.fu-berlin.de/unix/linux/mirrors/gentoo/distfiles/pkgconfig-0.15.0.tar.gz 
tar xfz pkgconfig-0.15.0.tar.gz && cd pkgconfig-0.15.0
./configure --prefix=/usr &&
make &&
make install
cd /usr/src && mv pkgconfig-0.15.0.tar.gz packages && rm -r pkgconfig-0.15.0

GLib-2.6.3

Testen, ob glib installiert ist:

pkg-config --modversion glib-2.0

falls nicht installieren:

cd /usr/src && wget ftp://ftp.gtk.org/pub/gtk/v2.6/glib-2.6.3.tar.bz2
tar xfj glib-2.6.3.tar.bz2 && cd glib-2.6.3
./configure --prefix=/usr &&
make &&
make install
cd /usr/src && mv glib-2.6.3.tar.bz2 packages && rm -r glib-2.6.3

libart_lgpl-2.3.17

Testen, ob libart_lgpl-2.3.17 installiert ist:

libart2-config --version

falls nicht installieren:

cd /usr/src && wget ftp://ftp.gnome.org/mirror/gnome.org/sources/libart_lgpl/2.3/libart_lgpl-2.3.17.tar.bz2
tar xfj libart_lgpl-2.3.17.tar.bz2 && cd libart_lgpl-2.3.17
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libart_lgpl-2.3.17.tar.bz2 packages && rm -r libart*

libxml2-2.6.19

Testen, ob libxml2-2.6.19 installiert ist:

xml2-config --version

falls nicht installieren:

cd /usr/src && wget ftp://xmlsoft.org/libxml2-2.6.19.tar.gz
tar xfz libxml2-2.6.19.tar.gz && cd libxml2-2.6.19
./configure --prefix=/usr --with-history &&
make &&
make install
cd /usr/src && mv libxml2-2.6.19.tar.gz packages && rm -r libxml*

libxslt-1.1.14

Testen, ob libxslt-1.1.14 installiert ist:

xslt-config --version

falls nicht installieren:

cd /usr/src && wget ftp://xmlsoft.org/libxslt-1.1.14.tar.gz
tar xfz libxslt-1.1.14.tar.gz && cd libxslt-1.1.14
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libxslt-1.1.14.tar.gz packages && rm -r libxslt*

pcre-6.0

Testen, ob pcre-6.0 installiert ist:

pcre-config --version

falls nicht installieren:

cd /usr/src && wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-6.0.tar.bz2
tar xfj pcre-6.0.tar.bz2 && cd pcre-6.0
./configure --prefix=/usr --enable-utf8 &&
make &&
make install
mv /usr/lib/libpcre.so.* /lib/ &&
ln -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so
ldconfig
cd /usr/src && mv pcre-6.0.tar.bz2 packages && rm -r pcre*

openssl-0.9.7e

Testen, ob openssl-0.9.7e installiert ist:

pkg-config --modversion openssl

falls nicht installieren:

cd /usr/src && wget ftp://ftp.openssl.org/source/openssl-0.9.7e.tar.gz 
tar xfz openssl-0.9.7e.tar.gz && cd openssl-0.9.7e
sed 's/^passwd/openssl-passwd/' doc/apps/passwd.pod \
    > doc/apps/openssl-passwd.pod &&
rm doc/apps/passwd.pod &&
mv doc/crypto/{,openssl_}threads.pod &&
./config --openssldir=/etc/ssl --prefix=/usr shared &&
sed -i 's%SHLIBDIRS= fips crypto ssl%SHLIBDIRS= crypto ssl%g' Makefile &&
make MANDIR=/usr/share/man
make MANDIR=/usr/share/man install &&
cp -r certs /etc/ssl
ldconfig
cd /usr/src && mv openssl-0.9.7e.tar.gz packages && rm -r openssl*

libidn-0.5.17

Testen, ob libidn-0.5.17 installiert ist:

pkg-config --modversion libidn

falls nicht installieren:

cd /usr/src && wget ftp://alpha.gnu.org/pub/gnu/libidn/libidn-0.5.17.tar.gz
tar xfz libidn-0.5.17.tar.gz && cd libidn-0.5.17
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libidn-0.5.17.tar.gz packages && rm -r libidn*

alsa-lib-1.0.9

Testen, ob alsa-lib-1.0.9 installiert ist:

pkg-config --modversion alsa

falls nicht installieren:

cd /usr/src
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.9.tar.bz2
tar xfj alsa-lib-1.0.9.tar.bz2 && cd alsa-lib-1.0.9
./configure --enable-static &&
make &&
make install
ldconfig
cd /usr/src && mv alsa-lib-1.0.9.tar.bz2 packages && rm -r alsa-lib*

popt-1.7

Testen, ob popt-1.7 installiert ist:

if [ -e /usr/lib/libpopt.so ]; then \
  echo "popt found." \
  fi

falls nicht installieren:

cd /usr/src/ &&
wget ftp://ftp.debian.org/debian/pool/main/p/popt/popt_1.7.orig.tar.gz &&
wget http://ftp.debian.org/debian/pool/main/p/popt/popt_1.7-5.diff.gz 
gzip -d popt_1.7-5.diff.gz
tar xfz popt_1.7.orig.tar.gz && cd popt-1.7
patch -Np1 -i ../popt_1.7-5.diff &&
./configure --prefix=/usr &&
cp configure.in configure.ac &&
touch configure.in configure.ac &&
make
make install
ldconfig
cd /usr/src && mv popt_1.7.orig.tar.gz packages && mv popt_1.7-5.diff packages && rm -r popt*

gstreamer-0.8.10

Testen, ob gstreamer-0.8.10 installiert ist:

pkg-config --modversion gstreamer-0.8

falls nicht installieren:

cd /usr/src/ &&
wget ftp://ftp.gnome.org/pub/GNOME/sources/gstreamer/0.8/gstreamer-0.8.10.tar.bz2
tar xfj gstreamer-0.8.9.tar.bz2 && cd gstreamer-0.8.9
./configure --prefix=/usr --sysconfdir=/etc \
    --localstatedir=/var --disable-docs-build &&
make &&
make install &&
gst-register
ldconfig
cp pkgconfig/gstreamer-0.8.pc /usr/lib/pkgconfig
cd /usr/src && mv gstreamer-0.8.10.tar.bz2 packages && rm -r gstreamer*

gstreamer-libs-0.8.9

Testen, ob gstreamer-libs-0.8.9 installiert ist:

pkg-config --modversion gstreamer-libs-0.8

falls nicht installieren:

cd /usr/src && wget ftp://ftp.gnome.org/pub/GNOME/sources/gst-plugins/0.8/gst-plugins-0.8.9.tar.bz2
tar xfj gst-plugins-0.8.9.tar.bz2 && cd gst-plugins-0.8.9
./configure --prefix=/usr --disable-opengl &&
make &&
make install
cd /usr/src && mv gst-plugins-0.8.9.tar.bz2 packages && rm -r gst-plugins*

libmad-0.15.1b

Testen, ob popt-1.7 installiert ist:

if [ -e /usr/lib/libmad.so.0.2.1 ]; then \
  echo "libmad-0.15.1b found." \
  fi

falls nicht installieren:

cd /usr/src &&
wget ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz
tar xfz libmad-0.15.1b.tar.gz && cd libmad-0.15.1b
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libmad-0.15.1b.tar.gz packages && rm -r libmad*

libogg-1.1.2

Testen, ob libogg-1.1.2 installiert ist:

pkg-config --modversion ogg

falls nicht installieren:

cd /usr/src && wget http://downloads.xiph.org/releases/ogg/libogg-1.1.2.tar.gz 
tar xfz libogg-1.1.2.tar.gz && cd libogg-1.1.2
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libogg-1.1.2.tar.gz packages && rm -r libogg*

libvorbis-1.1.0

Testen, ob libvorbis-1.1.0 installiert ist:

pkg-config --modversion vorbis

falls nicht installieren:

cd /usr/src && wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.0.tar.gz 
tar xfz libvorbis-1.1.0.tar.gz && cd libvorbis-1.1.0
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libvorbis-1.1.0.tar.gz packages && rm -r libvorbis*

libtheora-1.0alpha4

Testen, ob libtheora-1.0alpha4 installiert ist:

pkg-config --modversion theora

falls nicht installieren:

cd /usr/src && wget http://downloads.xiph.org/releases/theora/libtheora-1.0alpha4.tar.gz
tar xfz libtheora-1.0alpha4.tar.gz && cd libtheora-1.0alpha4
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv libtheora-1.0alpha4.tar.gz packages && rm -r libtheora*

audiofile-0.2.6

Testen, ob audiofile-0.2.6 installiert ist:

pkg-config --modversion audiofile

falls nicht installieren:

cd /usr/src && wget http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz
tar xfz audiofile-0.2.6.tar.gz && cd audiofile-0.2.6
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv audiofile-0.2.6.tar.gz packages && rm -r audiofile-0.2.6*

TagLib-1.3.1

TODO: taglib-1.3.1 Test

cd /usr/src &&
wget http://developer.kde.org/~wheeler/files/src/taglib-1.3.1.tar.gz
./configure --prefix=/usr
tar xfz taglib-1.3.1 && cd taglib-1.3.1
make
make install
ldconfig
cd /usr/src && mv taglib-1.3.1.tar.gz packages && rm -r taglib*

cdparanoia

Testen, ob cdparanoia installiert ist:

if [ -e /usr/bin/cdparanoia ]; then \
  echo "cdparanoia found." \
  fi

falls nicht installieren:

cd /usr/src &&
wget ftp://ftp.yars.free.net/pub/software/unix/util/cd/cdparanoia-III-alpha9.8.src.tgz &&
wget http://www.linuxfromscratch.org/blfs/downloads/6.0/cdparanoia-III-alpha9.8-includes-1.patch &&
wget http://www.linuxfromscratch.org/blfs/downloads/6.0/cdparanoia-III-alpha9.8-gcc34-1.patch 
tar xfz cdparanoia-III-alpha9.8.src.tgz && cd cdparanoia-III-alpha9.8
patch -Np1 -i ../cdparanoia-III-alpha9.8-includes-1.patch &&
patch -Np1 -i ../cdparanoia-III-alpha9.8-gcc34-1.patch &&
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && 
mv cdparanoia-III-alpha9.8.src.tgz packages && 
mv cdparanoia-III-alpha9.8-includes-1.patch packages &&
mv cdparanoia-III-alpha9.8-gcc34-1.patch packages &&
rm -r cdparanoia-III*

SDL-1.2.8

Testen, ob SDL-1.2.8 installiert ist:

sdl-config --version

falls nicht installieren:

cd /usr/src && wget http://www.libsdl.org/release/SDL-1.2.8.tar.gz
tar xfz SDL-1.2.8.tar.gz && cd SDL-1.2.8
./configure --prefix=/usr &&
make &&
make install
ldconfig
cd /usr/src && mv SDL-1.2.8.tar.gz packages && rm -r SDL*

aRts-1.4.1

Nach so viel Vorbereitung nun das erste KDE Paket. (ca.35MB Plattenplatz während der Installation)

cd /usr/src/kde/arts-1.4.1
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking &&
make
make install

xine-lib-1.0.1

Xine-lib kann auch arts nutzen, deswegen erst jetzt:

cd /usr/src && wget http://mesh.dl.sourceforge.net/sourceforge/xine/xine-lib-1.0.1.tar.gz
tar xfz xine-lib-1.0.1.tar.gz && cd xine-lib-1.0.1
./configure --prefix=/usr --disable-opengl &&
make &&
make install
ldconfig
cd /usr/src && mv xine-lib-1.0.1.tar.gz packages && rm -r xine-lib*

kdelibs

optional: vorher j2sdk-1.4/5.0 installieren. (kdelibs: ca. 220MB Plattenplatz während der Installation)

cd /usr/src/kde/kdelibs-3.4.1
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking --enable-fast-malloc=full &&
make
make install
ldconfig

kdebase

(ca. 195MB während der Installation)

cd /usr/src/kde/kdebase-3.4.1
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking --enable-fast-malloc=full &&
make
make install
ldconfig

KDE startfähig machen und der erste Start von KDE

mv /etc/X11/xinit/xinitrc /etc/X11/xinit/xinitrc.xorg
cat > /etc/X11/xinit/xinitrc << "EOF"
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
    fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
    fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
    fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
    fi

# default for all users: starting kde desktop
# may be overridden by ~/.xinitrc 
exec startkde
EOF
chmod +x /etc/X11/xinit/xinitrc
Nach dem Laden des Grafiktreibers, in meinem Beispiel
modprobe nvidia
, muss sich jetzt KDE mit
startx
starten lassen, Maus mit Scrollrad, Monitor und Grafikkarte müssen funktionieren. Falls das nicht der Fall ist, müssen Konfigdateien und Umgebungsvariablen, insbesondere die $PATH Variable nochmals kontrolliert werden.








__________________________

AB HIER: *NOCH* UNGETESTET.
__________________________








optionale KDE Pakete

Laden und Entpacken der restlichen Pakete:

cd /usr/src/kde &&
./get_packages optional

i18n

i18n Paket zwecks Sprachunterstützung.

cd /usr/src/kde/kde-i18n-$LANGUAGE-3.4.1
./configure --prefix=/opt/kde-3.4.1 &&
make &&
make install &&
ldconfig

kdeadmin

Systemadministrations Programme

cd /usr/src/kde/kdeadmin-3.4.1 &&
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install &&
ldconfig

kdenetwork

Instant messager Kopete, der download manager KGet, und einige andre Programme zum Thema Netzwerk.

cd /usr/src/kde/kdeadmin-3.4.1 &&
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install &&
ldconfig
cat > /etc/rc.d/init.d/lisa << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/lisa

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

#$LastChangedBy: dj $
#$Date: 2004-10-02 11:57:32 -0600 (Sat, 02 Oct 2004) $

. /etc/sysconfig/rc
. $rc_functions

export PATH=$PATH:/opt/kde/bin

case "$1" in
        start)
                echo "Starting LISA Daemon..."
                loadproc /opt/kde/bin/lisa
                ;;

        stop)
                echo "Stopping LISA Daemon..."
                killproc /opt/kde/bin/lisa
                ;;

        reload)
                echo "Reloading LISA Daemon..."
                reloadproc /opt/kde/bin/lisa
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc /opt/kde/bin/lisa
                ;;

        *)
                echo "Usage: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/lisa
EOF

Falls LAN-Browsing benutzt werden soll, müssen /etc/lisarc and ~/.lisarc angelegt werden, sowie im passenden runlevel ein Link zu /etc/rc.d/init.d/lisa angelegt werden. Hilfreich dabei ist Control Center —> Internet & Network —> Local Network Browsing.

kdeartwork

Wallpapers, Themes, Styles, Sounds.

cd /usr/src/kde/kdeartwork-3.4.1 &&
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install &&
ldconfig

kdepim

email client KMail, newsreader KNode etc.

cd /usr/src/kde/kdepim-3.4.1 &&
./configure --prefix=/opt/kde-3.4.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install &&
ldconfig

kdeaddons

to be continued...

kdebindings

to be continued...

kdegames

to be continued...

kdegraphics

to be continued...

kdemultimedia

to be continued...

kdeedu

to be continued...

kdeaccessibility

to be continued...

kdetoys

to be continued...

kdeutils

to be continued...

Noch ein wenig aufräumen

to be continued...

KVDR-0.6.3

.. to be continued

Links