Hello,
I've been trying to install XFCE4.4 on a 64-bit version of slackware linux called Slamd64. Unfortunatly, there are no pacakges in existance for all the various dependencies of XFCE4.4 on Slamd64, so they need to be compiled by source. While I can compile ok (in the sense I don't get any errors) some things will *not* work, in particular getting hal/messagebus to automount a cd-rom drive.
Having said that XFCE4.4 *will* run
with the following procedure, this is what I tried and it seemed to run.
For this, I'll assume a normal "default" of slamd64.
Note1: Make sure you install the libjpeg library and python!
Note2: Some of this has, most noticbly the scripts came from CBLFS.
To do this, you'll need to download the following files (found elsewhere on the 'net, for example in freedesktop.org);
* libICE-1.0.3
* libSM-1.0.2
* xproto-7.0.10
* xtrans-1.0.3
* vte-0.15.0
* Linux-pam-0.99.7.1
* gnutls-1.6.1
* libprelude-0.9.12.2
* Linux-pam-0.99.7.1
* policykit
( git clone git://anongit.freedesktop.org/git/PolicyKit )
* docbook-xsl-1.71.0
* docbook-xml-4.4
* xmlto-0.0.18
* dbus-1.0.2
* dbus-glib-0.72
* hal-0.5.8.1
* URI-1.35
* blfs-bootscripts (
http://lfs.osuosl.org/blfs/downloads...060910.tar.bz2)
Note that the best way since these files will often be .tar.gz'd is to decompress each one in its own directory.
And it begins
1. Compile xtrans-1.0.3;
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
2. Compile xproto-7.0.10;
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
3. Compile libICE-1.0.3;
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
4. Compile libSM-1.0.2
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
5. Compile vte-0.15.0
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
6. Compile gnutls-1.6.1
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
7. Compile libprelude-0.9.12.2
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
8. Compile linux-pam-0.99.7.1
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
9. Install docbook-xsl-1.71.0;
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.71.0
cp -v -R VERSION common eclipse extensions fo highlighting html htmlhelp images javahelp lib manpages params profiling slides template website xhtml /usr/share/xml/docbook/xsl-stylesheets-1.71.0
10. Install docbook-xml-4.4;
install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.4
install -v -d -m755 /etc/xml
chown -R root:root .
cp -v -af docbook.cat *.dtd ent/ *.mod /usr/share/xml/docbook/xml-dtd-4.4
Then run these 3 scripts:
script1:
Code:
if [ ! -e /etc/xml/docbook ]; then
xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V4.4//EN" \
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML CALS Table Model V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/calstblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/soextblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Information Pool V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/dbpoolx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/dbhierx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML HTML Tables V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/htmltblx.mod" \
/etc/xml/docbook
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Notations V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/dbnotnx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Character Entities V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/dbcentx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.4//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.4/dbgenent.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/4.4" \
"file:///usr/share/xml/docbook/xml-dtd-4.4" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/4.4" \
"file:///usr/share/xml/docbook/xml-dtd-4.4" \
/etc/xml/docbook
script2;
Code:
if [ ! -e /etc/xml/catalog ]; then
xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//ENTITIES DocBook XML" \
"file:///etc/xml/docbook" \
/etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//DTD DocBook XML" \
"file:///etc/xml/docbook" \
/etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog
script3;
Code:
for DTDVERSION in 4.1.2 4.2 4.3
do
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
/etc/xml/docbook
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
"file:///usr/share/xml/docbook/xml-dtd-4.4" \
/etc/xml/docbook
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
"file:///usr/share/xml/docbook/xml-dtd-4.4" \
/etc/xml/docbook
xmlcatalog --noout --add "delegateSystem" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog
xmlcatalog --noout --add "delegateURI" \
"http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
"file:///etc/xml/docbook" \
/etc/xml/catalog
done
11. Compile xmlto-0.0.18;
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
12. dbus-1.0.2 -- add group and user;
groupadd -g 28 messagebus
useradd -c "D-BUS Message Daemon User" -d /dev/null -u 28 -g messagebus -s /bin/false messagebus
Then compile with ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64
make
make install
install -v -m755 -d /usr/share/doc/dbus-1.0.2
install -v -m644 doc/{TODO,*.{dtd,xml,xsl,txt,c}} /usr/share/doc/dbus-1.0.2
dbus-uuidgen --ensure
13. Compile dbus-glib-0.72;
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64
make
make install
14. Add group & user for policykit;
groupadd -g 26 polkit
useradd -c "Policy Kit Daemon User" -d /dev/null -u 26 -g polkit -s /bin/false polkit
./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64
make
make install
Then run these 3 scripts;
script1;
Code:
cat > /etc/rc.d/init.d/polkitd << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/polkitd
. /etc/sysconfig/rc
. ${rc_functions}
case "${1}" in
start)
boot_mesg "Starting PolicyKit..."
loadproc /usr/sbin/polkitd
;;
stop)
boot_mesg "Stopping PolicyKit..."
killproc /usr/sbin/polkitd
;;
restart)
${0} stop
sleep 1
${0} start
;;
status)
statusproc /usr/sbin/polkitd
;;
*)
echo "Usage: ${0} {start|stop|restart|status}"
exit 1
;;
esac
# End $rc_base/init.d/polkitd
EOF
chmod -v 754 /etc/rc.d/init.d/polkitd
script2;
Code:
for link in /etc/rc.d/rc{{0,1,6}.d/K29,{2,3,4,5}.d/S20}polkitd; do
ln -sfv ../init.d/polkitd $link;
done
script3;
Code:
sed -i "s/^Allow=.*/Allow=gid:users/" /etc/PolicyKit/privilege.d/desktop-console.privilege
15. Add group & user for hal-0.5.8.1
groupadd -g 23 haldaemon
useradd -c "HAL Daemon User" -d /dev/null -u 23 -g haldaemon -s /bin/false haldaemon
Then compile with:
./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/hal --localstatedir=/var --libdir=/usr/lib64
make
make install
install -v -m755 -d /var/run/hald
16. Download the blfs-bootscripts, decompress and type "make install-haldaemon".
17. Install the Perl modules URI-1.35 (
http://search.cpan.org/~gaas/URI-1.35/);
perl Makefile.PL
make
make test
make install
18. Now use a softlink for the jpeg library in /usr/local/lib, i.e.
ln -s /usr/lib/libjpeg62.0.0 /usr/local/lib/libjpeg.so
19. Download Thunar-0.8.0-installer.run from XFCE4.4's website and run it.
20. Download Thunar-Bundle-0.8.0-installer.run from XFCE4.4's website and run it.
21. Make a softlink from /usr/lib64 to /usr/local/lib for file libSM.so, i.e.
ln -s /usr/lib64/libSM.so /usr/local/lib/libSM.so
22. Download xfce-4.4.4.0-installer.run and run it.
23. Download xfce-goodies-4.4.0-installer.run and run it.
24. You'll need rc.messagebus and rc.hal -- these two scripts need to go into /etc/rc.d;
rc.hal
Code:
#!/bin/sh
#
# Slackware startup script for HAL
# Written by Ken Zalewski <kennyz@nycap.rr.com> on 2 September 2006
# Last revision on 5 September 2006
#
# Who to run the server as, usually "haldaemon".
PUSER=haldaemon
PEXEC=/usr/sbin/hald
PIDFILE=/var/run/hald/pid
check_env() {
# Confirm that the HAL daemon executable can be found.
if [ ! -x $PEXEC ]; then
echo "Error: HAL is not installed correctly" >&2
exit 1
fi
# Confirm that we are using a 2.6 kernel.
kver=`/sbin/kernelversion`
case "$kver" in
2.[6789]) ;;
*) echo "Error: Kernel 2.6 is required in order to run HAL." >&2; exit 1 ;;
esac
# Confirm that the "haldaemon" user and group exist.
grep -q "^$PUSER:" /etc/group || groupadd $PUSER || exit 1
grep -q "^$PUSER:" /etc/passwd || useradd -c "HAL Daemon" -d /etc/hal -g $PUSER $PUSER || exit 1
}
start() {
check_env
if [ -r $PIDFILE ]; then
if kill -0 `cat $PIDFILE` 2>/dev/null; then
echo "HAL daemon is already running"
exit 0
else
rm -f $PIDFILE
fi
fi
echo -n "Starting HAL daemon: "
$PEXEC --daemon=yes && echo ok || echo failed
}
stop() {
echo -n "Stopping HAL daemon: "
if [ -r $PIDFILE ]; then
kill `cat $PIDFILE` && echo "ok" || echo "not running"
rm -f $PIDFILE
else
killall $PEXEC 2>/dev/null && echo "ok" || echo "not running"
fi
}
restart() {
stop
start
}
status() {
echo "Status not implemented"
}
# Parse command line parameters.
case $1 in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
status)
status
;;
*)
# Print help
echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2
exit 1
;;
esac
exit 0
rc.messagebus
Code:
#!/bin/sh
#
# messagebus: The D-BUS systemwide message bus
#
# chkconfig: 345 97 03
# description: This is a daemon which broadcasts notifications of system events \
# and other messages. See http://www.freedesktop.org/software/dbus/
#
# processname: dbus-daemon
# pidfile: /var/run/dbus/pid
#
# Sanity checks.
#[ -x /usr/bin/dbus-daemon ] || exit 0
# Source function library.
#. /etc/rc.d/init.d/functions
# so we can rearrange this easily
#processname=dbus-daemon
#servicename=messagebus
#RETVAL=0
start() {
echo "Starting system message bus"
if [ -x /usr/bin/dbus-daemon ];then
/usr/bin/dbus-daemon --system
fi
#daemon --check $servicename $processname --system
#RETVAL=$?
#echo
#[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
}
stop() {
echo "Stopping system message bus"
## we don't want to kill all the per-user $processname, we want
## to use the pid file *only*; because we use the fake nonexistent
## program name "$servicename" that should be safe-ish
killall dbus-daemon
#RETVAL=$?
#echo
#if [ $RETVAL -eq 0 ]; then
# rm -f /var/lock/subsys/$servicename
# rm -f /var/run/dbus/pid
#fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $processname
RETVAL=$?
;;
restart)
stop
start
;;
reload)
echo "Message bus can't reload its configuration, you have to restart it"
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload}"
;;
esac
exit $RETVAL
23. Put the following into rc.local (found in /etc/rc.d);
Code:
/usr/sbin/polkitd
rm /var/run/dbus/pid
./etc/rc.d/rc.messagebus start
./etc/rc.d/rc.hal start
24. In /etc/PolicyKit/privilege.d change "allow=" to "allow=gid:users" in these files;
desktop-console.privilege
hal-storage-fixed-mount-all-options.privilege
hal-storage-fixed-mount.privilege
hal-storage-removable-mount-all-options.privilege
hal-storage-removable-mount.privilege
25. CD to /media, and chmod 0777 *
26. Restart the PC.
27. Log back into slackware as non root, but log in as root and run "polkitd". Then go back to non-root, and run XFCE4.4 with startxfce4.
Bad points:
A) CD-ROM drive mounting dosen't seem to work at all, I do not know how to configure hal,dbus,policykit, etc.
Hopefully that should be it and at the very least XFCE4.4 should be working in Slamd64 (64-Bit slackware 11).
ljones