diff --git a/pkgs/development/tools/misc/abi-compliance-checker/default.nix b/pkgs/development/tools/misc/abi-compliance-checker/default.nix new file mode 100644 index 000000000000..db0e41d27ab3 --- /dev/null +++ b/pkgs/development/tools/misc/abi-compliance-checker/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, ctags, perl, binutils, abi-dumper }: + +stdenv.mkDerivation rec { + name = "abi-compliance-checker-${version}"; + version = "2.3"; + + src = fetchFromGitHub { + owner = "lvc"; + repo = "abi-compliance-checker"; + rev = version; + sha256 = "1f1f9j2nf9j83sfl2ljadch99v6ha8rq8xm7ax5akc05hjpyckij"; + }; + + buildInputs = [ binutils ctags perl ]; + propagatedBuildInputs = [ abi-dumper ]; + + makeFlags = [ "prefix=$(out)" ]; + + meta = with stdenv.lib; { + homepage = https://lvc.github.io/abi-compliance-checker; + description = "A tool for checking backward API/ABI compatibility of a C/C++ library"; + license = licenses.lgpl21; + maintainers = [ maintainers.bhipple ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/tools/misc/abi-dumper/default.nix b/pkgs/development/tools/misc/abi-dumper/default.nix new file mode 100644 index 000000000000..047cd466baac --- /dev/null +++ b/pkgs/development/tools/misc/abi-dumper/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, ctags, perl, elfutils, vtable-dumper }: + +stdenv.mkDerivation rec { + name = "abi-dumper-${version}"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "lvc"; + repo = "abi-dumper"; + rev = version; + sha256 = "1byhw132aj7a5a5zh5s3pnjlrhdk4cz6xd5irp1y08jl980qba5j"; + }; + + patchPhase = '' + substituteInPlace abi-dumper.pl \ + --replace eu-readelf ${elfutils}/bin/eu-readelf \ + --replace vtable-dumper ${vtable-dumper}/bin/vtable-dumper \ + --replace '"ctags"' '"${ctags}/bin/ctags"' + ''; + + buildInputs = [ elfutils ctags perl vtable-dumper ]; + + preBuild = "mkdir -p $out"; + makeFlags = [ "prefix=$(out)" ]; + + meta = with stdenv.lib; { + homepage = https://github.com/lvc/abi-dumper; + description = "Dump ABI of an ELF object containing DWARF debug info"; + license = licenses.lgpl21; + maintainers = [ maintainers.bhipple ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/tools/misc/vtable-dumper/default.nix b/pkgs/development/tools/misc/vtable-dumper/default.nix new file mode 100644 index 000000000000..e806a7796386 --- /dev/null +++ b/pkgs/development/tools/misc/vtable-dumper/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, libelf }: + +stdenv.mkDerivation rec { + name = "vtable-dumper-${version}"; + version = "1.2"; + + src = fetchFromGitHub { + owner = "lvc"; + repo = "vtable-dumper"; + rev = version; + sha256 = "0sl7lnjr2l4c2f7qaazvpwpzsp4gckkvccfam88wcq9f7j9xxbyp"; + }; + + buildInputs = [ libelf ]; + makeFlags = [ "prefix=$(out)" ]; + + meta = with stdenv.lib; { + homepage = https://github.com/lvc/vtable-dumper; + description = "A tool to list content of virtual tables in a C++ shared library"; + license = licenses.lgpl21; + maintainers = [ maintainers.bhipple ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aaa8da74333d..630a170f65f4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8003,6 +8003,10 @@ with pkgs; ### DEVELOPMENT / TOOLS + abi-compliance-checker = callPackage ../development/tools/misc/abi-compliance-checker { }; + + abi-dumper = callPackage ../development/tools/misc/abi-dumper { }; + activator = throw '' Typesafe Activator was removed in 2017-05-08 as the actual package reaches end of life. @@ -8011,13 +8015,13 @@ with pkgs; for more information. ''; + adtool = callPackage ../tools/admin/adtool { }; + inherit (callPackage ../development/tools/alloy { }) alloy4 alloy5 alloy; - adtool = callPackage ../tools/admin/adtool { }; - augeas = callPackage ../tools/system/augeas { }; inherit (callPackages ../tools/admin/ansible {}) @@ -8941,6 +8945,8 @@ with pkgs; pythonPackages = python3Packages; }; + vtable-dumper = callPackage ../development/tools/misc/vtable-dumper { }; + watson-ruby = callPackage ../development/tools/misc/watson-ruby {}; xc3sprog = callPackage ../development/tools/misc/xc3sprog { };