summaryrefslogtreecommitdiffstats
path: root/kpresenter/scripts/mkstandalone.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kpresenter/scripts/mkstandalone.sh')
-rwxr-xr-xkpresenter/scripts/mkstandalone.sh91
1 files changed, 91 insertions, 0 deletions
diff --git a/kpresenter/scripts/mkstandalone.sh b/kpresenter/scripts/mkstandalone.sh
new file mode 100755
index 00000000..ebd2fd8a
--- /dev/null
+++ b/kpresenter/scripts/mkstandalone.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+# This script copies everything that is needed to run kpresenter on a
+# computer where KDE isn't installed.
+# Relies on kpresenter being installed on the local machine, in $KDEDIR
+#
+# The script copies everything into a directory. You just need to tar it up,
+# transfer it (CD-ROM or via Internet), untar it, cd into it,
+# and run the script "go.sh" with your presentation as argument.
+# Debug output goes to kpresenter.out to avoid cluttering the terminal
+# with our junk :-) Check it out in case of problems.
+#
+# (C) David Faure <[email protected]>
+
+# Pass output dir as argument
+if [ $# -ne 1 ]; then
+ echo "Usage : $0 <outputdir>"
+else
+ out=$1
+########### Data
+ mkdir -p $out
+ mkdir -p $out/share
+ mkdir -p $out/share/apps
+ cp -r $KDEDIR/share/apps/kpresenter $out/share/apps/
+ cp -r $KDEDIR/share/apps/koffice $out/share/apps/
+ cp -r $KDEDIR/share/apps/kstyle $out/share/apps/
+ mkdir -p $out/share/config
+ cp $KDEDIR/share/config/kdebug.areas $out/share/config/
+ cp ~/.kde/share/config/kdeglobals $out/share/config/
+ cp ~/.kde/share/config/kpresenterrc $out/share/config/
+ ### cp $KDEDIR/share/icons $out/share/
+ cp -r $KDEDIR/share/toolbar $out/share/
+ mkdir -p $out/share/servicetypes
+ cp $KDEDIR/share/servicetypes/kofficepart.desktop $out/share/servicetypes
+ mkdir -p $out/share/applnk
+ cp $KDEDIR/share/applnk/KOffice/kpresenter.desktop $out/share/applnk/
+
+########### Libraries (warning, using Linux specific ldd !)
+ TMPFILE=/tmp/__kpresenter_ldd.tmp
+ mkdir -p $out/lib
+ ldd $KDEDIR/bin/kpresenter | sed -e 's/.*=> \([^ ]*\).*/\1/' > $TMPFILE
+ # Add style libs
+ echo $KDEDIR/lib/basicstyle.so >> $TMPFILE
+ echo $KDEDIR/lib/kstepstyle.so >> $TMPFILE
+ # Add image handler libs
+ echo $KDEDIR/lib/kimg_jpeg.so >> $TMPFILE
+ echo $KDEDIR/lib/kimg_tiff.so >> $TMPFILE
+ # Add libs for embedded parts here
+
+ cat $TMPFILE | while read libfile; do
+ # ldd shows the fullpath to a link.
+ # Extract the directory from the fullpath
+ origdir=`dirname $libfile`
+ libfile=`basename $libfile`
+ while [ -L $origdir/$libfile ]; do
+ # Follow the symlink and create the same in $out/lib
+ pointsto=`readlink $origdir/$libfile`
+ echo "ln -s $out/$libfile $pointsto"
+ ln -s $pointsto $out/lib/$libfile
+ libfile=$pointsto;
+ done
+ # Copy the library itself
+ echo "cp $origdir/$libfile $out/lib"
+ cp $origdir/$libfile $out/lib
+ # Copy the .la file as well
+ lafile=`echo $libfile | sed -e 's/\.so.*/\.la/'`
+ if [ -f $origdir/$lafile ]; then cp $origdir/$lafile $out/lib ; fi
+ done
+ rm -f $TMPFILE
+
+########### Binaries
+ mkdir -p $out/bin
+ cp $KDEDIR/bin/kpresenter $out/bin/
+ cp $KDEDIR/bin/dcopserver $out/bin/
+ # Take kded as well - we could copy the ksycoca file but we would have
+ # to install it in ~/.kde ...
+ cp $KDEDIR/bin/kded $out/bin/
+
+########### Startup script
+ echo '#!/bin/sh' > $out/go.sh
+ echo 'export KDEDIR=`pwd`' >> $out/go.sh
+ echo 'export LD_LIBRARY_PATH=$KDEDIR/lib' >> $out/go.sh
+ echo 'mkdir -p ~/.kde 2>/dev/null' >> $out/go.sh
+ echo 'mkdir -p ~/.kde/share 2>/dev/null' >> $out/go.sh
+ echo 'mkdir -p ~/.kde/share/config 2>/dev/null' >> $out/go.sh
+ echo 'cp share/config/* ~/.kde/share/config' >> $out/go.sh
+ echo 'bin/dcopserver 2>/dev/null' >> $out/go.sh
+ echo 'sleep 1 ; bin/kded 2>/dev/null' >> $out/go.sh
+ echo 'sleep 1 ; bin/kpresenter $* 1>/dev/null 2>kpresenter.out &' >> $out/go.sh
+ chmod u+x $out/go.sh
+fi
+