lol
1{ lib
2, stdenv
3, fetchFromGitHub
4, autoreconfHook
5, pkg-config
6, openssl
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=2023-04-30";
19
20 outputs = [ "out" "dev" ];
21
22 src = fetchFromGitHub {
23 owner = "libimobiledevice";
24 repo = pname;
25 rev = "860ffb707af3af94467d2ece4ad258dda957c6cd";
26 hash = "sha256-mIsB+EaGJlGMOpz3OLrs0nAmhOY1BwMs83saFBaejwc=";
27 };
28
29 nativeBuildInputs = [
30 autoreconfHook
31 pkg-config
32 ];
33
34 propagatedBuildInputs = [
35 openssl
36 libgcrypt
37 libplist
38 libtasn1
39 libusbmuxd
40 libimobiledevice-glue
41 ] ++ lib.optionals stdenv.isDarwin [
42 SystemConfiguration
43 CoreFoundation
44 ];
45
46 preAutoreconf = ''
47 export RELEASE_VERSION=${version}
48 '';
49
50 configureFlags = [ "--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}