1{ pkgs, stdenv, fetchurl, python, buildPythonPackage, pythonPackages, mygpoclient, intltool,
2 ipodSupport ? true, libgpod, gnome3 }:
3
4with pkgs.lib;
5
6let
7 inherit (pythonPackages) coverage feedparser minimock sqlite3 dbus pygtk eyeD3;
8
9in buildPythonPackage rec {
10 name = "gpodder-3.8.4";
11
12 src = fetchurl {
13 url = "http://gpodder.org/src/${name}.tar.gz";
14 sha256 = "0cjpk92qjsws7ddbnq0r2h7vm5019zlpafgbxwsgllmjzkknj6pn";
15 };
16
17 buildInputs = [
18 coverage feedparser minimock sqlite3 mygpoclient intltool
19 gnome3.gnome_themes_standard gnome3.defaultIconTheme
20 gnome3.gsettings_desktop_schemas
21 ];
22
23 propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
24
25 pythonPath = [ feedparser dbus mygpoclient sqlite3 pygtk eyeD3 ]
26 ++ stdenv.lib.optional ipodSupport libgpod;
27
28 postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
29
30 checkPhase = "make unittest";
31
32 preFixup = ''
33 wrapProgram $out/bin/gpodder \
34 --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
35 '';
36
37 # The `wrapPythonPrograms` script in the postFixup phase breaks gpodder. The
38 # easiest way to fix this is to call wrapPythonPrograms and then to clean up
39 # the wrapped file.
40 postFixup = ''
41 wrapPythonPrograms
42
43 if test -e $out/nix-support/propagated-build-inputs; then
44 ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
45 fi
46
47 createBuildInputsPth build-inputs "$buildInputStrings"
48 for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
49 if test -e $out/nix-support/$inputsfile; then
50 createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
51 fi
52 done
53
54 sed -i "$out/bin/..gpodder-wrapped-wrapped" -e '{
55 /import sys; sys.argv/d
56 }'
57 '';
58
59 installPhase = "DESTDIR=/ PREFIX=$out make install";
60
61 meta = {
62 description = "A podcatcher written in python";
63 longDescription = ''
64 gPodder downloads and manages free audio and video content (podcasts)
65 for you. Listen directly on your computer or on your mobile devices.
66 '';
67 homepage = "http://gpodder.org/";
68 license = stdenv.lib.licenses.gpl3;
69 platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
70 maintainers = [ stdenv.lib.maintainers.skeidel ];
71 };
72}