1{ lib, stdenv, fetchFromGitHub, fuse }:
2
3stdenv.mkDerivation {
4 pname = "9pfs";
5 version = "unstable-2015-09-18";
6
7 src = fetchFromGitHub {
8 owner = "mischief";
9 repo = "9pfs";
10 rev = "7f4ca4cd750d650c1215b92ac3cc2a28041960e4";
11 sha256 = "007s2idsn6bspmfxv1qabj39ggkgvn6gwdbhczwn04lb4c6gh3xc";
12 };
13
14 # Upstream development has stopped and is no longer accepting patches
15 # https://github.com/mischief/9pfs/pull/3
16 patches = [ ./fix-darwin-build.patch ];
17
18 preConfigure =
19 ''
20 substituteInPlace Makefile --replace '-g bin' ""
21 installFlagsArray+=(BIN=$out/bin MAN=$out/share/man/man1)
22 mkdir -p $out/bin $out/share/man/man1
23 '';
24
25 buildInputs = [ fuse ];
26
27 # Workaround build failure on -fno-common toolchains like upstream
28 # gcc-10. Otherwise build fails as:
29 # ld: lib/auth_rpc.o:/build/source/lib/../9pfs.h:35: multiple definition of
30 # `logfile'; 9pfs.o:/build/source/9pfs.h:35: first defined here
31 env.NIX_CFLAGS_COMPILE = "-fcommon";
32
33 enableParallelBuilding = true;
34
35 meta = {
36 homepage = "https://github.com/mischief/9pfs";
37 description = "FUSE-based client of the 9P network filesystem protocol";
38 maintainers = [ lib.maintainers.eelco ];
39 platforms = lib.platforms.unix;
40 license = with lib.licenses; [ lpl-102 bsd2 ];
41 };
42}