28b6fb61e6
This is done for the sake of Yosemite, which does not have gcc, and yet this change is also compatible with Linux.
35 lines
1.3 KiB
Nix
35 lines
1.3 KiB
Nix
{ stdenv, rpmextract, ncurses, patchelf, makeWrapper, requireFile, unzip }:
|
|
|
|
assert stdenv.system == "x86_64-linux";
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "megacli-8.07.07";
|
|
|
|
src =
|
|
requireFile {
|
|
name = "8.07.07_MegaCLI.zip";
|
|
url = http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.07.07_MegaCLI.zip;
|
|
sha256 = "11jzvh25mlygflazd37gi05xv67im4rgq7sbs5nwgw3gxdh4xfjj";
|
|
};
|
|
|
|
buildInputs = [rpmextract ncurses unzip makeWrapper];
|
|
libPath =
|
|
stdenv.lib.makeLibraryPath
|
|
[ stdenv.cc.gcc stdenv.cc.libc ncurses ];
|
|
|
|
buildCommand = ''
|
|
mkdir -p $out/bin
|
|
cd $out
|
|
unzip ${src}
|
|
rpmextract linux/MegaCli-8.07.07-1.noarch.rpm
|
|
${patchelf}/bin/patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath ${libPath}:$out/opt/lsi/3rdpartylibs/x86_64:$out/opt/lsi/3rdpartylibs:${stdenv.cc.gcc}/lib64:${stdenv.cc.gcc}/lib opt/MegaRAID/MegaCli/MegaCli64
|
|
wrapProgram $out/opt/MegaRAID/MegaCli/MegaCli64 --set LD_LIBRARY_PATH $out/opt/lsi/3rdpartylibs/x86_64
|
|
ln -s $out/opt/MegaRAID/MegaCli/MegaCli64 $out/bin/MegaCli64
|
|
eval fixupPhase
|
|
'';
|
|
|
|
meta = {
|
|
description = "CLI program for LSI MegaRAID cards, which also works with some Dell PERC RAID cards";
|
|
license = stdenv.lib.licenses.unfree;
|
|
};
|
|
}
|