summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoachim Fasting <joachifm@fastmail.fm>2016-06-03 18:59:09 +0200
committerJoachim Fasting <joachifm@fastmail.fm>2016-06-03 18:59:42 +0200
commitab9acc27f9bd3a2def9d66be5c90290e3facaab9 (patch)
tree5ed88ed3e5eaba67b0f63439b1fe2daed6e06abf
parent5191294e3db05d016399c350909f025b0796d855 (diff)
tinycc: 0.9.27pre-20160328 -> 0.9.27pre-20160525
Also do various refactorings: - Use `fetchFromRepoOrCz` - Use `isGlibc` to check for glibc stdenv - Multiple outputs - Apply PaX marking Also adopt the package.
-rw-r--r--pkgs/development/compilers/tinycc/default.nix78
1 files changed, 44 insertions, 34 deletions
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 8812a4288ef9..147edcb5d48a 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -1,21 +1,27 @@
-{ stdenv, fetchurl, fetchgit, perl, texinfo }:
+{ stdenv, fetchFromRepoOrCz, perl, texinfo }:
-assert stdenv ? glibc;
+assert (stdenv.isGlibc);
+
+with stdenv.lib;
+
+let
+ date = "20160525";
+ version = "0.9.27pre-${date}";
+ rev = "1ca685f887310b5cbdc415cdfc3a578dbc8d82d8";
+ sha256 = "149s847jkg2zdmk09h0cp0q69m8kxxci441zyw8b08fy9b87ayd8";
+in
stdenv.mkDerivation rec {
- #name = "tcc-0.9.26";
- name = "tcc-git-0.9.27pre-20160328";
-
- #src = fetchurl {
- # url = "mirror://savannah/tinycc/${name}.tar.bz2";
- # sha256 = "0wbdbdq6090ayw8bxnbikiv989kykff3m5rzbia05hrnwhd707jj";
- #};
- src = fetchgit {
- url = "git://repo.or.cz/tinycc.git";
- rev = "80343ab7d829c21c65f8f9a14dd20158d028549f";
- sha256 = "0l2qhlvwya2djjbwxgwvhfa11bscqcw1x8w5dzy7klzns773pv7d";
+ name = "tcc-${version}";
+
+ src = fetchFromRepoOrCz {
+ repo = "tinycc";
+ inherit rev;
+ inherit sha256;
};
+ outputs = [ "dev" "out" "bin" ];
+
nativeBuildInputs = [ perl texinfo ];
postPatch = ''
@@ -33,37 +39,41 @@ stdenv.mkDerivation rec {
doCheck = true;
checkTarget = "test";
+ postFixup = ''
+ paxmark m $out/bin/tcc
+ '';
+
meta = {
description = "Small, fast, and embeddable C compiler and interpreter";
- longDescription =
- '' TinyCC (aka TCC) is a small but hyper fast C compiler. Unlike
- other C compilers, it is meant to be self-sufficient: you do not
- need an external assembler or linker because TCC does that for
- you.
+ longDescription = ''
+ TinyCC (aka TCC) is a small but hyper fast C compiler. Unlike
+ other C compilers, it is meant to be self-sufficient: you do not
+ need an external assembler or linker because TCC does that for
+ you.
- TCC compiles so fast that even for big projects Makefiles may not
- be necessary.
+ TCC compiles so fast that even for big projects Makefiles may not
+ be necessary.
- TCC not only supports ANSI C, but also most of the new ISO C99
- standard and many GNU C extensions.
+ TCC not only supports ANSI C, but also most of the new ISO C99
+ standard and many GNU C extensions.
- TCC can also be used to make C scripts, i.e. pieces of C source
- that you run as a Perl or Python script. Compilation is so fast
- that your script will be as fast as if it was an executable.
+ TCC can also be used to make C scripts, i.e. pieces of C source
+ that you run as a Perl or Python script. Compilation is so fast
+ that your script will be as fast as if it was an executable.
- TCC can also automatically generate memory and bound checks while
- allowing all C pointers operations. TCC can do these checks even
- if non patched libraries are used.
+ TCC can also automatically generate memory and bound checks while
+ allowing all C pointers operations. TCC can do these checks even
+ if non patched libraries are used.
- With libtcc, you can use TCC as a backend for dynamic code
- generation.
- '';
+ With libtcc, you can use TCC as a backend for dynamic code
+ generation.
+ '';
homepage = http://www.tinycc.org/;
- license = stdenv.lib.licenses.lgpl2Plus;
+ license = licenses.lgpl2Plus;
- platforms = stdenv.lib.platforms.unix;
- maintainers = [ ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.joachifm ];
};
}