lol
1{
2 stdenv,
3 lib,
4 fetchurl,
5 fetchpatch,
6 perlPackages,
7 intltool,
8 autoreconfHook,
9 pkg-config,
10 glib,
11 libxml2,
12 sqlite,
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 = [
32 "out"
33 "dev"
34 ];
35
36 patches = [
37 (fetchpatch {
38 name = "libplist-2.3.0-compatibility.patch";
39 url = "https://sourceforge.net/p/gtkpod/patches/48/attachment/libplist-2.3.0-compatibility.patch";
40 hash = "sha256-aVkuYE1N/jdEhVhiXEVhApvOC+8csIMMpP20rAJwEVQ=";
41 })
42 ];
43
44 postPatch = ''
45 # support libplist 2.2
46 substituteInPlace configure.ac --replace 'libplist >= 1.0' 'libplist-2.0 >= 2.2'
47 '';
48
49 configureFlags = [
50 "--without-hal"
51 "--enable-udev"
52 "--with-udev-dir=${placeholder "out"}/lib/udev"
53 ] ++ lib.optionals monoSupport [ "--with-mono" ];
54
55 dontStrip = monoSupport;
56
57 nativeBuildInputs =
58 [
59 autoreconfHook
60 intltool
61 pkg-config
62 ]
63 ++ (with perlPackages; [
64 perl
65 XMLParser
66 ])
67 ++ lib.optional monoSupport mono;
68
69 buildInputs = [
70 libxml2
71 sg3_utils
72 sqlite
73 taglib
74 ] ++ lib.optional monoSupport gtk-sharp-2_0;
75
76 propagatedBuildInputs = [
77 gdk-pixbuf
78 glib
79 libimobiledevice
80 ];
81
82 env = lib.optionalAttrs stdenv.cc.isGNU {
83 NIX_CFLAGS_COMPILE = toString [
84 "-Wno-error=implicit-int"
85 "-Wno-error=incompatible-pointer-types"
86 ];
87 };
88
89 meta = with lib; {
90 homepage = "https://sourceforge.net/projects/gtkpod/";
91 description = "Library used by gtkpod to access the contents of an ipod";
92 mainProgram = "ipod-read-sysinfo-extended";
93 license = licenses.lgpl21Plus;
94 platforms = platforms.linux;
95 maintainers = [ ];
96 };
97}