1{ stdenv, fetchgit, fetchpatch, flex, bison, pkgconfig, python2, swig, which }:
2
3stdenv.mkDerivation rec {
4 name = "dtc-${version}";
5 version = "1.4.5";
6
7 src = fetchgit {
8 url = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git";
9 rev = "refs/tags/v${version}";
10 sha256 = "10y5pbkcj5gkijcgnlvrh6q2prpnvsgihb9asz3zfp66mcjwzsy3";
11 };
12
13 nativeBuildInputs = [ flex bison pkgconfig swig which ];
14 buildInputs = [ python2 ];
15
16 patches = [
17 # Fix 32-bit build
18 (fetchpatch {
19 url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/patch/?id=497432fd2131967f349e69dc5d259072151cc4b4";
20 sha256 = "1hrvhvz0qkck53mhacrc4rxjrvp34d8dkw7xb5lr4gpg32grvkpq";
21 })
22 # Fix setup.py
23 (fetchpatch {
24 url = "https://github.com/dezgeg/dtc/commit/d94a745148ba5c9198143ccc0f7d877fe498ab73.patch";
25 sha256 = "0hpryx04j1swvmjisrfhvss08zzz4nxz9iv72lp4jdgg6vg0argl";
26 })
27 ];
28 postPatch = ''
29 patchShebangs pylibfdt/
30 '';
31
32 installFlags = [ "INSTALL=install" "PREFIX=$(out)" "SETUP_PREFIX=$(out)" ];
33
34 meta = with stdenv.lib; {
35 description = "Device Tree Compiler";
36 homepage = https://git.kernel.org/cgit/utils/dtc/dtc.git;
37 license = licenses.gpl2; # dtc itself is GPLv2, libfdt is dual GPL/BSD
38 maintainers = [ maintainers.dezgeg ];
39 platforms = platforms.unix;
40 };
41}