nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix
Matthew Bauer 2bbec30c2e darwin.diskdev_cmds: fix build with dsymutil
xcbuild doesn’t handle dsymutil correctly. fuser.pl does not contain
debug symbols, but xcbuild doesn’t handle this like xcodebuild does.
So, just disable the debug information. We probably should do this in
more places using xcbuild, but it requires some arbitrary patching.
2019-01-06 22:13:11 -06:00

39 lines
1.1 KiB
Nix

{ stdenv, appleDerivation, xcbuildHook
, Libc, xnu, libutil-new }:
appleDerivation {
nativeBuildInputs = [ xcbuildHook ];
buildInputs = [ libutil-new ];
NIX_CFLAGS_COMPILE = "-I.";
NIX_LDFLAGS = "-lutil";
patchPhase = ''
# ugly hacks for missing headers
# most are bsd related - probably should make this a drv
unpackFile ${Libc.src}
unpackFile ${xnu.src}
mkdir System sys machine i386
cp xnu-*/bsd/sys/disklabel.h sys
cp xnu-*/bsd/machine/disklabel.h machine
cp xnu-*/bsd/i386/disklabel.h i386
cp -r xnu-*/bsd/sys System
cp -r Libc-*/uuid System
substituteInPlace diskdev_cmds.xcodeproj/project.pbxproj \
--replace 'DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";' ""
'';
installPhase = ''
install -D Products/Release/libdisk.a $out/lib/libdisk.a
rm Products/Release/libdisk.a
for f in Products/Release/*; do
if [ -f $f ]; then
install -D $f $out/bin/$(basename $f)
fi
done
'';
meta = {
platforms = stdenv.lib.platforms.darwin;
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
};
}