From 3c2c3f0ddabf315f7199b11723208ec6b7464a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 14 Apr 2019 00:39:40 +0200 Subject: [PATCH 1/3] libimobiledevice: Remove unnecessary `--disable-static`. That's already controlled by `dontDisableStatic`, see: * https://nixos.org/nixpkgs/manual/#ssec-configure-phase * #51540 --- pkgs/development/libraries/libimobiledevice/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix index 83a500c1380..6464e4e5820 100644 --- a/pkgs/development/libraries/libimobiledevice/default.nix +++ b/pkgs/development/libraries/libimobiledevice/default.nix @@ -34,7 +34,6 @@ stdenv.mkDerivation rec { preConfigure = "NOCONFIGURE=1 ./autogen.sh"; configureFlags = [ - "--disable-static" "--disable-openssl" "--without-cython" ]; From da3cb9e35b12a452ea594eed773cb39fed8b3091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 14 Apr 2019 00:42:57 +0200 Subject: [PATCH 2/3] libirecovery: init at 2019-01-28 --- .../libraries/libirecovery/default.nix | 54 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/development/libraries/libirecovery/default.nix diff --git a/pkgs/development/libraries/libirecovery/default.nix b/pkgs/development/libraries/libirecovery/default.nix new file mode 100644 index 00000000000..32a2971b3e3 --- /dev/null +++ b/pkgs/development/libraries/libirecovery/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchFromGitHub, automake, autoconf, libtool, pkgconfig +, libusb +, readline +}: + +stdenv.mkDerivation rec { + pname = "libirecovery"; + version = "2019-01-28"; + + src = fetchFromGitHub { + owner = "libimobiledevice"; + repo = pname; + rev = "5da2a0d7d60f79d93c283964888c6fbbc17be1a3"; + sha256 = "0fqmr1h4b3qn608dn606y7aqv3bsm949gx72b5d6433xlw9b23n8"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + autoconf + automake + libtool + pkgconfig + ]; + + buildInputs = [ + libusb + readline + ]; + + preConfigure = "NOCONFIGURE=1 ./autogen.sh"; + + # Packager note: Not clear whether this needs a NixOS configuration, + # as only the `idevicerestore` binary was tested so far (which worked + # without further configuration). + configureFlags = [ + "--with-udevrulesdir=${placeholder ''out''}/lib/udev/rules.d" + ''--with-udevrule="OWNER=\"root\", GROUP=\"myusergroup\", MODE=\"0660\""'' + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/libimobiledevice/libirecovery; + description = "Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux"; + longDescription = '' + libirecovery is a cross-platform library which implements communication to + iBoot/iBSS found on Apple's iOS devices via USB. A command-line utility is also + provided. + ''; + license = licenses.lgpl21; + # Upstream description says it works on more platforms, but packager hasn't tried that 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 b27b57d4f6c..c4707c8d948 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3839,6 +3839,7 @@ in ifuse = callPackage ../tools/filesystems/ifuse { }; ideviceinstaller = callPackage ../tools/misc/ideviceinstaller { }; + idevicerestore = callPackage ../tools/misc/idevicerestore { }; inherit (callPackages ../tools/filesystems/irods rec { stdenv = llvmPackages_38.libcxxStdenv; From 0f206b3e73f738ac8fcecd5cbb51d0757b223b79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 14 Apr 2019 00:44:41 +0200 Subject: [PATCH 3/3] idevicerestore: init at 2019-02-14 --- pkgs/tools/misc/idevicerestore/default.nix | 58 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 60 insertions(+) create mode 100644 pkgs/tools/misc/idevicerestore/default.nix diff --git a/pkgs/tools/misc/idevicerestore/default.nix b/pkgs/tools/misc/idevicerestore/default.nix new file mode 100644 index 00000000000..a12fa04c5fc --- /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 c4707c8d948..2091d2b6f86 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 { };