nixpkgs/pkgs/development/libraries/libarchive/default.nix
Jonathan Ringer 9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00

66 lines
2.1 KiB
Nix

{
fetchFromGitHub, stdenv, pkg-config, autoreconfHook,
acl, attr, bzip2, e2fsprogs, libxml2, lzo, openssl, sharutils, xz, zlib, zstd,
# Optional but increases closure only negligibly. Also, while libxml2
# builds fine on windows, but libarchive has trouble linking windows
# things it depends on for some reason.
xarSupport ? stdenv.hostPlatform.isUnix,
}:
assert xarSupport -> libxml2 != null;
stdenv.mkDerivation rec {
pname = "libarchive";
version = "3.5.0";
src = fetchFromGitHub {
owner = "libarchive";
repo = "libarchive";
rev = "v${version}";
sha256 = "0dj01ayyac3q5a62rqxyskr4fjiq6iappd85zn3rx64xny5fl07d";
};
outputs = [ "out" "lib" "dev" ];
nativeBuildInputs = [ pkg-config autoreconfHook ];
buildInputs =
stdenv.lib.optional stdenv.hostPlatform.isUnix sharutils
++ [ zlib bzip2 openssl xz lzo zstd ]
++ stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ]
++ stdenv.lib.optional xarSupport libxml2;
# Without this, pkg-config-based dependencies are unhappy
propagatedBuildInputs = stdenv.lib.optionals stdenv.isLinux [ attr acl ];
configureFlags = stdenv.lib.optional (!xarSupport) "--without-xml2";
preBuild = if stdenv.isCygwin then ''
echo "#include <windows.h>" >> config.h
'' else null;
doCheck = false; # fails
preFixup = ''
sed -i $lib/lib/libarchive.la \
-e 's|-lcrypto|-L${openssl.out}/lib -lcrypto|' \
-e 's|-llzo2|-L${lzo}/lib -llzo2|'
'';
enableParallelBuilding = true;
meta = {
description = "Multi-format archive and compression library";
longDescription = ''
This library has code for detecting and reading many archive formats and
compressions formats including (but not limited to) tar, shar, cpio, zip, and
compressed with gzip, bzip2, lzma, xz, ...
'';
homepage = "http://libarchive.org";
changelog = "https://github.com/libarchive/libarchive/releases/tag/v${version}";
license = stdenv.lib.licenses.bsd3;
platforms = with stdenv.lib.platforms; all;
maintainers = with stdenv.lib.maintainers; [ jcumming ];
};
}