nixpkgs/pkgs/tools/filesystems/svnfs/default.nix
2023-11-24 21:01:03 +01:00

45 lines
1.6 KiB
Nix

{ lib, stdenv, fetchurl, autoreconfHook, subversion, fuse, apr, perl }:
stdenv.mkDerivation rec {
pname = "svnfs";
version = "0.4";
src = fetchurl {
url = "http://www.jmadden.eu/wp-content/uploads/svnfs/svnfs-${version}.tgz";
sha256 = "1lrzjr0812lrnkkwk60bws9k1hq2iibphm0nhqyv26axdsygkfky";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ subversion fuse apr perl ];
# autoconf's AC_CHECK_HEADERS and AC_CHECK_LIBS fail to detect libfuse on
# Darwin if FUSE_USE_VERSION isn't set at configure time.
#
# NOTE: Make sure the value of FUSE_USE_VERSION specified here matches the
# actual version used in the source code:
#
# $ tar xf "$(nix-build -A svnfs.src)"
# $ grep -R FUSE_USE_VERSION
configureFlags = lib.optionals stdenv.isDarwin [ "CFLAGS=-DFUSE_USE_VERSION=25" ];
# why is this required?
preConfigure=''
export LD_LIBRARY_PATH=${subversion.out}/lib
'';
# -fcommon: workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: svnclient.o:/build/svnfs-0.4/src/svnfs.h:40: multiple definition of
# `dirbuf'; svnfs.o:/build/svnfs-0.4/src/svnfs.h:40: first defined here
env.NIX_CFLAGS_COMPILE = "-I ${subversion.dev}/include/subversion-1 -fcommon";
NIX_LDFLAGS="-lsvn_client-1 -lsvn_subr-1";
meta = {
description = "FUSE filesystem for accessing Subversion repositories";
homepage = "https://www.jmadden.eu/index.php/svnfs/";
license = lib.licenses.gpl2Only;
maintainers = [lib.maintainers.marcweber];
platforms = lib.platforms.unix;
mainProgram = "svnfs";
};
}