3
0
Fork 0
forked from mirrors/nixpkgs

gpodder: Clean up package expression

We don't need to wrap twice, because we can actually pass the additional
XDG_DATA_DIRS via makeWrapperArgs.

The reason why I'm doing this within the patchPhase is because we can't
add shell variables from the current builder to makeWrapperArgs as that
content is going to end up in the wrapper verbatim.

In addition to this, gpodder was trying to search for its own directory
using the current program name, which I guess was another reason for the
double-wrap. We fix this now by setting gpodder_dir explicitly in the
main script.

Another main change is that we no longer set the "pythonX.Y-" prefix, so
the derivation name now is just "gpodder-3.9.0".

Last but not least, we enable the unit tests for gpodder in checkPhase.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @svenkeidel
This commit is contained in:
aszlig 2016-02-15 14:16:01 +01:00
parent fb1b8464f8
commit d9470c9e19
No known key found for this signature in database
GPG key ID: D0EBD0EC8C2DC961

View file

@ -1,50 +1,43 @@
{ pkgs, stdenv, fetchurl, python, buildPythonPackage, pythonPackages, mygpoclient, intltool, { stdenv, fetchurl, buildPythonPackage, pythonPackages, mygpoclient, intltool
ipodSupport ? true, libgpod, gnome3 }: , ipodSupport ? true, libgpod
, gnome3
}:
with pkgs.lib; buildPythonPackage rec {
name = "gpodder-${version}";
namePrefix = "";
let version = "3.9.0";
inherit (pythonPackages) coverage feedparser minimock sqlite3 dbus pygtk eyeD3;
in buildPythonPackage rec {
name = "gpodder-3.9.0";
src = fetchurl { src = fetchurl {
url = "http://gpodder.org/src/${name}.tar.gz"; url = "http://gpodder.org/src/${name}.tar.gz";
sha256 = "1ik954idi0ldnw0wrv7mm71smyb6x66332jxcaf1dxsl12ccm44l"; sha256 = "1ik954idi0ldnw0wrv7mm71smyb6x66332jxcaf1dxsl12ccm44l";
}; };
postPatch = with stdenv.lib; ''
sed -i -re 's,^( *gpodder_dir *= *).*,\1"'"$out"'",' bin/gpodder
makeWrapperArgs="--suffix XDG_DATA_DIRS : '${concatStringsSep ":" [
"${gnome3.gnome_themes_standard}/share"
"$XDG_ICON_DIRS"
"$GSETTINGS_SCHEMAS_PATH"
]}'"
'';
buildInputs = [ buildInputs = [
coverage minimock sqlite3 mygpoclient intltool intltool pythonPackages.coverage pythonPackages.minimock
gnome3.gnome_themes_standard gnome3.defaultIconTheme gnome3.gnome_themes_standard gnome3.defaultIconTheme
gnome3.gsettings_desktop_schemas gnome3.gsettings_desktop_schemas
]; ];
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; propagatedBuildInputs = with pythonPackages; [
feedparser dbus mygpoclient sqlite3 pygtk eyeD3
] ++ stdenv.lib.optional ipodSupport libgpod;
pythonPath = [ feedparser dbus mygpoclient sqlite3 pygtk eyeD3 ] checkPhase = ''
++ stdenv.lib.optional ipodSupport libgpod; LC_ALL=C python -m gpodder.unittests
postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
preFixup = ''
wrapProgram $out/bin/gpodder \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
''; '';
# The `wrapPythonPrograms` script in the postFixup phase breaks gpodder. The
# easiest way to fix this is to call wrapPythonPrograms and then to clean up
# the wrapped file.
postFixup = ''
wrapPythonPrograms
sed -i "$out/bin/..gpodder-wrapped-wrapped" -e '{
/import sys; sys.argv/d
}'
'';
installPhase = "DESTDIR=/ PREFIX=$out make install";
meta = { meta = {
description = "A podcatcher written in python"; description = "A podcatcher written in python";
longDescription = '' longDescription = ''