1{ stdenv
2, lib
3, fetchurl
4, fetchpatch
5, perlPackages
6, intltool
7, autoreconfHook
8, pkg-config
9, glib
10, libxml2
11, sqlite
12, zlib
13, sg3_utils
14, gdk-pixbuf
15, taglib
16, libimobiledevice
17, monoSupport ? false
18, mono
19, gtk-sharp-2_0
20}:
21
22stdenv.mkDerivation rec {
23 pname = "libgpod";
24 version = "0.8.3";
25
26 src = fetchurl {
27 url = "mirror://sourceforge/gtkpod/libgpod-${version}.tar.bz2";
28 hash = "sha256-Y4p5WdBOlfHmKrrQK9M3AuTo3++YSFrH2dUDlcN+lV0=";
29 };
30
31 outputs = [ "out" "dev" ];
32
33 patches = [
34 (fetchpatch {
35 name = "libplist-2.3.0-compatibility.patch";
36 url = "https://sourceforge.net/p/gtkpod/patches/48/attachment/libplist-2.3.0-compatibility.patch";
37 hash = "sha256-aVkuYE1N/jdEhVhiXEVhApvOC+8csIMMpP20rAJwEVQ=";
38 })
39 ];
40
41 postPatch = ''
42 # support libplist 2.2
43 substituteInPlace configure.ac --replace 'libplist >= 1.0' 'libplist-2.0 >= 2.2'
44 '';
45
46 configureFlags = [
47 "--without-hal"
48 "--enable-udev"
49 "--with-udev-dir=${placeholder "out"}/lib/udev"
50 ] ++ lib.optionals monoSupport [ "--with-mono" ];
51
52 dontStrip = monoSupport;
53
54 nativeBuildInputs = [ autoreconfHook intltool pkg-config ]
55 ++ (with perlPackages; [ perl XMLParser ])
56 ++ lib.optional monoSupport mono;
57
58 buildInputs = [
59 libxml2
60 sg3_utils
61 sqlite
62 taglib
63 ] ++ lib.optional monoSupport gtk-sharp-2_0;
64
65 propagatedBuildInputs = [
66 gdk-pixbuf
67 glib
68 libimobiledevice
69 ];
70
71 meta = with lib; {
72 homepage = "https://sourceforge.net/projects/gtkpod/";
73 description = "Library used by gtkpod to access the contents of an ipod";
74 mainProgram = "ipod-read-sysinfo-extended";
75 license = licenses.lgpl21Plus;
76 platforms = platforms.linux;
77 maintainers = [ ];
78 };
79}