From a1902a04fbf7eefd2ee07f43333f398c2066d045 Mon Sep 17 00:00:00 2001 From: quapka Date: Thu, 8 Aug 2024 17:48:26 +0200 Subject: Add script for testing building all shims --- flake.nix | 18 +++++++++++++++ test_building_all_shims.py | 53 +++++++++++++++++++++++++++++++++++++++++++ testing_building_all_shims.py | 51 ----------------------------------------- 3 files changed, 71 insertions(+), 51 deletions(-) create mode 100644 test_building_all_shims.py delete mode 100644 testing_building_all_shims.py diff --git a/flake.nix b/flake.nix index e7f9eae..08fa7cc 100644 --- a/flake.nix +++ b/flake.nix @@ -653,7 +653,25 @@ installPhase = '' install -Dm755 $src $out/bin/$pname ''; + }; + buildShims = + with pkgs.python3Packages; + buildPythonApplication { + pname = "buildShims"; + version = "0.1.0"; + format = "other"; + + propagatedBuildInputs = [ + ipython + pudb + ]; + + src = ./testing_building_all_shims.py; + dontUnpack = true; + installPhase = '' + install -Dm755 $src $out/bin/$pname + ''; }; }; diff --git a/test_building_all_shims.py b/test_building_all_shims.py new file mode 100644 index 0000000..677961f --- /dev/null +++ b/test_building_all_shims.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +import argparse +import json + +import subprocess as sp + +def get_all_versions(library): + with open(f"./nix/{library}_pkg_versions.json", "r") as handle: + versions = json.load(handle) + + return versions + +def can_build(library, version): + cmd = ["nix", "build", f".#shim.{library}.{version}"] + try: + sp.check_output(cmd, stderr=sp.DEVNULL) + except sp.CalledProcessError as e: + return False + return True + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-l", "--library") + args = parser.parse_args() + library = args.library + + libraries = [ + "botan", + "cryptopp", + "openssl", + "boringssl", + "gcrypt", + "mbedtls", + "ippcp", + "nettle", + "libressl", + ] + + match library: + case None: + for lib in libraries: + print(f"Library: {lib}") + for version in get_all_versions(lib): + print(f"{version}: {can_build(lib, version)}") + case _: + print(f"Library: {lib}") + for version in get_all_versions(library): + print(f"{version}: {can_build(library, version)}") + + +if __name__ == '__main__': + main() diff --git a/testing_building_all_shims.py b/testing_building_all_shims.py deleted file mode 100644 index 675d8a9..0000000 --- a/testing_building_all_shims.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python - -import argparse -import json - -import subprocess as sp - -def get_all_versions(library): - with open(f"./nix/{library}_pkgs_versions.json", "r") as handle: - versions = json.load(handle) - - return versions - -def can_build(library, version): - try: - sp.check_output(["nix", "build", f"'.#shim.{library}.{version}'"]) - except sp.CalledProcessError as e: - return False - return True - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("-l", "--library") - library = args.library - - libraries = [ - "botan", - "cryptopp", - "openssl", - "boringssl", - "gcrypt", - "mbedtls", - "ippcp", - "nettle", - "libressl", - ] - - match library: - case None: - for lib in libraries: - print(lib) - for version in get_all_versions(lib): - print(f"{version}: {can_build(lib, version)}") - case _: - print(lib) - for version in get_all_versions(lib): - print(f"{version}: {can_build(lib, version)}") - - -if __name__ == '__main__': - main() -- cgit v1.2.3-70-g09d2