libreoffice: 5.0.0.5 -> 5.0.1.2, refactor

I've extracted some of libraries and made expression simpler.

(cherry picked from commit 66e6f99d40)
Signed-off-by: Domen Kožar <domen@dev.si>
This commit is contained in:
Domen Kožar 2015-09-13 14:24:02 +02:00
parent 0b4ec468c5
commit 60ad36ba67
9 changed files with 144 additions and 283 deletions

View File

@ -1,11 +1,7 @@
{ stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging }:
{ stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging, bsh }:
let
version = "5.2.0";
bsh = fetchurl {
url = http://www.beanshell.org/bsh-2.0b5.jar;
sha256 = "0p2sxrpzd0vsk11zf3kb5h12yl1nq4yypb5mpjrm8ww0cfaijck2";
};
bcpg = fetchurl {
url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar;
sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";

View File

@ -1,23 +1,17 @@
# when updating version, wait for the build to fail
# run make without sourcing the environment and let libreoffice
# download all extra files
# then list extra files separated by newline and pipe them to
# generate-libreoffice-srcs.sh and copy output to libreoffice-srcs.nix
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
, icu, boost, jdk, ant, cups, xorg
, icu, boost, jdk, ant, cups, xorg, libcmis
, openssl, gperf, cppunit, GConf, ORBit2, poppler
, librsvg, gnome_vfs, mesa
, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
, unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
, libatomic_ops, graphite2, harfbuzz, libodfgen
, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
, gdb
, gdb, commonsLogging
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" ]
, withHelp ? true
}:
@ -26,27 +20,11 @@ let
langsSpaces = stdenv.lib.concatStringsSep " " langs;
major = "5";
minor = "0";
patch = "0";
tweak = "5";
patch = "1";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
# doesn't exist in srcs
# 0.8 version is in 0.7.0 tarball
libixion = stdenv.mkDerivation rec {
version = "0.7.0";
name = "libixion-${version}";
src = fetchurl {
url = "http://kohei.us/files/ixion/src/${name}.tar.bz2";
sha256 = "10amvz7fzr1kcy3svfspkdykmspqgpjdmk44cyr406wi7v4lwnf9";
};
buildInputs = [ boost mdds pkgconfig ];
configureFlags = [ "--with-boost=${boost.dev}" ];
};
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
inherit name md5;
url = if brief then
@ -55,19 +33,6 @@ let
"http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
};
# Can't find Boost inside LO build
liborcus = stdenv.mkDerivation rec {
name = "liborcus-0.7.0";
src = fetchThirdParty (stdenv.lib.findFirst
(x: x.name == "${name}.tar.bz2")
("Error: update liborcus version inside LO expression")
(import ./libreoffice-srcs.nix));
buildInputs = [ boost mdds pkgconfig zlib /*libixion*/ ];
configureFlags = [ "--with-boost=${boost.dev}" ];
};
fetchSrc = {name, sha256}: fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
inherit sha256;
@ -82,24 +47,23 @@ let
translations = fetchSrc {
name = "translations";
sha256 = "0x86vf1fhgnjgkj25rqcfgrvid6smikmb96121sasydmg0jcsypm";
sha256 = "0z8qf4ri8wmzgc5601fxcwxwym1h9rwk0kaqpxhqbkj04h9z0xq7";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "18wqmbm3yvjz6pfnz5qfklwv4d53vrv2npiz3796d4d1j245ylcv";
sha256 = "0iz9jz0ppghzh33kzw7v0xqchim9brys6mnmlk74nzrhci2vj7f7";
};
};
in
stdenv.mkDerivation rec {
in stdenv.mkDerivation rec {
name = "libreoffice-${version}";
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "046f5lakw2rygs5qjmhsxmdw7pa9gwcamavnyqpk1rfbis2ga5wv";
sha256 = "06nj1wnx09a6v3kx9k48810mkb19dbkaln1af33f4m7bxg5bjl87";
};
# Openoffice will open libcups dynamically, so we link it directly
@ -119,30 +83,17 @@ stdenv.mkDerivation rec {
ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
'';
patchPhase = ''
find . -type f -print0 | xargs -0 sed -i \
-e 's,! */bin/bash,!${bash}/bin/bash,' -e 's,\(!\|SHELL=\) */usr/bin/env bash,\1${bash}/bin/bash,' \
-e 's,! */usr/bin/perl,!${perl}/bin/perl,' -e 's,! */usr/bin/env perl,!${perl}/bin/perl,' \
-e 's,! */usr/bin/python,!${python3}/bin/${python3.executable},' -e 's,! */usr/bin/env python,!${python3}/bin/${python3.executable},'
#sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
'';
QT4DIR = qt4;
KDE4DIR = kde4.kdelibs;
preConfigure = ''
# Needed to find genccode
PATH=$PATH:${icu}/sbin
configureFlagsArray=(
"--with-parallelism=$NIX_BUILD_CORES"
"--with-lang=${langsSpaces}"
"${if withHelp then "" else "--without-help"}"
);
chmod a+x ./bin/unpack-sources
patchShebangs .
# It is used only as an indicator of the proper current directory
touch solenv/inc/target.mk
'';
@ -167,7 +118,7 @@ stdenv.mkDerivation rec {
# This is required as some cppunittests require fontconfig configured
export FONTCONFIG_FILE=${fontsConf}
# This to aovid using /lib:/usr/lib at linking
# This to avoid using /lib:/usr/lib at linking
sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
@ -177,74 +128,76 @@ stdenv.mkDerivation rec {
# It installs only things to $out/lib/libreoffice
postInstall = ''
mkdir -p $out/bin $out/share
mkdir -p $out/bin $out/share/desktop
for a in sbase scalc sdraw smath swriter spadmin simpress soffice; do
ln -s $out/lib/libreoffice/program/$a $out/bin/$a
done
ln -s $out/bin/soffice $out/bin/libreoffice
ln -s $out/bin/soffice $out/bin/libreoffice
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
for f in $out/share/applications/*.desktop; do
substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice"
substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
done
mkdir -p "$out/share/desktop"
cp -r sysui/desktop/icons "$out/share"
sed -re 's@Icon=libreofficedev[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
'';
configureFlags = [
"${if withHelp then "" else "--without-help"}"
"--with-boost=${boost.dev}"
"--with-boost-libdir=${boost.lib}/lib"
"--with-beanshell-jar=${bsh}"
"--with-vendor=NixOS"
# Without these, configure does not finish
"--without-junit"
# Without this, it wants to download
"--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
"--disable-report-builder"
"--enable-python=system"
"--enable-dbus"
"--enable-kde4"
"--disable-odk"
"--with-system-cairo"
"--with-system-libs"
"--with-system-headers"
"--with-system-openssl"
"--with-system-openldap"
"--without-system-libwps" # TODO
"--without-doxygen"
# I imagine this helps. Copied from go-oo.
# Modified on every upgrade, though
"--disable-kde"
"--disable-postgresql-sdbc"
"--with-package-format=installed"
"--enable-epm"
"--with-jdk-home=${jdk.home}"
"--with-ant-home=${ant}/lib/ant"
"--with-system-cairo"
"--with-system-libs"
"--with-system-headers"
"--with-system-openssl"
"--with-system-libabw"
"--with-system-libcmis"
"--with-system-libwps"
"--with-system-openldap"
"--with-system-coinmp"
# Without these, configure does not finish
"--without-junit"
# I imagine this helps. Copied from go-oo.
# Modified on every upgrade, though
"--disable-kde"
"--disable-odk"
"--disable-postgresql-sdbc"
"--disable-firebird-sdbc"
"--without-fonts"
"--without-myspell-dicts"
"--without-system-beanshell"
"--without-doxygen"
# TODO: package these as system libraries
"--with-system-beanshell"
"--without-system-hsqldb"
"--without-system-jars"
"--without-system-altlinuxhyph"
"--without-system-lpsolve"
"--without-system-npapi-headers"
"--without-system-libcmis"
"--without-system-libetonyek"
"--without-system-libfreehand"
"--without-system-libabw"
"--without-system-firebird"
"--without-system-liblangtag"
"--without-system-libmspub"
"--without-system-libpagemaker"
"--without-system-coinmp"
"--without-system-libgltf"
# https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
"--without-system-orcus"
];
@ -264,17 +217,17 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-base
neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
python3 sablotron saneBackends tcsh unzip vigra which zip zlib
mdds bluez5 glibc
mdds bluez5 glibc libcmis libwps libabw
libxshmfence libatomic_ops graphite2 harfbuzz
librevenge libe-book libmwaw glm glew
libodfgen
libodfgen CoinMP
];
meta = with stdenv.lib; {
description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
homepage = http://libreoffice.org/;
license = licenses.lgpl3;
maintainers = [ maintainers.viric maintainers.raskin ];
maintainers = with maintainers; [ viric raskin ];
platforms = platforms.linux;
};
}

View File

@ -1,44 +0,0 @@
#!/run/current-system/sw/bin/bash
# Take the list of files from the main package, ooo.lst.in
cat <<EOF
[
EOF
write_entry(){
echo '{'
echo " name = \"${name}\";"
echo " md5 = \"${md5}\";"
echo " brief = ${brief};"
echo '}'
}
while read line; do
case "$line" in
\#*)
echo Skipping comment: "$line" >&2;
;;
*_MD5SUM\ :=*)
read tbline;
line=${line##* };
tbline=${tbline##* };
md5=$line
name=$tbline;
brief=true;
write_entry;
;;
*_TARBALL\ :=*)
line=${line##* };
md5=${line:0:32};
name=${line:33};
brief=false;
write_entry;
;;
*)
echo Skipping: "$line" >&2;
;;
esac
done
echo ']'

View File

@ -1,9 +1,5 @@
# DEPRECATED: these dependencies sould be system libraries
[
{
name = "libabw-0.1.1.tar.bz2";
md5 = "7a3815b506d064313ba309617b6f5a0b";
brief = true;
}
{
name = "commons-codec-1.6-src.tar.gz";
md5 = "2e482c7567908d334785ce7d69ddfff7";
@ -44,61 +40,21 @@
md5 = "71a11d037240b292f824ba1eb537b4e3";
brief = true;
}
{
name = "boost_1_55_0.tar.bz2";
md5 = "d6eef4b4cacb2183f2bf265a5a03a354";
brief = false;
}
{
name = "bsh-2.0b5-src.zip";
md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
brief = false;
}
{
name = "cairo-1.10.2.tar.gz";
md5 = "f101a9e88b783337b20b2e26dfd26d5f";
brief = false;
}
{
name = "libcdr-0.1.1.tar.bz2";
md5 = "b33fd0be3befdd1b37777e08ce058bd9";
brief = true;
}
{
name = "clucene-core-2.3.3.4.tar.gz";
md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
brief = false;
}
{
name = "libcmis-0.5.0.tar.gz";
md5 = "5821b806a98e6c38370970e682ce76e8";
brief = false;
}
{
name = "CoinMP-1.7.6.tgz";
md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
brief = true;
}
{
name = "collada2gltf-master-cb1d97788a.tar.bz2";
md5 = "4b87018f7fff1d054939d19920b751a0";
brief = false;
}
{
name = "cppunit-1.13.2.tar.gz";
md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
brief = true;
}
{
name = "ConvertTextToNumber-1.3.2.oxt";
md5 = "451ccf439a36a568653b024534669971";
brief = false;
}
{
name = "curl-7.43.0.tar.bz2";
md5 = "11bddbb452a8b766b932f859aaeeed39";
brief = true;
}
{
name = "libe-book-0.1.2.tar.bz2";
md5 = "6b48eda57914e6343efebc9381027b78";
@ -119,16 +75,6 @@
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
brief = false;
}
{
name = "Firebird-2.5.2.26540-0.tar.bz2";
md5 = "21154d2004e025c8a3666625b0357bb5";
brief = true;
}
{
name = "fontconfig-2.8.0.tar.gz";
md5 = "77e15a92006ddc2adbb06f840d591c0e";
brief = false;
}
{
name = "crosextrafonts-20130214.tar.gz";
md5 = "368f114c078f94214a308a74c7e991bc";
@ -194,16 +140,6 @@
md5 = "dbf2caca1d3afd410a29217a9809d397";
brief = false;
}
{
name = "glew-1.10.0.zip";
md5 = "594eb47b4b1210e25438d51825404d5a";
brief = false;
}
{
name = "glm-0.9.4.6-libreoffice.zip";
md5 = "bae83fa5dc7f081768daace6e199adc3";
brief = false;
}
{
name = "graphite2-1.2.4.tgz";
md5 = "2ef839348fe28e3b923bf8cced440227";
@ -289,16 +225,6 @@
md5 = "39bb3fcea1514f1369fcfc87542390fd";
brief = false;
}
{
name = "jpegsrc.v9a.tar.gz";
md5 = "3353992aecaee1805ef4109aadd433e7";
brief = true;
}
{
name = "libjpeg-turbo-1.3.1.tar.gz";
md5 = "2c3a68129dac443a72815ff5bb374b05";
brief = true;
}
{
name = "language-subtag-registry-2015-06-08.tar.bz2";
md5 = "d431bd8a70455be1fa8523fa633c005b";
@ -345,26 +271,11 @@
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
brief = false;
}
{
name = "libxml2-2.9.1.tar.gz";
md5 = "9c0cfef285d5c4a5c80d00904ddab380";
brief = false;
}
{
name = "libxslt-1.1.28.tar.gz";
md5 = "9667bf6f9310b957254fdcf6596600b7";
brief = false;
}
{
name = "lp_solve_5.5.tar.gz";
md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
brief = false;
}
{
name = "mariadb_client-2.0.0-src.tar.gz";
md5 = "a233181e03d3c307668b4c722d881661";
brief = false;
}
{
name = "mdds_0.12.1.tar.bz2";
md5 = "ef2560ed5416652a7fe195305b14cebe";
@ -410,16 +321,6 @@
md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
brief = true;
}
{
name = "openldap-2.4.31.tgz";
md5 = "804c6cb5698db30b75ad0ff1c25baefd";
brief = false;
}
{
name = "openssl-1.0.2a.tar.gz";
md5 = "a06c547dac9044161a477211049f60ef";
brief = true;
}
{
name = "liborcus-0.7.0.tar.bz2";
md5 = "7681383be6ce489d84c1c74f4e7f9643";
@ -445,16 +346,6 @@
md5 = "35c0660065d023365e9854c13e289d12";
brief = true;
}
{
name = "postgresql-9.2.1.tar.bz2";
md5 = "c0b4799ea9850eae3ead14f0a60e9418";
brief = false;
}
{
name = "Python-3.3.5.tgz";
md5 = "803a75927f8f241ca78633890c798021";
brief = true;
}
{
name = "raptor2-2.0.9.tar.gz";
md5 = "4ceb9316488b0ea01acf011023cf7fff";
@ -495,39 +386,9 @@
md5 = "0168229624cfac409e766913506961a8";
brief = false;
}
{
name = "vigra1.6.0.tar.gz";
md5 = "d62650a6f908e85643e557a236ea989c";
brief = false;
}
{
name = "libvisio-0.1.1.tar.bz2";
md5 = "726c1f5be65eb7d649e0d48b63d920e7";
brief = true;
}
{
name = "libwpd-0.10.0.tar.bz2";
md5 = "0773d79a1f240ef9f4f20242b13c5bb7";
brief = true;
}
{
name = "libwpg-0.3.0.tar.bz2";
md5 = "17da9770cb8b317b7633f9807b32b71a";
brief = true;
}
{
name = "libwps-0.4.0.tar.bz2";
md5 = "e9162d2566421d9d71b3ad2377a68fd5";
brief = true;
}
{
name = "xsltml_2.1.2.zip";
md5 = "a7983f859eafb2677d7ff386a023bc40";
brief = false;
}
{
name = "zlib-1.2.8.tar.gz";
md5 = "44d667c142d7cda120332623eab69f40";
brief = true;
}
]

View File

@ -0,0 +1,18 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "CoinMP-${version}";
version = "1.7.6";
src = fetchurl {
url = "http://www.coin-or.org/download/source/CoinMP/${name}.tgz";
sha256 = "0gqi2vqkg35gazzzv8asnhihchnbjcd6bzjfzqhmj7wy1dw9iiw6";
};
meta = with stdenv.lib; {
homepage = https://projects.coin-or.org/CoinMP/;
description = "COIN-OR lightweight API for COIN-OR libraries CLP, CBC, and CGL";
platforms = platforms.linux;
license = licenses.epl10;
};
}

View File

@ -0,0 +1,20 @@
{ stdenv, fetchurl, boost, doxygen, gperf, pkgconfig, librevenge, libxml2, perl }:
stdenv.mkDerivation rec {
name = "libabw-${version}";
version = "0.1.1";
src = fetchurl {
url = "http://dev-www.libreoffice.org/src/libabw/${name}.tar.xz";
sha256 = "0zi1zj4fpxgpglbbb5n1kg3dmhqq5rpf46lli89r5daavp19iing";
};
buildInputs = [ boost doxygen gperf pkgconfig librevenge libxml2 perl ];
meta = with stdenv.lib; {
homepage = https://wiki.documentfoundation.org/DLP/Libraries/libabw;
description = "Library parsing abiword documents";
platforms = platforms.linux;
license = licenses.mpl20;
};
}

View File

@ -0,0 +1,24 @@
{ stdenv, fetchurl, boost, libxml2, pkgconfig, curl }:
stdenv.mkDerivation rec {
name = "libcmis-${version}";
version = "0.5.0";
src = fetchurl {
url = "mirror://sourceforge/libcmis/${name}.tar.gz";
sha256 = "1dprvk4fibylv24l7gr49gfqbkfgmxynvgssvdcycgpf7n8h4zm8";
};
buildInputs = [ boost libxml2 pkgconfig curl ];
configureFlags = "--without-man --with-boost=${boost.dev} --disable-werror --disable-tests";
# Cppcheck cannot find all the include files (use --check-config for details)
doCheck = false;
meta = with stdenv.lib; {
description = "C++ client library for the CMIS interface";
homepage = https://sourceforge.net/projects/libcmis/;
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,20 @@
{ stdenv, fetchurl, boost, pkgconfig, librevenge, zlib }:
stdenv.mkDerivation rec {
name = "libwps-${version}";
version = "0.4.1";
src = fetchurl {
url = "mirror://sourceforge/libwps/${name}.tar.gz";
sha256 = "0nc44ia5sn9mmhkq5hjacz0vm520wldq03whc5psgcb9dahvsjsc";
};
buildInputs = [ boost pkgconfig librevenge zlib ];
meta = with stdenv.lib; {
homepage = http://libwps.sourceforge.net/;
description = "Microsoft Works file word processor format import filter library";
platforms = platforms.linux;
license = licenses.lgpl21;
};
}

View File

@ -790,6 +790,11 @@ let
byobu = callPackage ../tools/misc/byobu { };
bsh = fetchurl {
url = http://www.beanshell.org/bsh-2.0b5.jar;
sha256 = "0p2sxrpzd0vsk11zf3kb5h12yl1nq4yypb5mpjrm8ww0cfaijck2";
};
cabal2nix = haskellPackages.cabal2nix;
capstone = callPackage ../development/libraries/capstone { };
@ -2109,6 +2114,8 @@ let
libconfig = callPackage ../development/libraries/libconfig { };
libcmis = callPackage ../development/libraries/libcmis { };
libee = callPackage ../development/libraries/libee { };
libestr = callPackage ../development/libraries/libestr { };
@ -6122,6 +6129,8 @@ let
coin3d = callPackage ../development/libraries/coin3d { };
CoinMP = callPackage ../development/libraries/CoinMP { };
commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
confuse = callPackage ../development/libraries/confuse { };
@ -6799,6 +6808,8 @@ let
usePulseAudio = config.pulseaudio or true;
};
libabw = callPackage ../development/libraries/libabw { };
libantlr3c = callPackage ../development/libraries/libantlr3c {};
libarchive = callPackage ../development/libraries/libarchive { };
@ -7520,6 +7531,8 @@ let
libwpd_08 = callPackage ../development/libraries/libwpd/0.8.nix { };
libwps = callPackage ../development/libraries/libwps { };
libwpg = callPackage ../development/libraries/libwpg { };
libx86 = builderDefsPackage ../development/libraries/libx86 {};