Add Impressive (formerly known as `KeyJNote').

svn path=/nixpkgs/trunk/; revision=14618
This commit is contained in:
Ludovic Courtès 2009-03-19 16:40:28 +00:00
parent bbf6b46178
commit 3a43ab3860
3 changed files with 85 additions and 67 deletions

View File

@ -0,0 +1,77 @@
{ fetchurl, stdenv, python, makeWrapper, lib
, xpdf, pil, pyopengl, pygame
, setuptools, mesa, freeglut }:
let version = "0.10.2";
in
stdenv.mkDerivation {
# This project was formerly known as KeyJNote.
# See http://keyj.s2000.ws/?p=77 for details.
name = "impressive-${version}";
src = fetchurl {
url = "mirror://sourceforge/impressive/Impressive-${version}.tar.gz";
sha256 = "1py36h9085ycxj3qnmqdps0dfghlr5qb2i62l0ynzngn55dgz950";
};
# Note: We need to have `setuptools' in the path to be able to use
# PyOpenGL.
buildInputs = [ makeWrapper xpdf pil pyopengl pygame ];
configurePhase = ''
sed -i "impressive.py" \
-e 's|^#!/usr/bin/env.*$|#!${python}/bin/python|g'
'';
installPhase = ''
ensureDir "$out/bin" "$out/share/doc/impressive"
mv impressive.py "$out/bin/impressive"
mv * "$out/share/doc/impressive"
# XXX: We have to reiterate PyOpenGL's dependencies here.
#
# `setuptools' must be in the Python path as it's used by
# PyOpenGL.
#
# We set $LIBRARY_PATH (no `LD_'!) so that ctypes can find
# `libGL.so', which it does by running `gcc', which in turn
# honors $LIBRARY_PATH. See
# http://python.net/crew/theller/ctypes/reference.html#id1 .
wrapProgram "$out/bin/impressive" \
--prefix PATH ":" "${xpdf}" \
--prefix PYTHONPATH ":" \
${lib.concatStringsSep ":"
(map (path:
path + "/lib/python2.5/site-packages:" +
path + "/lib/python2.4/site-packages")
[ pil pyopengl pygame setuptools ])} \
--prefix LIBRARY_PATH ":" "${mesa}/lib:${freeglut}/lib"
'';
meta = {
description = "Impressive, an effect-rich presentation tool for PDFs";
longDescription = ''
Impressive is a program that displays presentation slides.
But unlike OpenOffice.org Impress or other similar
applications, it does so with style. Smooth alpha-blended
slide transitions are provided for the sake of eye candy, but
in addition to this, Impressive offers some unique tools that
are really useful for presentations. Read below if you want
to know more about these features.
Creating presentations for Impressive is very simple: You just
need to export a PDF file from your presentation software.
This means that you can create slides in the application of
your choice and use Impressive for displaying them. If your
application does not support PDF output, you can alternatively
use a set of pre-rendered image files or you use Impressive
to make a slideshow with your favorite photos.
'';
homepage = http://impressive.sourceforge.net/;
license = "GPLv2";
};
}

View File

@ -1,60 +0,0 @@
{ fetchurl, stdenv, python, makeWrapper, lib
, xpdf, pil, pyopengl, pygame
, setuptools, mesa, freeglut }:
let version = "0.10.2";
in
stdenv.mkDerivation {
name = "keyjnote-${version}";
src = fetchurl {
# XXX: This project has become homeless and Debian seems to be
# the only reliable way to get its source.
url = "mirror://debian/pool/main/k/keyjnote/keyjnote_${version}.orig.tar.gz";
sha256 = "1rnc17da5fkfip2ijzlhxh31rykq5v5bknil8q6xnx30w8ydmy1s";
};
# Note: We need to have `setuptools' in the path to be able to use
# PyOpenGL.
buildInputs = [ makeWrapper xpdf pil pyopengl pygame ];
configurePhase = ''
sed -i "keyjnote.py" \
-e 's|^#!/usr/bin/env.*$|#!${python}/bin/python|g'
'';
installPhase = ''
ensureDir "$out/bin" "$out/share/doc/keyjnote"
mv keyjnote.py "$out/bin/keyjnote"
mv * "$out/share/doc/keyjnote"
# XXX: We have to reiterate PyOpenGL's dependencies here.
#
# `setuptools' must be in the Python path as it's used by
# PyOpenGL.
#
# We set $LIBRARY_PATH (no `LD_'!) so that ctypes can find
# `libGL.so', which it does by running `gcc', which in turn
# honors $LIBRARY_PATH. See
# http://python.net/crew/theller/ctypes/reference.html#id1 .
wrapProgram "$out/bin/keyjnote" \
--prefix PATH ":" "${xpdf}" \
--prefix PYTHONPATH ":" \
${lib.concatStringsSep ":"
(map (path:
path + "/lib/python2.5/site-packages:" +
path + "/lib/python2.4/site-packages")
[ pil pyopengl pygame setuptools ])} \
--prefix LIBRARY_PATH ":" "${mesa}/lib:${freeglut}/lib"
'';
meta = {
description = "KeyJnote, an effect-rich presentation tool for PDFs";
# This project has become homeless and will be renamed!
# See http://keyj.s2000.ws/?p=77 for details.
#homepage = http://keyjnote.sourceforge.net/;
license = "GPLv2";
};
}

View File

@ -8243,6 +8243,14 @@ let
inherit (xlibs) libX11;
};
# Impressive, formerly known as "KeyJNote".
impressive = import ../applications/office/impressive {
inherit fetchurl stdenv xpdf pil pyopengl pygame makeWrapper lib python;
# XXX These are the PyOpenGL dependencies, which we need here.
inherit setuptools mesa freeglut;
};
inkscape = import ../applications/graphics/inkscape {
inherit fetchurl stdenv perl perlXMLParser pkgconfig zlib
popt libxml2 libxslt libpng boehmgc fontconfig
@ -8279,13 +8287,6 @@ let
inherit stdenv fetchurl kdelibs x11 zlib libpng libjpeg perl qt3;
};
keyjnote = import ../applications/office/keyjnote {
inherit fetchurl stdenv xpdf pil pyopengl pygame makeWrapper lib python;
# XXX These are the PyOpenGL dependencies, which we need here.
inherit setuptools mesa freeglut;
};
kino = import ../applications/video/kino {
inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */