lol
1{ lib
2, stdenv
3, fetchFromGitHub
4, autoreconfHook
5, pkg-config
6, gnutls
7, libgcrypt
8, libplist
9, libtasn1
10, libusbmuxd
11, libimobiledevice-glue
12, SystemConfiguration
13, CoreFoundation
14}:
15
16stdenv.mkDerivation rec {
17 pname = "libimobiledevice";
18 version = "1.3.0+date=2022-05-22";
19
20 outputs = [ "out" "dev" ];
21
22 src = fetchFromGitHub {
23 owner = "libimobiledevice";
24 repo = pname;
25 rev = "12394bc7be588be83c352d7441102072a89dd193";
26 hash = "sha256-2K4gZrFnE4hlGlthcKB4n210bTK3+6NY4TYVIoghXJM=";
27 };
28
29 postPatch = ''
30 echo '${version}' > .tarball-version
31 '';
32
33 nativeBuildInputs = [
34 autoreconfHook
35 pkg-config
36 ];
37
38 propagatedBuildInputs = [
39 gnutls
40 libgcrypt
41 libplist
42 libtasn1
43 libusbmuxd
44 libimobiledevice-glue
45 ] ++ lib.optionals stdenv.isDarwin [
46 SystemConfiguration
47 CoreFoundation
48 ];
49
50 configureFlags = [ "--with-gnutls" "--without-cython" ];
51
52 meta = with lib; {
53 homepage = "https://github.com/libimobiledevice/libimobiledevice";
54 description = "A software library that talks the protocols to support iPhone®, iPod Touch® and iPad® devices on Linux";
55 longDescription = ''
56 libimobiledevice is a software library that talks the protocols to support
57 iPhone®, iPod Touch® and iPad® devices on Linux. Unlike other projects, it
58 does not depend on using any existing proprietary libraries and does not
59 require jailbreaking. It allows other software to easily access the
60 device's filesystem, retrieve information about the device and it's
61 internals, backup/restore the device, manage SpringBoard® icons, manage
62 installed applications, retrieve addressbook/calendars/notes and bookmarks
63 and synchronize music and video to the device. The library is in
64 development since August 2007 with the goal to bring support for these
65 devices to the Linux Desktop.
66 '';
67 license = licenses.lgpl21Plus;
68 platforms = platforms.unix;
69 maintainers = with maintainers; [ infinisil ];
70 };
71}