about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2019-04-14 00:44:41 +0200
committerNiklas Hambüchen <mail@nh2.me>2019-08-13 02:13:15 +0200
commit0f206b3e73f738ac8fcecd5cbb51d0757b223b79 (patch)
treecb40c3ca747aee8b5476268925c02c1ee7fb83be
parentda3cb9e35b12a452ea594eed773cb39fed8b3091 (diff)
downloadnixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.tar
nixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.tar.gz
nixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.tar.bz2
nixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.tar.lz
nixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.tar.xz
nixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.tar.zst
nixlib-0f206b3e73f738ac8fcecd5cbb51d0757b223b79.zip
idevicerestore: init at 2019-02-14
-rw-r--r--pkgs/tools/misc/idevicerestore/default.nix58
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/tools/misc/idevicerestore/default.nix b/pkgs/tools/misc/idevicerestore/default.nix
new file mode 100644
index 000000000000..a12fa04c5fce
--- /dev/null
+++ b/pkgs/tools/misc/idevicerestore/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, curl
+, libimobiledevice
+, libirecovery
+, libzip
+, libusbmuxd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "idevicerestore";
+  version = "2019-02-14";
+
+  src = fetchFromGitHub {
+    owner = "libimobiledevice";
+    repo = pname;
+    rev = "8a882038b2b1e022fbd19eaf8bea51006a373c06";
+    sha256 = "17lisl7ll43ixl1zqwchn7jljrdyl2p9q99w30i6qaci71mas37m";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+  ];
+
+  buildInputs = [
+    curl
+    libimobiledevice
+    libirecovery
+    libzip
+    libusbmuxd
+    # Not listing other dependencies specified in
+    # https://github.com/libimobiledevice/idevicerestore/blob/8a882038b2b1e022fbd19eaf8bea51006a373c06/README#L20
+    # because they are inherited `libimobiledevice`.
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/libimobiledevice/idevicerestore;
+    description = "Restore/upgrade firmware of iOS devices";
+    longDescription = ''
+      The idevicerestore tool allows to restore firmware files to iOS devices.
+
+      It is a full reimplementation of all granular steps which are performed during
+      restore of a firmware to a device.
+
+      In general, upgrades and downgrades are possible, however subject to
+      availability of SHSH blobs from Apple for signing the firmare files.
+
+      To restore a device to some firmware, simply run the following:
+      $ sudo idevicerestore -l
+
+      This will download and restore a device to the latest firmware available.
+    '';
+    license = licenses.lgpl21Plus;
+    # configure.ac suggests it should work for darwin and mingw as well but not tried yet
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nh2 ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c4707c8d9483..2091d2b6f86e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11834,6 +11834,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Carbon;
   };
 
+  libirecovery = callPackage ../development/libraries/libirecovery { };
+
   libivykis = callPackage ../development/libraries/libivykis { };
 
   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };