1{
2 lib,
3 stdenv,
4 linuxHeaders,
5 freebsd,
6 runCommandCC,
7 buildPackages,
8}:
9
10stdenv.mkDerivation {
11 pname = "evdev-proto";
12 inherit (linuxHeaders) version;
13
14 src = freebsd.ports;
15
16 sourceRoot = "${freebsd.ports.name}/devel/evdev-proto";
17
18 useTempPrefix = true;
19
20 nativeBuildInputs = [ freebsd.makeMinimal ];
21
22 ARCH = freebsd.makeMinimal.MACHINE_ARCH;
23 OPSYS = "FreeBSD";
24 _OSRELEASE = "${lib.versions.majorMinor freebsd.makeMinimal.version}-RELEASE";
25
26 AWK = "awk";
27 CHMOD = "chmod";
28 FIND = "find";
29 MKDIR = "mkdir -p";
30 PKG_BIN = "${buildPackages.pkg}/bin/pkg";
31 RM = "rm -f";
32 SED = "${buildPackages.freebsd.sed}/bin/sed";
33 SETENV = "env";
34 SH = "sh";
35 TOUCH = "touch";
36 XARGS = "xargs";
37
38 ABI_FILE = runCommandCC "abifile" { } "$CC -shared -o $out";
39 CLEAN_FETCH_ENV = true;
40 INSTALL_AS_USER = true;
41 NO_CHECKSUM = true;
42 NO_MTREE = true;
43 SRC_BASE = freebsd.source;
44
45 preUnpack = ''
46 export MAKE_JOBS_NUMBER="$NIX_BUILD_CORES"
47
48 export DISTDIR="$PWD/distfiles"
49 export PKG_DBDIR="$PWD/pkg"
50 export PREFIX="$prefix"
51
52 mkdir -p "$DISTDIR/evdev-proto"
53 tar -C "$DISTDIR/evdev-proto" \
54 -xf ${linuxHeaders.src} \
55 --strip-components 4 \
56 linux-${linuxHeaders.version}/include/uapi/linux
57 '';
58
59 makeFlags = [ "DIST_SUBDIR=evdev-proto" ];
60
61 postInstall = ''
62 mv $prefix $out
63 '';
64
65 meta = with lib; {
66 description = "Input event device header files for FreeBSD";
67 maintainers = with maintainers; [ qyliss ];
68 platforms = platforms.freebsd;
69 license = licenses.gpl2Only;
70 };
71}