lol
1{ lib, stdenv, fetchFromGitHub, automake, autoconf, libtool, pkg-config
2, libusb1
3, readline
4}:
5
6stdenv.mkDerivation rec {
7 pname = "libirecovery";
8 version = "1.0.0";
9
10 src = fetchFromGitHub {
11 owner = "libimobiledevice";
12 repo = pname;
13 rev = version;
14 sha256 = "0p9ncqnz5kb7qisw00ynvasw1hax5qx241h9nwppi2g544i9lbnr";
15 };
16
17 outputs = [ "out" "dev" ];
18
19 nativeBuildInputs = [
20 autoconf
21 automake
22 libtool
23 pkg-config
24 ];
25
26 buildInputs = [
27 libusb1
28 readline
29 ];
30
31 preConfigure = "NOCONFIGURE=1 ./autogen.sh";
32
33 # Packager note: Not clear whether this needs a NixOS configuration,
34 # as only the `idevicerestore` binary was tested so far (which worked
35 # without further configuration).
36 configureFlags = [
37 "--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d"
38 ''--with-udevrule="OWNER=\"root\", GROUP=\"myusergroup\", MODE=\"0660\""''
39 ];
40
41 meta = with lib; {
42 homepage = "https://github.com/libimobiledevice/libirecovery";
43 description = "Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux";
44 longDescription = ''
45 libirecovery is a cross-platform library which implements communication to
46 iBoot/iBSS found on Apple's iOS devices via USB. A command-line utility is also
47 provided.
48 '';
49 license = licenses.lgpl21;
50 # Upstream description says it works on more platforms, but packager hasn't tried that yet
51 platforms = platforms.linux ++ platforms.darwin;
52 maintainers = with maintainers; [ nh2 ];
53 };
54}