Merge pull request #134638 from jkarlson/master

authored by Artturi and committed by GitHub bbc0ff1e c5ccc212

+49 -10
+6
maintainers/maintainer-list.nix
··· 5189 5189 githubId = 9866621; 5190 5190 name = "Jack"; 5191 5191 }; 5192 + jkarlson = { 5193 + email = "jekarlson@gmail.com"; 5194 + github = "jkarlson"; 5195 + githubId = 1204734; 5196 + name = "Emil Karlson"; 5197 + }; 5192 5198 jlesquembre = { 5193 5199 email = "jl@lafuente.me"; 5194 5200 github = "jlesquembre";
+19 -10
pkgs/development/tools/analysis/sparse/default.nix
··· 1 - { fetchurl, lib, stdenv, pkg-config, libxml2, llvm, perl }: 1 + { callPackage, fetchurl, lib, stdenv, gtk3, pkg-config, libxml2, llvm, perl, sqlite }: 2 2 3 - stdenv.mkDerivation rec { 3 + let 4 + GCC_BASE = "${stdenv.cc.cc}/lib/gcc/${stdenv.hostPlatform.uname.processor}-unknown-linux-gnu/${stdenv.cc.cc.version}"; 5 + in stdenv.mkDerivation rec { 4 6 pname = "sparse"; 5 - version = "0.5.0"; 7 + version = "0.6.3"; 6 8 7 9 src = fetchurl { 8 10 url = "mirror://kernel/software/devel/sparse/dist/${pname}-${version}.tar.xz"; 9 - sha256 = "1mc86jc5xdrdmv17nqj2cam2yqygnj6ar1iqkwsx2y37ij8wy7wj"; 11 + sha256 = "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl"; 10 12 }; 11 13 12 14 preConfigure = '' 13 - sed -i Makefile -e "s|^PREFIX=.*$|PREFIX=$out|g" 15 + sed -i 's|"/usr/include"|"${stdenv.cc.libc.dev}/include"|' pre-process.c 16 + sed -i 's|qx(\$ccom -print-file-name=)|"${GCC_BASE}"|' cgcc 17 + makeFlags+=" PREFIX=$out" 14 18 ''; 15 19 16 20 nativeBuildInputs = [ pkg-config ]; 17 - buildInputs = [ libxml2 llvm perl ]; 21 + buildInputs = [ gtk3 libxml2 llvm perl sqlite ]; 18 22 doCheck = true; 23 + buildFlags = "GCC_BASE:=${GCC_BASE}"; 19 24 20 - meta = { 25 + passthru.tests = { 26 + simple-execution = callPackage ./tests.nix { }; 27 + }; 28 + 29 + meta = with lib; { 21 30 description = "Semantic parser for C"; 22 31 homepage = "https://git.kernel.org/cgit/devel/sparse/sparse.git/"; 23 - license = lib.licenses.mit; 24 - platforms = lib.platforms.linux; 25 - maintainers = [ lib.maintainers.thoughtpolice ]; 32 + license = licenses.mit; 33 + platforms = platforms.linux; 34 + maintainers = with maintainers; [ thoughtpolice jkarlson ]; 26 35 }; 27 36 }
+24
pkgs/development/tools/analysis/sparse/tests.nix
··· 1 + { runCommand, gcc, sparse, writeText }: 2 + let 3 + src = writeText "CODE.c" '' 4 + #include <stdio.h> 5 + #include <stddef.h> 6 + #include <stdlib.h> 7 + 8 + int main(int argc, char *argv[]) { 9 + return EXIT_SUCCESS; 10 + } 11 + ''; 12 + in 13 + runCommand "${sparse.pname}-tests" { buildInputs = [ gcc sparse ]; meta.timeout = 3; } 14 + '' 15 + set -eu 16 + ${sparse}/bin/cgcc ${src} > output 2>&1 || ret=$? 17 + if [[ -z $(<output) ]]; then 18 + mv output $out 19 + else 20 + echo "Test build returned $ret" 21 + cat output 22 + exit 1 23 + fi 24 + ''