Workaround build failure on -fno-common toolchains like upstream gcc-10. Otherwise build fails as: ld: ../ipsw-patch/libxpwn.a(libxpwn.c.o):(.bss+0x4): multiple definition of `endianness'; CMakeFiles/xpwn-bin.dir/src/xpwn.cpp.o:(.bss+0x0): first defined here
40 lines
1.3 KiB
Nix
40 lines
1.3 KiB
Nix
{ lib, stdenv, fetchFromGitHub, cmake, zlib, libpng, bzip2, libusb-compat-0_1, openssl }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "xpwn";
|
|
version = "0.5.8git";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "planetbeing";
|
|
repo = pname;
|
|
rev = "ac362d4ffe4d0489a26144a1483ebf3b431da899";
|
|
sha256 = "1qw9vbk463fpnvvvfgzxmn9add2p30k832s09mlycr7z1hrh3wyf";
|
|
};
|
|
|
|
# Workaround build failure on -fno-common toolchains:
|
|
# ld: ../ipsw-patch/libxpwn.a(libxpwn.c.o):(.bss+0x4): multiple definition of
|
|
# `endianness'; CMakeFiles/xpwn-bin.dir/src/xpwn.cpp.o:(.bss+0x0): first defined here
|
|
NIX_CFLAGS_COMPILE = "-fcommon";
|
|
|
|
preConfigure = ''
|
|
rm BUILD # otherwise `mkdir build` fails on case insensitive file systems
|
|
sed -r -i \
|
|
-e 's/(install.*TARGET.*DESTINATION )\.\)/\1bin)/' \
|
|
-e 's!(install.*(FILE|DIR).*DESTINATION )([^)]*)!\1share/xpwn/\3!' \
|
|
*/CMakeLists.txt
|
|
sed -i -e '/install/d' CMakeLists.txt
|
|
'';
|
|
|
|
strictDeps = true;
|
|
nativeBuildInputs = [ cmake ];
|
|
buildInputs = [ zlib libpng bzip2 libusb-compat-0_1 openssl ];
|
|
|
|
meta = with lib; {
|
|
broken = stdenv.isDarwin;
|
|
homepage = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";
|
|
description = "Custom NOR firmware loader/IPSW generator for the iPhone";
|
|
license = licenses.gpl3Plus;
|
|
platforms = with platforms; linux ++ darwin;
|
|
};
|
|
}
|