From c5e6503128c12c99ae4ab3a777bb5e6ab411cfea Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Thu, 25 Aug 2022 20:39:04 -0400 Subject: [PATCH] deheader: init at 1.8 --- .../tools/misc/deheader/default.nix | 68 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 70 insertions(+) create mode 100644 pkgs/development/tools/misc/deheader/default.nix diff --git a/pkgs/development/tools/misc/deheader/default.nix b/pkgs/development/tools/misc/deheader/default.nix new file mode 100644 index 000000000000..ad1cb909b0de --- /dev/null +++ b/pkgs/development/tools/misc/deheader/default.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, python3 +, xmlto +, docbook-xsl-nons +, fetchFromGitLab +, installShellFiles +}: + +stdenv.mkDerivation rec { + pname = "deheader"; + version = "1.8"; + outputs = [ "out" "man" ]; + + src = fetchFromGitLab { + owner = "esr"; + repo = "deheader"; + rev = version; + sha256 = "sha256-sjxgUtdsi/sfxOViDj7l8591TSYwtCzDQcHsk9ClXuM="; + }; + + buildInputs = [ python3 ]; + + nativeBuildInputs = [ xmlto docbook-xsl-nons installShellFiles ]; + + # With upstream Makefile, xmlto is called without "--skip-validation". It + # makes it require a lot of dependencies, yet ultimately it fails + # nevertheless in attempt to fetch something from SourceForge. + # + # Need to set "foundMakefile" so "make check" tests are run. + buildPhase = '' + runHook preBuild + + xmlto man --skip-validation deheader.xml + patchShebangs ./deheader + foundMakefile=1 + + runHook postBuild + ''; + + doCheck = true; + + installPhase = '' + runHook preInstall + + install -Dm755 ./deheader -t $out/bin + installManPage ./deheader.1 + + runHook postInstall + ''; + + meta = with lib; { + description = "Tool to find and optionally remove unneeded includes in C or C++ source files"; + longDescription = '' + This tool takes a list of C or C++ sourcefiles and generates a report + on which #includes can be omitted from them -- the test, for each foo.c + or foo.cc or foo.cpp, is simply whether 'rm foo.o; make foo.o' returns a + zero status. Optionally, with the -r option, the unneeded headers are removed. + The tool also reports on headers required for strict portability. + ''; + homepage = "http://catb.org/~esr/deheader"; + changelog = "https://gitlab.com/esr/deheader/-/blob/master/NEWS.adoc"; + license = licenses.bsd2; + maintainers = with maintainers; [ kaction ]; + + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93554e795c6c..f8e9c723f077 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3679,6 +3679,8 @@ with pkgs; dedup = callPackage ../tools/backup/dedup { }; + deheader = callPackage ../development/tools/misc/deheader { }; + dehydrated = callPackage ../tools/admin/dehydrated { }; deja-dup = callPackage ../applications/backup/deja-dup { };