mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 15:11:35 +00:00
b7d4c94d52
unoconv is a tool that converts between any document format supported by LibreOffice/OpenOffice. Example of how to convert an .odt file to .pdf: unoconv -f pdf some-file.odt Homepage: http://dag.wieers.com/home-made/unoconv/ Implementation notes: unoconv must use the same python version as libreoffice (unless it will not be able to load the pyuno module from libreoffice). And because we recently switched to libreoffice 4.x, which uses python3, I had to include unoconv-python3.patch. The patch comes from upstream unoconv.git repo, so it will be included in the next release.
42 lines
1.3 KiB
Nix
42 lines
1.3 KiB
Nix
{ stdenv, fetchurl, python3, libreoffice, asciidoc, makeWrapper
|
|
# whether to install odt2pdf/odt2doc/... symlinks to unoconv
|
|
, installSymlinks ? true
|
|
}:
|
|
|
|
# IMPORTANT: unoconv must use the same python version as libreoffice (unless it
|
|
# will not be able to load the pyuno module from libreoffice).
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "unoconv-0.6";
|
|
|
|
src = fetchurl {
|
|
url = "http://dag.wieers.com/home-made/unoconv/${name}.tar.gz";
|
|
sha256 = "1m3kv942zf5rzyrbkil0nhmyq9mm3007y64bb3s7w88mhr5n23kr";
|
|
};
|
|
|
|
buildInputs = [ asciidoc makeWrapper ];
|
|
|
|
# We need to use python3 because libreoffice 4.x uses it. This patch comes
|
|
# from unoconv.git, so it will be a part of the next release.
|
|
patches = [ ./unoconv-python3.patch ];
|
|
|
|
preBuild = ''
|
|
makeFlags=prefix="$out"
|
|
'';
|
|
|
|
postInstall = ''
|
|
sed -i "s|/usr/bin/env python.*|${python3}/bin/${python3.executable}|" "$out/bin/unoconv"
|
|
wrapProgram "$out/bin/unoconv" --set UNO_PATH "${libreoffice}/lib/libreoffice/program/"
|
|
'' + (if installSymlinks then ''
|
|
make install-links prefix="$out"
|
|
'' else "");
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Convert between any document format supported by LibreOffice/OpenOffice";
|
|
homepage = http://dag.wieers.com/home-made/unoconv/;
|
|
license = licenses.gpl2;
|
|
platforms = platforms.linux;
|
|
maintainers = [ maintainers.bjornfor ];
|
|
};
|
|
}
|