mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-29 09:04:17 +00:00
74c784a79c
In 724e833ea2
, I was a little too aggressive in enabling these flags.
Many don’t work in gcc, and we should probably avoid settings them
widely. This makes those flags optional on isclang
51 lines
1.6 KiB
Nix
51 lines
1.6 KiB
Nix
{ stdenv, fetchurl }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "p7zip-${version}";
|
|
version = "16.02";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://sourceforge/p7zip/p7zip_${version}_src_all.tar.bz2";
|
|
sha256 = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f";
|
|
};
|
|
|
|
patches = [
|
|
./12-CVE-2016-9296.patch
|
|
./13-CVE-2017-17969.patch
|
|
];
|
|
|
|
# Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
|
|
postPatch = ''
|
|
sed -i '/CC=\/usr/d' makefile.macosx_llvm_64bits
|
|
|
|
# I think this is a typo and should be CXX? Either way let's kill it
|
|
sed -i '/XX=\/usr/d' makefile.macosx_llvm_64bits
|
|
'' + stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
|
|
substituteInPlace makefile.machine \
|
|
--replace 'CC=gcc' 'CC=${stdenv.cc.targetPrefix}gcc' \
|
|
--replace 'CXX=g++' 'CXX=${stdenv.cc.targetPrefix}g++'
|
|
'';
|
|
|
|
preConfigure = ''
|
|
makeFlagsArray=(DEST_HOME=$out)
|
|
buildFlags=all3
|
|
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
|
cp makefile.macosx_llvm_64bits makefile.machine
|
|
'';
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
setupHook = ./setup-hook.sh;
|
|
|
|
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
|
|
|
|
meta = {
|
|
homepage = http://p7zip.sourceforge.net/;
|
|
description = "A port of the 7-zip archiver";
|
|
# license = stdenv.lib.licenses.lgpl21Plus; + "unRAR restriction"
|
|
platforms = stdenv.lib.platforms.unix;
|
|
maintainers = [ stdenv.lib.maintainers.raskin ];
|
|
license = stdenv.lib.licenses.lgpl2Plus;
|
|
};
|
|
}
|