nixpkgs/pkgs/development/libraries/ti-rpc/default.nix
Matthew Bauer 4d8664e593 libtirpc: fix cross compilation
KRB5_CONFIG needs to be aviailable to get the right one when cross
compiling. These things should just use pkgconfig, but it’s fairly
easy to hack around this. krb5-config will not be on path because we
don’t know ahead of time what architecture it will be for.
2018-11-21 01:48:22 -06:00

54 lines
2.0 KiB
Nix

{ fetchurl, stdenv, autoreconfHook, libkrb5 }:
stdenv.mkDerivation rec {
name = "libtirpc-1.1.4";
src = fetchurl {
url = "mirror://sourceforge/libtirpc/${name}.tar.bz2";
sha256 = "07anqypf7c719x9y683qz65cxllmzlgmlab2hlahrqcj4bq2k99c";
};
outputs = [ "out" "dev" ];
postPatch = ''
sed '1i#include <stdint.h>' -i src/xdr_sizeof.c
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
substituteInPlace tirpc/rpc/types.h \
--replace '#if defined __APPLE_CC__ || defined __FreeBSD__' \
'#if defined __APPLE_CC__ || defined __FreeBSD__ || !defined __GLIBC__'
'';
KRB5_CONFIG = "${libkrb5.dev}/bin/krb5-config";
nativeBuildInputs = [ autoreconfHook ];
propagatedBuildInputs = [ libkrb5 ];
preConfigure = ''
sed -es"|/etc/netconfig|$out/etc/netconfig|g" -i doc/Makefile.in tirpc/netconfig.h
'';
preInstall = "mkdir -p $out/etc";
doCheck = true;
meta = with stdenv.lib; {
homepage = https://sourceforge.net/projects/libtirpc/;
description = "The transport-independent Sun RPC implementation (TI-RPC)";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ abbradar ];
longDescription = ''
Currently, NFS commands use the SunRPC routines provided by the
glibc. These routines do not support IPv6 addresses. Ulrich
Drepper, who is the maintainer of the glibc, refuses any change in
the glibc concerning the RPC. He wants the RPC to become a separate
library. Other OS (NetBSD, FreeBSD, Solarix, HP-UX, AIX) have
migrated their SunRPC library to a TI-RPC (Transport Independent
RPC) implementation. This implementation allows the support of
other transports than UDP and TCP over IPv4. FreeBSD provides a
TI-RPC library ported from NetBSD with improvements. This library
already supports IPv6. So, the FreeBSD release 5.2.1 TI-RPC has
been ported to replace the SunRPC of the glibc.
'';
};
}