bzip2: fix shared library generation on darwin

This fixes #6504

+20 -4
+20 -4
pkgs/tools/compression/bzip2/default.nix
··· 3 let 4 version = "1.0.6"; 5 6 - sharedLibrary = !stdenv.isDarwin && !(stdenv ? isStatic) 7 && stdenv.system != "i686-cygwin" && !linkStatic; 8 9 in stdenv.mkDerivation { 10 name = "bzip2-${version}"; 11 ··· 38 }; 39 40 preBuild = stdenv.lib.optionalString sharedLibrary '' 41 - make -f Makefile-libbz2_so 42 ''; 43 44 - preInstall = stdenv.lib.optionalString sharedLibrary '' 45 mkdir -p $out/lib 46 mv libbz2.so* $out/lib 47 ( cd $out/lib && 48 ln -s libbz2.so.1.0.? libbz2.so && 49 ln -s libbz2.so.1.0.? libbz2.so.1 50 ) 51 - ''; 52 53 installFlags = [ "PREFIX=$(out)" ]; 54 ··· 61 postPatch = '' 62 substituteInPlace Makefile --replace CC=gcc CC=cc 63 substituteInPlace Makefile-libbz2_so --replace CC=gcc CC=cc 64 ''; 65 66 preConfigure = ''
··· 3 let 4 version = "1.0.6"; 5 6 + sharedLibrary = !(stdenv ? isStatic) 7 && stdenv.system != "i686-cygwin" && !linkStatic; 8 9 + darwinMakefile = fetchurl { 10 + url = "https://gitweb.gentoo.org/repo/proj/prefix.git/plain/app-arch/bzip2/files/bzip2-1.0.6-Makefile-libbz2_dylib"; 11 + sha256 = "1lq6g98kfpwv2f7wn4sk8hzcf87dwf92gviq0b4691f5bvc9mawz"; 12 + }; 13 in stdenv.mkDerivation { 14 name = "bzip2-${version}"; 15 ··· 42 }; 43 44 preBuild = stdenv.lib.optionalString sharedLibrary '' 45 + make -f ${if stdenv.isDarwin then "Makefile-libbz2_dylib" else "Makefile-libbz2_so"} 46 ''; 47 48 + preInstall = stdenv.lib.optionalString sharedLibrary (if !stdenv.isDarwin then '' 49 mkdir -p $out/lib 50 mv libbz2.so* $out/lib 51 ( cd $out/lib && 52 ln -s libbz2.so.1.0.? libbz2.so && 53 ln -s libbz2.so.1.0.? libbz2.so.1 54 ) 55 + '' else '' 56 + mkdir -p $out/lib 57 + mv libbz2.*.dylib $out/lib 58 + ( cd $out/lib && 59 + ln -s libbz2.1.0.?.dylib libbz2.dylib && 60 + ln -s libbz2.1.0.?.dylib libbz2.1.dylib 61 + ) 62 + ''); 63 64 installFlags = [ "PREFIX=$(out)" ]; 65 ··· 72 postPatch = '' 73 substituteInPlace Makefile --replace CC=gcc CC=cc 74 substituteInPlace Makefile-libbz2_so --replace CC=gcc CC=cc 75 + '' + stdenv.lib.optionalString stdenv.isDarwin '' 76 + cp ${darwinMakefile} Makefile-libbz2_dylib 77 + substituteInPlace Makefile-libbz2_dylib \ 78 + --replace "CC=gcc" "CC=cc" \ 79 + --replace "PREFIX=/usr" "PREFIX=$out" 80 ''; 81 82 preConfigure = ''