summary refs log tree commit diff
path: root/pkgs/development/compilers/tinycc
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-06-10 09:27:04 +0000
committerRobin Gloster <mail@glob.in>2016-06-10 09:27:04 +0000
commit8031cba2ab3146977141fc504bea2a1e03b5c126 (patch)
tree0cd68c0007851dfed7d7f8247754b5c4b356704e /pkgs/development/compilers/tinycc
parent2a5e64b69c83592caf900cb0b7213235e96368de (diff)
parent656c48f141be5886c515a1a874a47472cbbac6bd (diff)
downloadnixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.gz
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.bz2
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.lz
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.xz
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.zst
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/development/compilers/tinycc')
-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 40e4d49d51e8..87e09e3231f2 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 = "1bz75aj93ivb2d8hfk2bczsrwa56lv7vprvdi8c1r5phjvawbshy";
+  name = "tcc-${version}";
+
+  src = fetchFromRepoOrCz {
+    repo = "tinycc";
+    inherit rev;
+    inherit sha256;
   };
 
+  outputs = [ "dev" "out" "bin" ];
+
   nativeBuildInputs = [ perl texinfo ];
 
   hardeningDisable = [ "fortify" ];
@@ -35,37 +41,41 @@ stdenv.mkDerivation rec {
   doCheck = true;
   checkTarget = "test";
 
+  postFixup = ''
+    paxmark m $bin/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 ];
   };
 }