···1-{
2- fetchurl,
3- lib,
4- stdenv,
5- perl,
6- makeWrapper,
7-}:
8-9-stdenv.mkDerivation rec {
10- pname = "sloccount";
11- version = "2.26";
12-13- src = fetchurl {
14- url = "https://www.dwheeler.com/${pname}/${pname}-${version}.tar.gz";
15- sha256 = "0ayiwfjdh1946asah861ah9269s5xkc8p5fv1wnxs9znyaxs4zzs";
16- };
17-18- nativeBuildInputs = [ makeWrapper ];
19- buildInputs = [ perl ];
20-21- # Make sure the Flex-generated files are newer than the `.l' files, so that
22- # Flex isn't needed to recompile them.
23- patchPhase = ''
24- for file in *
25- do
26- if grep -q /usr/bin/perl "$file"
27- then
28- echo "patching \`$file'..."
29- substituteInPlace "$file" --replace \
30- "/usr/bin/perl" "${perl}/bin/perl"
31- fi
32- done
33-34- for file in *.l
35- do
36- touch "$(echo $file | sed -es'/\.l$/.c/g')"
37- done
38- '';
39-40- makeFlags = [
41- "PREFIX=$(out)"
42- "CC=${stdenv.cc.targetPrefix}cc"
43- ];
44-45- doCheck = true;
46- checkPhase = ''HOME="$TMPDIR" PATH="$PWD:$PATH" make test'';
47-48- preInstall = ''
49- mkdir -p "$out/bin"
50- mkdir -p "$out/share/man/man1"
51- mkdir -p "$out/share/doc"
52- '';
53-54- postInstall = ''
55- for w in "$out/bin"/*; do
56- isScript "$w" || continue
57- wrapProgram "$w" --prefix PATH : "$out/bin"
58- done
59- '';
60-61- meta = {
62- description = "Set of tools for counting physical Source Lines of Code (SLOC)";
63-64- longDescription = ''
65- This is the home page of "SLOCCount", a set of tools for
66- counting physical Source Lines of Code (SLOC) in a large number
67- of languages of a potentially large set of programs. This suite
68- of tools was used in my papers More than a Gigabuck: Estimating
69- GNU/Linux's Size and Estimating Linux's Size to measure the SLOC
70- of entire GNU/Linux distributions, and my essay Linux Kernel
71- 2.6: It's Worth More! Others have measured Debian GNU/Linux and
72- the Perl CPAN library using this tool suite.
73- '';
74-75- license = lib.licenses.gpl2Plus;
76-77- homepage = "https://www.dwheeler.com/sloccount/";
78-79- maintainers = [ ];
80- platforms = lib.platforms.all;
81- };
82-}
···1698 skypeforlinux = throw "Skype has been shut down in May 2025"; # Added 2025-05-05
1699 slack-dark = throw "'slack-dark' has been renamed to/replaced by 'slack'"; # Converted to throw 2024-10-17
1700 slimerjs = throw "slimerjs does not work with any version of Firefox newer than 59; upstream ended the project in 2021. <https://slimerjs.org/faq.html#end-of-development>"; # added 2025-01-06
01701 slurm-llnl = slurm; # renamed July 2017
1702 sm64ex-coop = throw "'sm64ex-coop' was removed as it was archived upstream. Consider migrating to 'sm64coopdx'"; # added 2024-11-23
1703 smartgithg = smartgit; # renamed March 2025
···1698 skypeforlinux = throw "Skype has been shut down in May 2025"; # Added 2025-05-05
1699 slack-dark = throw "'slack-dark' has been renamed to/replaced by 'slack'"; # Converted to throw 2024-10-17
1700 slimerjs = throw "slimerjs does not work with any version of Firefox newer than 59; upstream ended the project in 2021. <https://slimerjs.org/faq.html#end-of-development>"; # added 2025-01-06
1701+ sloccount = throw "'sloccount' has been removed because it is unmaintained. Consider migrating to 'loccount'"; # added 2025-05-17
1702 slurm-llnl = slurm; # renamed July 2017
1703 sm64ex-coop = throw "'sm64ex-coop' was removed as it was archived upstream. Consider migrating to 'sm64coopdx'"; # added 2024-11-23
1704 smartgithg = smartgit; # renamed March 2025