Merge branch 'master' into x-updates

This commit is contained in:
Vladimír Čunát
2013-09-07 16:19:46 +02:00
162 changed files with 5708 additions and 1601 deletions

View File

@@ -1,14 +1,16 @@
{stdenv, fetchurl, sqlite, postgresql, zlib, acl, ncurses, openssl, readline}:
{ stdenv, fetchurl, sqlite, postgresql, zlib, acl, ncurses, openssl, readline }:
stdenv.mkDerivation rec {
name = "bacula-5.2.13";
src = fetchurl {
url = "mirror://sourceforge/bacula/${name}.tar.gz";
url = "mirror://sourceforge/bacula/${name}.tar.gz";
sha256 = "1n3sc0kd7r0afpyi708y3md0a24rbldnfcdz0syqj600pxcd9gm4";
};
buildInputs = [ postgresql sqlite zlib acl ncurses openssl readline ];
buildInputs = [ postgresql sqlite zlib ncurses openssl readline ]
# acl relies on attr, which I can't get to build on darwin
++ stdenv.lib.optional (!stdenv.isDarwin) acl;
configureFlags = [
"--with-sqlite3=${sqlite}"
@@ -20,11 +22,11 @@ stdenv.mkDerivation rec {
ln -s $out/sbin/* $out/bin
'';
meta = {
meta = with stdenv.lib; {
description = "Enterprise ready, Network Backup Tool";
homepage = http://bacula.org/;
license = "GPLv2";
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.iElectric ];
homepage = http://bacula.org/;
license = "GPLv2";
maintainers = with maintainers; [ iElectric lovek323 ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -0,0 +1,109 @@
{stdenv, which, coreutils, perl, fetchurl, perlPackages, makeWrapper, diffutils , writeScriptBin, bzip2}:
# quick usage:
# storeBackup.pl --sourceDir /home/user --backupDir /tmp/my_backup_destination
# Its slow the first time because it compresses all files bigger than 1k (default setting)
# The backup tool is bookkeeping which files got compressed
# btrfs warning: you may run out of hardlinks soon
# known impurity: test cases seem to bu using /tmp/storeBackup.lock ..
let dummyMount = writeScriptBin "mount" "#!/bin/sh";
in
stdenv.mkDerivation {
name = "store-backup-3.4";
enableParallelBuilding = true;
buildInputs = [ perl makeWrapper ];
src = fetchurl {
url = http://download.savannah.gnu.org/releases/storebackup/storeBackup-3.4.tar.bz2;
sha256 = "101k3nhyfjj8y8hg0v0xqxsr4vlcfkmlczgbihvlv722fb7n5gi3";
};
installPhase = ''
ensureDir $out/scripts
mv * $out
mv $out/_ATTENTION_ $out/doc
mv $out/{correct.sh,cron-storebackup} $out/scripts
find $out -name "*.pl" | xargs sed -i \
-e 's@/bin/pwd@${coreutils}/bin/pwd@' \
-e 's@/bin/sync@${coreutils}/bin/sync@' \
-e '1 s@/usr/bin/env perl@${perl}/bin/perl@'
for p in $out/bin/*
do wrapProgram "$p" \
--prefix PERL5LIB ":" "${perlPackages.DBFile}/lib/perl5/site_perl" \
--prefix PATH ":" "${which}/bin:${bzip2}/bin"
done
patchShebangs $out
# do a dummy test ensuring this works
PATH=$PATH:${dummyMount}/bin
{ # simple sanity test, test backup/restore of simple store paths
mkdir backup
backupRestore(){
source="$2"
echo =========
echo RUNNING TEST "$1" source: "$source"
mkdir restored
$out/bin/storeBackup.pl --sourceDir "$source" --backupDir backup
latestBackup=backup/default/$(ls -1 backup/default | sort | tail -n 1)
$out/bin/storeBackupRecover.pl -b "$latestBackup" -t restored -r /
${diffutils}/bin/diff -r "$source" restored
# storeBackupCheckSource should return 0
$out/bin/storeBackupCheckSource.pl -s "$source" -b "$latestBackup"
# storeBackupCheckSource should return not 0 when using different source
! $out/bin/storeBackupCheckSource.pl -s $TMP -b "$latestBackup"
# storeBackupCheckBackup should return 0
$out/bin/storeBackupCheckBackup.pl -c "$latestBackup"
chmod -R +w restored
rm -fr restored
}
testDir=$TMP/testDir
mkdir $testDir
echo X > $testDir/X
ln -s ./X $testDir/Y
backupRestore 'test 1: backup, restore' $testDir
# test huge blocks, according to docs files bigger than 100MB get split
# into pieces
dd if=/dev/urandom bs=100M of=block-1 count=1
dd if=/dev/urandom bs=100M of=block-2 count=1
cat block-1 block-2 > $testDir/block
backupRestore 'test 1 with huge block' $testDir
cat block-2 block-1 > $testDir/block
backupRestore 'test 1 with huge block reversed' $testDir
backupRestore 'test 2: backup, restore' $out
backupRestore 'test 3: backup, restore' $out
backupRestore 'test 4: backup diffutils to same backup locations, restore' ${diffutils}
}
'';
meta = {
description = "Storebackup is a backup suite that stores files on other disks";
homepage = http://savannah.nongnu.org/projects/storebackup;
license = stdenv.lib.licenses.gpl3Plus;
maintainers = [stdenv.lib.maintainers.marcweber];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -1,14 +1,14 @@
{stdenv, fetchurl, pkgconfig, openobex, bluez}:
{stdenv, fetchurl, pkgconfig, openobex, bluez, cmake}:
stdenv.mkDerivation rec {
name = "obexftp-0.23";
name = "obexftp-0.24";
src = fetchurl {
url = "mirror://sourceforge/openobex/${name}.tar.bz2";
sha256 = "0djv239b14p221xjxzza280w3pnnwzpw4ssd6mshz36ki3r4z9s4";
url = "mirror://sourceforge/openobex/${name}-Source.tar.gz";
sha256 = "0szy7p3y75bd5h4af0j5kf0fpzx2w560fpy4kg3603mz11b9c1xr";
};
buildInputs = [pkgconfig bluez];
buildInputs = [pkgconfig bluez cmake];
propagatedBuildInputs = [openobex];

View File

@@ -1,17 +1,21 @@
{stdenv, fetchurl, pkgconfig, bluez, libusb}:
{stdenv, fetchurl, pkgconfig, bluez, libusb, cmake}:
stdenv.mkDerivation rec {
name = "openobex-1.5";
name = "openobex-1.7.1";
src = fetchurl {
url = "mirror://kernel/linux/bluetooth/${name}.tar.gz";
sha256 = "0rayjci99ahhvs2d16as1qql3vrcizd0nhi8n3n4g6krf1sh80p6";
url = "mirror://sourceforge/openobex/${name}-Source.tar.gz";
sha256 = "0mza0mrdrbcw4yix6qvl31kqy7bdkgxjycr0yx7yl089v5jlc9iv";
};
buildInputs = [pkgconfig bluez libusb];
buildInputs = [pkgconfig bluez libusb cmake];
configureFlags = "--enable-apps";
patchPhase = ''
sed -i "s!/lib/udev!$out/lib/udev!" udev/CMakeLists.txt
'';
meta = {
homepage = http://dev.zuckschwerdt.org/openobex/;
description = "An open source implementation of the Object Exchange (OBEX) protocol";

View File

@@ -0,0 +1,29 @@
{ stdenv, fetchurl, pkgconfig, fuse, scons }:
stdenv.mkDerivation rec {
name = "fuse-exfat-1.0.1";
src = fetchurl {
url = "http://exfat.googlecode.com/files/${name}.tar.gz";
sha256 = "0n27hpi45lj9hpi7k8d7npiwyhasf1v832g7ckpknd6lnyhipb0j";
};
buildInputs = [ pkgconfig fuse scons ];
buildPhase = ''
export CCFLAGS="-O2 -Wall -std=c99 -I${fuse}/include"
export LDFLAGS="-L${fuse}/lib"
mkdir -pv $out/sbin
scons DESTDIR=$out/sbin install
'';
installPhase = ":";
meta = {
homepage = http://code.google.com/p/exfat/;
description = "A FUSE-based filesystem that allows read and write access to exFAT devices";
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.gpl2;
};
}

View File

@@ -16,4 +16,10 @@
preFixup = ''
make clean
'';
meta = {
description = "Encoder for the JBIG2 image compression format";
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -3,12 +3,12 @@
}:
stdenv.mkDerivation {
name = "heimdall-1.3.0";
name = "heimdall-1.4.0";
src = fetchgit {
url = git://github.com/Benjamin-Dobell/Heimdall.git;
rev = "ed9b08e5d9e3db60d52bccf6cb6919fb4bd47602";
sha256 = "e65f18299a05699595548cb27393a01b4e1dbbced82d4add8d0d55ef6514a691";
rev = "refs/tags/v1.4.0";
sha256 = "285785d83fd4edbe98c0fa38c27772f72950a5887b255c00937a1f11c79ebf57";
};
buildInputs =
@@ -16,14 +16,14 @@ stdenv.mkDerivation {
++ stdenv.lib.optional enableGUI qt4 ;
makeFlags = "udevrulesdir=$(out)/lib/udev/rules.d";
preConfigure =
''
pushd libpit
./configure
make
popd
cd heimdall
substituteInPlace Makefile.in --replace sudo true

View File

@@ -0,0 +1,34 @@
{ stdenv, fetchurl, perl, perlPackages }:
stdenv.mkDerivation {
name = "stow-2.2.0";
src = fetchurl {
url = mirror://gnu/stow/stow-2.2.0.tar.bz2;
sha256 = "01bbsqjmrnd9925s3grvgjnrl52q4w65imrvzy05qaij3pz31g46";
};
buildInputs = [ perl perlPackages.TestOutput ];
doCheck = true;
meta = {
description = "Stow is a tool for managing the installation of multiple software packages in the same run-time directory tree.";
longDescription = ''
GNU Stow is a symlink farm manager which takes distinct packages
of software and/or data located in separate directories on the
filesystem, and makes them appear to be installed in the same
place. For example, /usr/local/bin could contain symlinks to
files within /usr/local/stow/emacs/bin, /usr/local/stow/perl/bin
etc., and likewise recursively for any other subdirectories such
as .../share, .../man, and so on.
'';
license = "GPLv3+";
homepage = http://www.gnu.org/software/stow/;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -0,0 +1,30 @@
{ cabal, Cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck
, random, stm, testFramework, testFrameworkHunit
, testFrameworkQuickcheck2, time, zlib
}:
cabal.mkDerivation (self: {
pname = "cabal-install";
version = "1.18.0";
sha256 = "14c4i8cy2rnvjj2krv3swna53k2674xhpzqkmcr56lxnyzych5wh";
isLibrary = false;
isExecutable = true;
buildDepends = [
Cabal filepath HTTP mtl network random stm time zlib
];
testDepends = [
Cabal filepath HTTP HUnit mtl network QuickCheck stm testFramework
testFrameworkHunit testFrameworkQuickcheck2 time zlib
];
postInstall = ''
mkdir $out/etc
mv bash-completion $out/etc/bash_completion.d
'';
meta = {
homepage = "http://www.haskell.org/cabal/";
description = "The command-line interface for Cabal and Hackage";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})

View File

@@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "nix-1.6pre3187_3fb7ae0";
name = "nix-1.6pre3215_2c1ecf8";
src = fetchurl {
url = "http://hydra.nixos.org/build/5663853/download/5/${name}.tar.xz";
sha256 = "3cd695b3bb23ea7f9e4779f5b79180319444204b30120ed2cc0f0bf1e070403f";
url = "http://hydra.nixos.org/build/5940181/download/5/${name}.tar.xz";
sha256 = "404fe856ae534b09e9a81d69751127e0987fea6bf2d0ec01acac3a9ea4ce72ae";
};
nativeBuildInputs = [ perl pkgconfig ];

View File

@@ -0,0 +1,20 @@
{ stdenv, fetchurl, openssl }:
stdenv.mkDerivation rec {
name = "scrypt-${version}";
version = "1.1.6";
src = fetchurl {
url = "https://www.tarsnap.com/scrypt/scrypt-1.1.6.tgz";
sha256 = "dfd0d1a544439265bbb9b58043ad3c8ce50a3987b44a61b1d39fd7a3ed5b7fb8";
};
buildInputs = [ openssl ];
meta = {
description = "The scrypt encryption utility";
homepage = https://www.tarsnap.com/scrypt.html;
license = "BSD";
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -0,0 +1,17 @@
{stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "collectd-5.4.0";
src = fetchurl {
url = "http://collectd.org/files/${name}.tar.bz2";
sha256 = "0gljf5c60q6i0nrii6addxy1p76qqixww8zy17a7a1zil6a3i5wh";
};
meta = {
homepage = http://collectd.org;
description = "collectd is a daemon which collects system performance statistics periodically";
platforms = stdenv.lib.platforms.linux;
license = "GPLv2";
};
}

View File

@@ -1,9 +1,10 @@
{ stdenv, fetchurl }:
let
dbrev = "3849";
driverdb = fetchurl {
url = "http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/trunk/smartmontools/drivedb.h?revision=3812";
sha256 = "1x22ammjwlb7p3cmd13shqq1payb7nr9pgfa9xifs19qyr77mrwp";
url = "http://sourceforge.net/p/smartmontools/code/${dbrev}/tree/trunk/smartmontools/drivedb.h?format=raw";
sha256 = "06c1cl0x4sq64l3rmd5rk8wsbggjixphpgj0kf4awqhjgsi102xz";
name = "smartmontools-drivedb.h";
};
in

View File

@@ -1,13 +1,9 @@
{ stdenv, fetchgit, pkgconfig, libuuid, openssl }:
let
arch = if stdenv.system == "x86_64-linux" then "x86_64"
else if stdenv.system == "i686-linux" then "x86"
else throw "vboot_reference for: ${stdenv.system} not supported!";
stdenv.mkDerivation rec {
version = "20130507";
checkout = "25/50225/2";
in stdenv.mkDerivation {
name = "vboot_reference-${version}";
src = fetchgit {
@@ -22,6 +18,10 @@ in stdenv.mkDerivation {
else [ (stdenv.lib.overrideDerivation libuuid
(args: { configureFlags = args.configureFlags + " --enable-static"; })) ]);
arch = if stdenv.system == "x86_64-linux" then "x86_64"
else if stdenv.system == "i686-linux" then "x86"
else throw "vboot_reference for: ${stdenv.system} not supported!";
buildPhase = ''
make ARCH=${arch} `pwd`/build/cgpt/cgpt
make ARCH=${arch} `pwd`/build/utility/vbutil_kernel
@@ -38,4 +38,10 @@ in stdenv.mkDerivation {
cp build/utility/vbutil_keyblock $out/bin
cp build/utility/vbutil_firmware $out/bin
'';
meta = {
description = "Chrome OS partitioning and kernel signing tools.";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -2,14 +2,14 @@
let
name = "source-highlight";
version = "3.1.6";
version = "3.1.7";
in
stdenv.mkDerivation {
name = "${name}-${version}";
src = fetchurl {
url = "mirror://gnu/src-highlite/${name}-${version}.tar.gz";
sha256 = "0a5zh876nc1gig8z586b953r8ahh9zbs1lmi8vxjrkwp6zqzf4xm";
sha256 = "1s49ld8cnpzhhwq0r7s0sfm3cg3nhhm0wla27lwraifrrl3y1cp1";
};
configureFlags = [ "--with-boost=${boost}" ];

View File

@@ -0,0 +1,41 @@
{ 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 ];
};
}

View File

@@ -0,0 +1,374 @@
commit fc59dd90f03cf88f4cf16c07204809f2239284ee
Author: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Date: Thu Dec 20 00:02:53 2012 +0100
Add support for python3
Libreoffice 4.0 will switch its internal python version to 3.3.0
so it's to support that.
Porting done automatically 2to3 plus print_function import added
manually. Tested on both libreoffice master with internal python
and with libreoffince 3.6.4 on debian with system python 2.7.
This bumps the minimal python version to 2.6 since 2.5 does not
have the print function.
diff --git a/unoconv b/unoconv
index 30e6706..f72cf08 100755
--- a/unoconv
+++ b/unoconv
@@ -14,6 +14,8 @@
### Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
### Copyright 2007-2010 Dag Wieers <dag@wieers.com>
+from __future__ import print_function
+
from distutils.version import LooseVersion
import getopt
import glob
@@ -77,11 +79,11 @@ def find_offices():
else:
if os.name in ( 'nt', 'os2' ):
- if 'PROGRAMFILES' in os.environ.keys():
+ if 'PROGRAMFILES' in list(os.environ.keys()):
extrapaths += glob.glob(os.environ['PROGRAMFILES']+'\\LibreOffice*') + \
glob.glob(os.environ['PROGRAMFILES']+'\\OpenOffice.org*')
- if 'PROGRAMFILES(X86)' in os.environ.keys():
+ if 'PROGRAMFILES(X86)' in list(os.environ.keys()):
extrapaths += glob.glob(os.environ['PROGRAMFILES(X86)']+'\\LibreOffice*') + \
glob.glob(os.environ['PROGRAMFILES(X86)']+'\\OpenOffice.org*')
@@ -233,18 +235,18 @@ def office_environ(office):
def debug_office():
if 'URE_BOOTSTRAP' in os.environ:
- print >>sys.stderr, 'URE_BOOTSTRAP=%s' % os.environ['URE_BOOTSTRAP']
+ print('URE_BOOTSTRAP=%s' % os.environ['URE_BOOTSTRAP'], file=sys.stderr)
if 'UNO_PATH' in os.environ:
- print >>sys.stderr, 'UNO_PATH=%s' % os.environ['UNO_PATH']
+ print('UNO_PATH=%s' % os.environ['UNO_PATH'], file=sys.stderr)
if 'UNO_TYPES' in os.environ:
- print >>sys.stderr, 'UNO_TYPES=%s' % os.environ['UNO_TYPES']
- print 'PATH=%s' % os.environ['PATH']
+ print('UNO_TYPES=%s' % os.environ['UNO_TYPES'], file=sys.stderr)
+ print('PATH=%s' % os.environ['PATH'])
if 'PYTHONHOME' in os.environ:
- print >>sys.stderr, 'PYTHONHOME=%s' % os.environ['PYTHONHOME']
+ print('PYTHONHOME=%s' % os.environ['PYTHONHOME'], file=sys.stderr)
if 'PYTHONPATH' in os.environ:
- print >>sys.stderr, 'PYTHONPATH=%s' % os.environ['PYTHONPATH']
+ print('PYTHONPATH=%s' % os.environ['PYTHONPATH'], file=sys.stderr)
if 'LD_LIBRARY_PATH' in os.environ:
- print >>sys.stderr, 'LD_LIBRARY_PATH=%s' % os.environ['LD_LIBRARY_PATH']
+ print('LD_LIBRARY_PATH=%s' % os.environ['LD_LIBRARY_PATH'], file=sys.stderr)
def python_switch(office):
if office.pythonhome:
@@ -335,11 +337,11 @@ class FmtList:
return ret
def display(self, doctype):
- print >>sys.stderr, "The following list of %s formats are currently available:\n" % doctype
+ print("The following list of %s formats are currently available:\n" % doctype, file=sys.stderr)
for fmt in self.list:
if fmt.doctype == doctype:
- print >>sys.stderr, " %-8s - %s" % (fmt.name, fmt)
- print >>sys.stderr
+ print(" %-8s - %s" % (fmt.name, fmt), file=sys.stderr)
+ print(file=sys.stderr)
fmts = FmtList()
@@ -530,14 +532,14 @@ class Options:
'outputpath', 'password=', 'pipe=', 'port=', 'server=',
'timeout=', 'show', 'stdout', 'template', 'verbose',
'version'] )
- except getopt.error, exc:
- print 'unoconv: %s, try unoconv -h for a list of all the options' % str(exc)
+ except getopt.error as exc:
+ print('unoconv: %s, try unoconv -h for a list of all the options' % str(exc))
sys.exit(255)
for opt, arg in opts:
if opt in ['-h', '--help']:
self.usage()
- print
+ print()
self.help()
sys.exit(1)
elif opt in ['-c', '--connection']:
@@ -562,7 +564,7 @@ class Options:
except ValueError:
self.exportfilter.append( PropertyValue( name, 0, value, 0 ) )
else:
- print >>sys.stderr, 'Warning: Option %s cannot be parsed, ignoring.' % arg
+ print('Warning: Option %s cannot be parsed, ignoring.' % arg, file=sys.stderr)
elif opt in ['-f', '--format']:
self.format = arg
elif opt in ['-i', '--import']:
@@ -581,7 +583,7 @@ class Options:
except ValueError:
self.importfilter.append( PropertyValue( name, 0, value, 0 ) )
else:
- print >>sys.stderr, 'Warning: Option %s cannot be parsed, ignoring.' % arg
+ print('Warning: Option %s cannot be parsed, ignoring.' % arg, file=sys.stderr)
elif opt in ['-l', '--listener']:
self.listener = True
elif opt in ['-n', '--no-launch']:
@@ -589,7 +591,7 @@ class Options:
elif opt in ['-o', '--output']:
self.output = arg
elif opt in ['--outputpath']:
- print >>sys.stderr, 'Warning: This option is deprecated by --output.'
+ print('Warning: This option is deprecated by --output.', file=sys.stderr)
self.output = arg
elif opt in ['--password']:
self.password = arg
@@ -615,13 +617,13 @@ class Options:
### Enable verbosity
if self.verbose >= 2:
- print >>sys.stderr, 'Verbosity set to level %d' % self.verbose
+ print('Verbosity set to level %d' % self.verbose, file=sys.stderr)
self.filenames = args
if not self.listener and not self.showlist and self.doctype != 'list' and not self.filenames:
- print >>sys.stderr, 'unoconv: you have to provide a filename as argument'
- print >>sys.stderr, 'Try `unoconv -h\' for more information.'
+ print('unoconv: you have to provide a filename as argument', file=sys.stderr)
+ print('Try `unoconv -h\' for more information.', file=sys.stderr)
sys.exit(255)
### Set connection string
@@ -659,21 +661,21 @@ class Options:
### Get office product information
product = uno.getComponentContext().ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider").createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", UnoProps(nodepath="/org.openoffice.Setup/Product"))
- print 'unoconv %s' % VERSION
- print 'Written by Dag Wieers <dag@wieers.com>'
- print 'Homepage at http://dag.wieers.com/home-made/unoconv/'
- print
- print 'platform %s/%s' % (os.name, sys.platform)
- print 'python %s' % sys.version
- print product.ooName, product.ooSetupVersion
+ print('unoconv %s' % VERSION)
+ print('Written by Dag Wieers <dag@wieers.com>')
+ print('Homepage at http://dag.wieers.com/home-made/unoconv/')
+ print()
+ print('platform %s/%s' % (os.name, sys.platform))
+ print('python %s' % sys.version)
+ print(product.ooName, product.ooSetupVersion)
# print
# print 'build revision $Rev$'
def usage(self):
- print >>sys.stderr, 'usage: unoconv [options] file [file2 ..]'
+ print('usage: unoconv [options] file [file2 ..]', file=sys.stderr)
def help(self):
- print >>sys.stderr, '''Convert from and to any format supported by LibreOffice
+ print('''Convert from and to any format supported by LibreOffice
unoconv options:
-c, --connection=string use a custom connection string
@@ -698,7 +700,7 @@ unoconv options:
-t, --template=file import the styles from template (.ott)
-T, --timeout=secs timeout after secs if connection to listener fails
-v, --verbose be more and more verbose (-vvv for debugging)
-'''
+''', file=sys.stderr)
class Convertor:
def __init__(self):
@@ -714,7 +716,7 @@ class Convertor:
info(3, 'Connection type: %s' % op.connection)
try:
unocontext = resolver.resolve("uno:%s" % op.connection)
- except NoConnectException, e:
+ except NoConnectException as e:
# info(3, "Existing listener not found.\n%s" % e)
info(3, "Existing listener not found.")
@@ -749,7 +751,7 @@ class Convertor:
raise
else:
error("Failed to connect to %s (pid=%s) in %d seconds.\n%s" % (office.binary, ooproc.pid, op.timeout, e))
- except Exception, e:
+ except Exception as e:
raise
error("Launch of %s failed.\n%s" % (office.binary, e))
@@ -799,9 +801,9 @@ class Convertor:
### No format found, throw error
if not outputfmt:
if doctype:
- print >>sys.stderr, 'unoconv: format [%s/%s] is not known to unoconv.' % (op.doctype, op.format)
+ print('unoconv: format [%s/%s] is not known to unoconv.' % (op.doctype, op.format), file=sys.stderr)
else:
- print >>sys.stderr, 'unoconv: format [%s] is not known to unoconv.' % op.format
+ print('unoconv: format [%s] is not known to unoconv.' % op.format, file=sys.stderr)
die(1)
return outputfmt
@@ -813,10 +815,10 @@ class Convertor:
outputfmt = self.getformat(inputfn)
if op.verbose > 0:
- print >>sys.stderr, 'Input file:', inputfn
+ print('Input file:', inputfn, file=sys.stderr)
if not os.path.exists(inputfn):
- print >>sys.stderr, 'unoconv: file `%s\' does not exist.' % inputfn
+ print('unoconv: file `%s\' does not exist.' % inputfn, file=sys.stderr)
exitcode = 1
try:
@@ -854,7 +856,7 @@ class Convertor:
templateurl = unohelper.absolutize(self.cwd, unohelper.systemPathToFileUrl(op.template))
document.StyleFamilies.loadStylesFromURL(templateurl, templateprops)
else:
- print >>sys.stderr, 'unoconv: template file `%s\' does not exist.' % op.template
+ print('unoconv: template file `%s\' does not exist.' % op.template, file=sys.stderr)
exitcode = 1
### Update document links
@@ -924,40 +926,40 @@ class Convertor:
try:
document.storeToURL(outputurl, tuple(outputprops) )
- except IOException, e:
+ except IOException as e:
raise UnoException("Unable to store document to %s (ErrCode %d)\n\nProperties: %s" % (outputurl, e.ErrCode, outputprops), None)
phase = "dispose"
document.dispose()
document.close(True)
- except SystemError, e:
+ except SystemError as e:
error("unoconv: SystemError during %s phase:\n%s" % (phase, e))
exitcode = 1
- except RuntimeException, e:
+ except RuntimeException as e:
error("unoconv: RuntimeException during %s phase:\nOffice probably died. %s" % (phase, e))
exitcode = 6
- except DisposedException, e:
+ except DisposedException as e:
error("unoconv: DisposedException during %s phase:\nOffice probably died. %s" % (phase, e))
exitcode = 7
- except IllegalArgumentException, e:
+ except IllegalArgumentException as e:
error("UNO IllegalArgument during %s phase:\nSource file cannot be read. %s" % (phase, e))
exitcode = 8
- except IOException, e:
+ except IOException as e:
# for attr in dir(e): print '%s: %s', (attr, getattr(e, attr))
error("unoconv: IOException during %s phase:\n%s" % (phase, e.Message))
exitcode = 3
- except CannotConvertException, e:
+ except CannotConvertException as e:
# for attr in dir(e): print '%s: %s', (attr, getattr(e, attr))
error("unoconv: CannotConvertException during %s phase:\n%s" % (phase, e.Message))
exitcode = 4
- except UnoException, e:
+ except UnoException as e:
if hasattr(e, 'ErrCode'):
error("unoconv: UnoException during %s phase in %s (ErrCode %d)" % (phase, repr(e.__class__), e.ErrCode))
exitcode = e.ErrCode
@@ -982,7 +984,7 @@ class Listener:
product = self.svcmgr.createInstance("com.sun.star.configuration.ConfigurationProvider").createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", UnoProps(nodepath="/org.openoffice.Setup/Product"))
try:
unocontext = resolver.resolve("uno:%s" % op.connection)
- except NoConnectException, e:
+ except NoConnectException as e:
pass
else:
info(1, "Existing %s listener found, nothing to do." % product.ooName)
@@ -991,25 +993,25 @@ class Listener:
subprocess.call([office.binary, "-headless", "-invisible", "-nocrashreport", "-nodefault", "-nologo", "-nofirststartwizard", "-norestore", "-accept=%s" % op.connection], env=os.environ)
else:
subprocess.call([office.binary, "--headless", "--invisible", "--nocrashreport", "--nodefault", "--nologo", "--nofirststartwizard", "--norestore", "--accept=%s" % op.connection], env=os.environ)
- except Exception, e:
+ except Exception as e:
error("Launch of %s failed.\n%s" % (office.binary, e))
else:
info(1, "Existing %s listener found, nothing to do." % product.ooName)
def error(msg):
"Output error message"
- print >>sys.stderr, msg
+ print(msg, file=sys.stderr)
def info(level, msg):
"Output info message"
if 'op' not in globals():
pass
elif op.verbose >= 3 and level >= 3:
- print >>sys.stderr, "DEBUG:", msg
+ print("DEBUG:", msg, file=sys.stderr)
elif not op.stdout and level <= op.verbose:
- print >>sys.stdout, msg
+ print(msg, file=sys.stdout)
elif level <= op.verbose:
- print >>sys.stderr, msg
+ print(msg, file=sys.stderr)
def die(ret, msg=None):
"Print optional error and exit with errorcode"
@@ -1031,7 +1033,7 @@ def die(ret, msg=None):
subprocess.Popen([office.binary, "--headless", "--invisible", "--nocrashreport", "--nodefault", "--nofirststartwizard", "--nologo", "--norestore", "--unaccept=%s" % op.connection], env=os.environ)
ooproc.wait()
info(2, '%s listener successfully disabled.' % product.ooName)
- except Exception, e:
+ except Exception as e:
error("Terminate using %s failed.\n%s" % (office.binary, e))
### If there is no GUI attached to the instance, terminate instance
@@ -1080,7 +1082,7 @@ def main():
for inputfn in op.filenames:
convertor.convert(inputfn)
- except NoConnectException, e:
+ except NoConnectException as e:
error("unoconv: could not find an existing connection to LibreOffice at %s:%s." % (op.server, op.port))
if op.connection:
info(0, "Please start an LibreOffice instance on server '%s' by doing:\n\n unoconv --listener --server %s --port %s\n\nor alternatively:\n\n soffice -nologo -nodefault -accept=\"%s\"" % (op.server, op.server, op.port, op.connection))
@@ -1110,14 +1112,14 @@ if __name__ == '__main__':
break
except:
# debug_office()
- print >>sys.stderr, "unoconv: Cannot find a suitable pyuno library and python binary combination in %s" % of
- print >>sys.stderr, "ERROR:", sys.exc_info()[1]
- print >>sys.stderr
+ print("unoconv: Cannot find a suitable pyuno library and python binary combination in %s" % of, file=sys.stderr)
+ print("ERROR:", sys.exc_info()[1], file=sys.stderr)
+ print(file=sys.stderr)
else:
# debug_office()
- print >>sys.stderr, "unoconv: Cannot find a suitable office installation on your system."
- print >>sys.stderr, "ERROR: Please locate your office installation and send your feedback to:"
- print >>sys.stderr, " http://github.com/dagwieers/unoconv/issues"
+ print("unoconv: Cannot find a suitable office installation on your system.", file=sys.stderr)
+ print("ERROR: Please locate your office installation and send your feedback to:", file=sys.stderr)
+ print(" http://github.com/dagwieers/unoconv/issues", file=sys.stderr)
sys.exit(1)
### Now that we have found a working pyuno library, let's import some classes
@@ -1160,6 +1162,6 @@ if __name__ == '__main__':
try:
main()
- except KeyboardInterrupt, e:
+ except KeyboardInterrupt as e:
die(6, 'Exiting on user request')
die(exitcode)

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2178"
sodipodi:version="0.32"
inkscape:version="0.45"
width="1568"
height="1164"
version="1.0"
sodipodi:docbase="F:\Uni\Scholl\Research\Conferences\BTW2007\Poster"
sodipodi:docname="Logo.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2183">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2181" />
<sodipodi:namedview
inkscape:window-height="1150"
inkscape:window-width="1143"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:zoom="0.64948454"
inkscape:cx="784"
inkscape:cy="584.00852"
inkscape:window-x="412"
inkscape:window-y="20"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:object-bbox="true"
inkscape:object-points="true"
gridempspacing="10" />
<g
inkscape:groupmode="layer"
id="layer2"
style="opacity:1">
<path
style="font-size:1470px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:19.98425102;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Clarendo"
d="M 628.08008,847.55762 C 613.24569,864.30587 601.88095,879.3791 593.98584,892.77734 C 586.08995,906.17595 582.1422,916.94254 582.14258,925.07715 C 582.1422,937.9972 586.92735,947.08899 596.49805,952.35254 C 606.06796,957.61633 624.49079,960.24816 651.7666,960.24805 L 720.67285,960.24805 L 720.67285,1072.2207 L 207.46484,1072.2207 L 207.46484,960.24805 L 256.27344,960.24805 C 284.9843,960.24816 308.07265,955.94152 325.53857,947.32813 C 343.00426,938.71498 364.89633,919.09586 391.21484,888.4707 L 673.2998,568.34375 L 441.45898,276.92773 C 416.57596,245.82505 393.60723,224.77038 372.55273,213.76367 C 351.4979,202.75868 325.89734,197.25576 295.75098,197.25488 L 245.50684,197.25488 L 245.50684,86 L 767.32813,86 L 767.32813,197.25488 L 699.85742,197.25488 C 685.97999,197.25576 675.45266,199.76796 668.27539,204.7915 C 661.0972,209.81678 657.50834,217.11414 657.50879,226.68359 C 657.50834,233.38365 659.30277,240.20249 662.89209,247.14014 C 666.4805,254.07943 672.58156,262.57308 681.19531,272.62109 L 810.39453,429.81348 L 967.58691,265.44336 C 974.76388,258.26644 980.50606,250.84945 984.81348,243.19238 C 989.11933,235.53697 991.27265,229.07702 991.27344,223.8125 C 991.27265,215.20008 985.88936,208.62049 975.12354,204.07373 C 964.35618,199.5287 948.20629,197.25576 926.67383,197.25488 L 869.25195,197.25488 L 869.25195,86 L 1332.2158,86 L 1332.2158,197.25488 L 1279.1006,197.25488 C 1241.2968,197.25576 1189.8564,233.14439 1124.7793,304.9209 L 1123.3438,306.35645 L 905.8584,544.65723 L 1155.6436,856.1709 C 1194.8808,904.97966 1224.6684,934.52797 1245.0063,944.81592 C 1265.3422,955.10412 1294.412,960.24816 1332.2158,960.24805 L 1376,960.24805 L 1376,1072.2207 L 810.39453,1072.2207 L 810.39453,960.24805 L 877.86523,960.24805 C 901.79032,960.24816 919.25612,958.21447 930.2627,954.14697 C 941.26782,950.07971 946.77074,943.26087 946.77148,933.69043 C 946.77074,926.51284 945.3352,918.97623 942.46484,911.08057 C 939.59302,903.18523 935.28638,895.64861 929.54492,888.4707 L 768.76367,685.34082 L 628.08008,847.55762 z "
id="text2175" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 146.16714,395.52869 L 353.19839,395.52869 C 387.70332,395.52904 414.19255,404.07396 432.66616,421.16345 C 451.13913,438.25361 460.37577,459.41244 460.37612,484.64001 C 460.37577,505.79912 453.78398,523.94688 440.60073,539.08337 C 431.81135,549.17472 418.95329,557.14998 402.02651,563.00916 C 427.74234,569.19424 446.66322,579.81434 458.78921,594.86951 C 470.9145,609.92499 476.97732,628.84587 476.97768,651.6322 C 476.97732,670.18697 472.66417,686.8699 464.03823,701.68103 C 455.41158,716.49227 443.61146,728.211 428.63784,736.83728 C 419.36019,742.20839 405.3628,746.11463 386.64565,748.55603 C 361.74306,751.81124 345.22289,753.43884 337.08511,753.43884 L 146.16714,753.43884 L 146.16714,395.52869 z M 257.7394,535.90955 L 305.83511,535.90955 C 323.0875,535.90976 335.09107,532.93939 341.84585,526.99841 C 348.60017,521.05789 351.97744,512.47229 351.97768,501.24158 C 351.97744,490.82517 348.60017,482.68716 341.84585,476.82751 C 335.09107,470.96842 323.33164,468.03874 306.56753,468.03845 L 257.7394,468.03845 L 257.7394,535.90955 z M 257.7394,676.53455 L 314.13589,676.53455 C 333.17863,676.53462 346.60635,673.15735 354.41909,666.40271 C 362.23134,659.64825 366.13758,650.57436 366.13784,639.18103 C 366.13758,628.60173 362.27203,620.0975 354.54116,613.66833 C 346.8098,607.23944 333.26001,604.02493 313.89175,604.02478 L 257.7394,604.02478 L 257.7394,676.53455 z "
id="text2205" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 703.69272,694.35681 L 577.71616,694.35681 L 560.38217,753.43884 L 447.34506,753.43884 L 581.86655,395.52869 L 702.47202,395.52869 L 836.9935,753.43884 L 721.27084,753.43884 L 703.69272,694.35681 z M 680.49936,616.96423 L 640.94858,488.30212 L 601.64194,616.96423 L 680.49936,616.96423 z "
id="text3180" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 810.90509,641.13416 L 916.1297,634.54236 C 918.40822,651.63231 923.04689,664.65313 930.04572,673.60486 C 941.4388,688.09061 957.71482,695.33344 978.87384,695.33337 C 994.6614,695.33344 1006.8277,691.63064 1015.3729,684.22498 C 1023.9176,676.81946 1028.19,668.23386 1028.1902,658.46814 C 1028.19,649.19091 1024.121,640.89013 1015.9832,633.5658 C 1007.845,626.24171 988.96479,619.3244 959.34259,612.81384 C 910.83987,601.90905 876.25331,587.42339 855.58282,569.35681 C 834.74945,551.29061 824.33279,528.26004 824.33282,500.26501 C 824.33279,481.87337 829.66319,464.49871 840.32404,448.14099 C 850.98479,431.7839 867.01667,418.92584 888.41974,409.56677 C 909.82262,400.20841 939.16015,395.52905 976.43243,395.52869 C 1022.1679,395.52905 1057.0393,404.03327 1081.0467,421.04138 C 1105.0535,438.05017 1119.3358,465.10906 1123.8934,502.21814 L 1019.6453,508.32166 C 1016.8782,492.20864 1011.0595,480.4899 1002.1893,473.16541 C 993.31863,465.84148 981.07092,462.17937 965.44611,462.17908 C 952.58787,462.17937 942.90364,464.90561 936.39337,470.35779 C 929.88282,475.81055 926.62761,482.44303 926.62775,490.25525 C 926.62761,495.95213 929.31316,501.07908 934.68439,505.63611 C 939.89257,510.35641 952.26235,514.75094 971.79376,518.8197 C 1020.1334,529.2366 1054.7606,539.77533 1075.6756,550.43591 C 1096.59,561.09692 1111.8081,574.32119 1121.3299,590.10876 C 1130.851,605.89668 1135.6118,623.55617 1135.6121,643.08728 C 1135.6118,666.03659 1129.2641,687.19543 1116.5692,706.56384 C 1103.8735,725.93237 1086.1327,740.62148 1063.3465,750.63123 C 1040.5598,760.64099 1011.8326,765.64587 977.16486,765.64587 C 916.29234,765.64587 874.13743,753.92713 850.70001,730.48962 C 827.26248,707.05218 813.99752,677.26705 810.90509,641.13416 L 810.90509,641.13416 z "
id="text3184" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 1139.0592,395.52869 L 1435.4459,395.52869 L 1435.4459,471.9447 L 1249.899,471.9447 L 1249.899,528.82947 L 1422.0182,528.82947 L 1422.0182,601.82751 L 1249.899,601.82751 L 1249.899,672.38416 L 1440.817,672.38416 L 1440.817,753.43884 L 1139.0592,753.43884 L 1139.0592,395.52869 z "
id="text3188" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,73 @@
{ stdenv, fetchurl, unzip, jre, coreutils, makeDesktopItem }:
stdenv.mkDerivation rec {
name = "basex-7.7";
src = fetchurl {
url = "http://files.basex.org/releases/7.7/BaseX77.zip";
sha256 = "1wnndq8lcnfx29bc3j2sgswk6dxgv2nln2chmwbf7h4a05fcavdj";
};
buildInputs = [ unzip jre ];
desktopItem = makeDesktopItem {
name = "basex";
exec = "basexgui %f";
icon = "${./basex.svg}"; # icon copied from Ubuntu basex package
comment = "Visually query and analyse your XML data";
desktopName = "BaseX XML Database";
genericName = "XML database tool";
categories = "Development;Utility;Database";
mimeType = "text/xml";
};
# We're using a pre-built package
configurePhase = "true";
buildPhase = "true";
installPhase = ''
mkdir -p "$out"
cp -r * "$out"
# Remove Windows batch files (unclutter $out/bin)
rm -f "$out"/bin/*.bat
# Move some top-level stuff to $out/share/basex (unclutter $out)
mkdir -p "$out/share/basex"
mv "$out"/*.txt "$out/share/basex/"
mv "$out"/webapp "$out/share/basex/"
# Remove empty directories
rmdir "$out/repo"
rmdir "$out/data"
# Install desktop file
mkdir -p "$out/share/applications"
cp "$desktopItem"/share/applications/* "$out/share/applications/"
# Use substitutions instead of wrapper scripts
for file in "$out"/bin/*; do
sed -i -e "s|/usr/bin/env bash|${stdenv.shell}|" \
-e "s|java|${jre}/bin/java|" \
-e "s|readlink|${coreutils}/bin/readlink|" \
-e "s|dirname|${coreutils}/bin/dirname|" \
-e "s|basename|${coreutils}/bin/basename|" \
-e "s|echo|${coreutils}/bin/echo|" \
"$file"
done
'';
meta = with stdenv.lib; {
description = "XML database and XPath/XQuery processor";
longDescription = ''
BaseX is a very fast and light-weight, yet powerful XML database and
XPath/XQuery processor, including support for the latest W3C Full Text
and Update Recommendations. It supports large XML instances and offers a
highly interactive front-end (basexgui). Apart from two local standalone
modes, BaseX offers a client/server architecture.
'';
homepage = http://basex.org/;
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@@ -15,30 +15,33 @@ stdenv.mkDerivation {
buildInputs = [ flex bison zlib libpng ncurses ed ];
# fixes "error: conflicting types for 'calloc'", etc.
preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
sed -i 57d texk/kpathsea/c-std.h
'';
patches = [ ./environment.patch ./getline.patch ];
setupHook = ./setup-hook.sh;
configureFlags =
[ "--disable-multiplatform"
"--without-x11"
"--without-xdvik"
"--without-oxdvik"
"--without-texinfo"
"--without-texi2html"
"--with-system-zlib"
"--with-system-pnglib"
"--with-system-ncurses"
];
[ "--disable-multiplatform" "--without-x11" "--without-xdvik"
"--without-oxdvik" "--without-texinfo" "--without-texi2html"
"--with-system-zlib" "--with-system-pnglib" "--with-system-ncurses" ]
# couldn't get gsftopk working on darwin
++ stdenv.lib.optional stdenv.isDarwin "--without-gsftopk";
postUnpack =
''
mkdir -p $out/share/texmf
mkdir -p $out/share/texmf-dist
gunzip < $texmf | (cd $out/share/texmf-dist && tar xvf -)
'';
postUnpack = ''
mkdir -p $out/share/texmf
mkdir -p $out/share/texmf-dist
gunzip < $texmf | (cd $out/share/texmf-dist && tar xvf -)
'';
meta = {
description = "A full-featured (La)TeX distribution";
meta = with stdenv.lib; {
description = "A full-featured (La)TeX distribution";
homepage = http://www.tug.org/tetex/;
matintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
};
}

View File

@@ -1,12 +1,13 @@
args : with args;
rec {
phaseNames = ["doAggregate"];
name = "TeXLive-linkdir";
buildInputs = lib.closePropagation paths;
buildInputs = lib.closePropagation paths
++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
phaseNames = [ "doAggregate" ];
doAggregate = fullDepEntry (''
mkdir -p $out/bin
for currentPath in ${lib.concatStringsSep " " buildInputs}; do
echo Symlinking "$currentPath"
@@ -54,7 +55,13 @@ rec {
yes | PATH=$PATH:$out/bin mktexlsr $out/texmf*
yes | TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
yes | PATH=$PATH:$out/bin mktexlsr $out/texmf*
'') ["minInit" "defEnsureDir" "addInputs"];
'' + stdenv.lib.optionalString stdenv.isDarwin ''
# did the same thing in texLive, but couldn't get it to carry to the
# binaries installed by texLiveFull
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
done
'' ) [ "minInit" "defEnsureDir" "addInputs" ];
meta = {
description = "TeX distribution directory";

View File

@@ -17,7 +17,9 @@ rec {
setupHook = ./setup-hook.sh;
doMainBuild = fullDepEntry (''
doMainBuild = fullDepEntry ( stdenv.lib.optionalString stdenv.isDarwin ''
export DYLD_LIBRARY_PATH="${poppler}/lib"
'' + ''
mkdir -p $out
mkdir -p $out/nix-support
cp ${setupHook} $out/nix-support/setup-hook.sh
@@ -40,24 +42,26 @@ rec {
./Build --prefix="$out" --datadir="$out/share" --mandir "$out/share/man" --infodir "$out/share/info" \
${args.lib.concatStringsSep " " configureFlags}
cd Work
'') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
'' ) [ "minInit" "doUnpack" "addInputs" "defEnsureDir" ];
doPostInstall = fullDepEntry(''
doPostInstall = fullDepEntry( ''
mkdir -p $out/libexec/
mv $out/bin $out/libexec/$(uname -m)
mkdir -p $out/bin
for i in "$out/libexec/"* "$out/libexec/"*/* ; do
test \( \! -d "$i" \) -a \( -x "$i" -o -L "$i" \) || continue
if [ -x "$i" ]; then
echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i)
chmod a+x $out/bin/$(basename $i)
else
mv "$i" "$out/libexec"
ln -s "$(readlink -f "$out/libexec/$(basename "$i")")" "$out/bin/$(basename "$i")";
ln -sf "$(readlink -f "$out/libexec/$(basename "$i")")" "$out/libexec/$(uname -m)/$(basename "$i")";
rm "$out/libexec/$(basename "$i")"
fi;
if [ -x "$i" ]; then
echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i)
chmod a+x $out/bin/$(basename $i)
else
mv "$i" "$out/libexec"
ln -s "$(readlink -f "$out/libexec/$(basename "$i")")" "$out/bin/$(basename "$i")";
ln -sf "$(readlink -f "$out/libexec/$(basename "$i")")" "$out/libexec/$(uname -m)/$(basename "$i")";
rm "$out/libexec/$(basename "$i")"
fi;
done
[ -d $out/texmf-config ] || ln -s $out/texmf $out/texmf-config
ln -s -v "$out/"*texmf* "$out/share/" || true
@@ -80,29 +84,37 @@ rec {
PATH="$PATH:$out/bin" fmtutil-sys --all || true
PATH=$PATH:$out/bin mktexlsr $out/texmf*
'') ["minInit" "defEnsureDir" "doUnpack" "doMakeInstall"];
'' + stdenv.lib.optionalString stdenv.isDarwin ''
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
done
'' ) [ "minInit" "defEnsureDir" "doUnpack" "doMakeInstall" ];
buildInputs = [
zlib bzip2 ncurses libpng flex bison libX11 libICE
xproto freetype t1lib gd libXaw icu ghostscript ed
libXt libXpm libXmu libXext xextproto perl libSM
ruby expat curl libjpeg python fontconfig xz
pkgconfig poppler silgraphite lesstif zziplib
];
buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11 libICE xproto
freetype t1lib gd libXaw icu ghostscript ed libXt libXpm libXmu libXext
xextproto perl libSM ruby expat curl libjpeg python fontconfig xz pkgconfig
poppler silgraphite lesstif zziplib ]
++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper ];
configureFlags = [ "--with-x11"
"--enable-ipc" "--with-mktexfmt" "--enable-shared"
"--disable-native-texlive-build" "--with-system-zziplib"
"--with-system-icu" "--with-system-libgs" "--with-system-t1lib"
"--with-system-freetype2"
];
configureFlags = [ "--with-x11" "--enable-ipc" "--with-mktexfmt"
"--enable-shared" "--disable-native-texlive-build" "--with-system-zziplib"
"--with-system-libgs" "--with-system-t1lib" "--with-system-freetype2" ]
++ ( if stdenv.isDarwin
# ironically, couldn't get xetex compiling on darwin
then [ "--disable-xetex" "--disable-xdv2pdf" "--disable-xdvipdfmx" ]
# couldn't seem to get system icu working on darwin
else [ "--with-system-icu" ] );
phaseNames = ["addInputs" "doMainBuild" "doMakeInstall" "doPostInstall"];
phaseNames = [ "addInputs" "doMainBuild" "doMakeInstall" "doPostInstall" ];
name = "texlive-core-2012";
meta = {
meta = with stdenv.lib; {
description = "A TeX distribution";
maintainers = [ args.lib.maintainers.raskin ];
platforms = args.lib.platforms.linux ++ args.lib.platforms.freebsd ;
homepage = http://www.tug.org/texlive;
license = stdenv.lib.licenses.gpl2;
maintainers = with maintainers; [ lovek323 raskin ];
platforms = platforms.unix;
};
}