* More OpenOffice hackery. Added the magic incantations to get it to

install (of course there's no "make install", that would be too
  easy).  Also create some wrapper scripts "oowriter", "oodraw" etc.

  (I haven't done a full build of this yet, I've hacked on a tmpdir
  left behind by nix-build -K.)

svn path=/nixpkgs/trunk/; revision=9260
This commit is contained in:
Eelco Dolstra 2007-09-06 15:00:33 +00:00
parent 4b04ed1b84
commit 8746f18f0d
4 changed files with 80 additions and 5 deletions

View File

@ -5,25 +5,73 @@ export NO_HIDS=TRUE
export PATH=$icu/sbin:$PATH
preConfigure=preConfigure
preConfigure() {
for i in \
sysui/desktop/share/makefile.mk \
; do
substituteInPlace $i --replace /bin/bash /bin/sh
substituteInPlace $i --replace /bin/bash $shell
done
SRCDIR=
cd config_office/
}
postConfigure="cd .."
buildPhase=buildPhase
buildPhase() {
source LinuxX86Env.Set.sh
./bootstrap
dmake
dmake # wait a few hours...
}
wrapSOffice() {
local fn=$1
local arg=$2
# !!! should use makeWrapper for this.
cat > $out/bin/$fn <<EOF
#! $shell
# Add fontconfig to the library search path; apparently OpenOffice
# looks for it at runtime.
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH\${LD_LIBRARY_PATH:+:}$fontconfig/lib
exec $ooFiles/program/soffice $arg "\$@"
EOF
chmod +x $out/bin/$fn
}
installPhase=installPhase
installPhase() {
ooFiles=$out/lib/openoffice
# This was all borrowed from ooo-build-2.2.1's bin/ooinstall.
eval $(grep 'BUILD\|LAST_MINOR' $SOLARENV/inc/minor.mk)
export PYTHONPATH=$SOLARVERSION/$INPATH/lib:$SRC_ROOT/instsetoo_native/$INPATH/bin:$PYTHONPATH
export OUT=../$INPATH
export LOCAL_OUT=../$INPATH
export LOCAL_COMMON_OUT=../$INPATH
# Do the actual installation into $out.
(cd $SRC_ROOT/instsetoo_native/util && perl -w $SOLARENV/bin/make_installer.pl \
-f openoffice.lst -l en-US -p OpenOffice \
-packagelist ../inc_openoffice/unix/packagelist.txt \
-addpackagelist ../inc_openoffice/unix/packagelist_language.txt \
-buildid $BUILD -simple $ooFiles)
ensureDir $out/bin
for i in soffice ooffice; do wrapSOffice $i; done
# Create some wrappers to start individual OpenOffice components.
for i in writer calc draw impress base math web; do wrapSOffice oo$i -$i; done
}
genericBuild

View File

@ -54,4 +54,10 @@ stdenv.mkDerivation {
];
inherit icu;
meta = {
description = "OpenOffice.org is a multiplatform and multilingual office suite";
homepage = http://www.openoffice.org/;
license = "LGPL";
};
}

View File

@ -0,0 +1,17 @@
{stdenv, fetchurl, rpm}:
stdenv.mkDerivation {
name = "epm-4.1";
src = fetchurl {
url = http://ftp.rz.tu-bs.de/pub/mirror/ftp.easysw.com/ftp/pub/epm/4.1/epm-4.1-source.tar.bz2;
sha256 = "18xq1h9hx410x28bfccabydrqb1c0dqnq62qa17wc3846rwf234n";
};
buildInputs = [rpm];
meta = {
description = "The ESP Package Manager generates distribution archives for a variety of platforms";
homepage = http://www.easysw.com/epm/index.php;
};
}

View File

@ -1167,6 +1167,10 @@ rec {
inherit fetchurl stdenv;
};
epm = import ../development/tools/misc/epm {
inherit fetchurl stdenv rpm;
};
flex = flex254a;
flex2533 = import ../development/tools/parsing/flex/flex-2.5.33.nix {