From b663e1b4d3b996457b9915d3156a41e3649f16f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Fri, 19 Nov 2021 16:28:18 -0300 Subject: [PATCH 1/2] lrzip: refactor derivation - Fetch from GitHub - Set nativeBuildInputs --- pkgs/tools/compression/lrzip/default.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix index 02f62c3e3c01..4223aa656e1f 100644 --- a/pkgs/tools/compression/lrzip/default.nix +++ b/pkgs/tools/compression/lrzip/default.nix @@ -1,15 +1,19 @@ -{ lib, stdenv, fetchurl, zlib, lzo, bzip2, lz4, nasm, perl }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, zlib, lzo, bzip2, lz4, nasm, perl }: stdenv.mkDerivation rec { pname = "lrzip"; version = "0.641"; - src = fetchurl { - url = "http://ck.kolivas.org/apps/lrzip/${pname}-${version}.tar.xz"; - sha256 = "0ziyanspd96dc3lp2qdcylc7aq8dhb511jhqrhxvlp502fjqjqrc"; + src = fetchFromGitHub { + owner = "ckolivas"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-253CH6TiHWyr13C76y9PXjyB7gj2Bhd2VRgJ5r+cm/g="; }; - buildInputs = [ zlib lzo bzip2 lz4 nasm perl ]; + nativeBuildInputs = [ autoreconfHook nasm perl ]; + + buildInputs = [ zlib lzo bzip2 lz4 ]; configureFlags = [ "--disable-asm" From 5c35e9184db774816bbd2de4a996f74a6583153b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Fri, 19 Nov 2021 16:33:14 -0300 Subject: [PATCH 2/2] lrzip: enable asm on x86 and fix build on darwin Enable compilation of native assembly code on x86 systems, instead of disabling it for all systems. On darwin ensure the format is set to macho64. The ASM/x86 directory is compiled whether "--enable-asm" is configured or not, but it creates an empty archive, which fails on darwin, so ensure it is not compiled on darwin to fix the build. --- pkgs/tools/compression/lrzip/default.nix | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix index 4223aa656e1f..4fe5512b4c6f 100644 --- a/pkgs/tools/compression/lrzip/default.nix +++ b/pkgs/tools/compression/lrzip/default.nix @@ -1,5 +1,8 @@ { lib, stdenv, fetchFromGitHub, autoreconfHook, zlib, lzo, bzip2, lz4, nasm, perl }: +let + inherit (stdenv.hostPlatform) isx86; +in stdenv.mkDerivation rec { pname = "lrzip"; version = "0.641"; @@ -11,11 +14,20 @@ stdenv.mkDerivation rec { sha256 = "sha256-253CH6TiHWyr13C76y9PXjyB7gj2Bhd2VRgJ5r+cm/g="; }; - nativeBuildInputs = [ autoreconfHook nasm perl ]; + postPatch = lib.optionalString stdenv.isDarwin '' + # Building the ASM/x86 directory creates an empty archive, + # which fails on darwin, so remove it + # https://github.com/ckolivas/lrzip/issues/193 + # https://github.com/Homebrew/homebrew-core/pull/85360 + substituteInPlace lzma/Makefile.am --replace "SUBDIRS = C ASM/x86" "SUBDIRS = C" + substituteInPlace configure.ac --replace "-f elf64" "-f macho64" + ''; + + nativeBuildInputs = [ autoreconfHook perl ] ++ lib.optionals isx86 [ nasm ]; buildInputs = [ zlib lzo bzip2 lz4 ]; - configureFlags = [ + configureFlags = lib.optionals (!isx86) [ "--disable-asm" ];