From b83164b1402e96d5b20d36b5941b79f5636dba71 Mon Sep 17 00:00:00 2001 From: Jan Kvapil Date: Mon, 12 Aug 2024 10:22:14 +0200 Subject: Build shims and libs with a single script --- flake.nix | 6 ++--- test_building_all.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++ test_building_all_shims.py | 67 ---------------------------------------------- 3 files changed, 70 insertions(+), 70 deletions(-) create mode 100644 test_building_all.py delete mode 100644 test_building_all_shims.py diff --git a/flake.nix b/flake.nix index e9594cf..5d3608b 100644 --- a/flake.nix +++ b/flake.nix @@ -739,10 +739,10 @@ ''; }; - buildShims = + buildAll = with pkgs.python3Packages; buildPythonApplication { - pname = "buildShims"; + pname = "buildAll"; version = "0.1.0"; format = "other"; @@ -751,7 +751,7 @@ pudb ]; - src = ./test_building_all_shims.py; + src = ./test_building_all.py; dontUnpack = true; installPhase = '' install -Dm755 $src $out/bin/$pname diff --git a/test_building_all.py b/test_building_all.py new file mode 100644 index 0000000..bf2c509 --- /dev/null +++ b/test_building_all.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python + +import argparse +import json +import time + +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, variant): + cmd = ["nix", "build", f".#{variant}.{library}.{version}"] + start = time.time() + try: + sp.check_output(cmd, stderr=sp.STDOUT) + except sp.CalledProcessError as e: + print(e.output.decode()) + return False, time.time() - start + return True, time.time() - start + +def valid_build_type(value): + value = value.strip() + valid_types = ["shim", "lib"] + if value not in valid_types: + raise argparse.ArgumentTypeError(f"'{value}' not from expected {', '.join(valid_types)})") + return value + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-l", "--library") + parser.add_argument("-d", "--variant", default="shim", type=valid_build_type) + args = parser.parse_args() + library = args.library + variant = args.variant + + + 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, variant)}") + case _: + print(f"Library: {library}") + for version in get_all_versions(library): + print(f"{version}: {can_build(library, version, variant)}") + + +if __name__ == '__main__': + main() diff --git a/test_building_all_shims.py b/test_building_all_shims.py deleted file mode 100644 index bf2c509..0000000 --- a/test_building_all_shims.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python - -import argparse -import json -import time - -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, variant): - cmd = ["nix", "build", f".#{variant}.{library}.{version}"] - start = time.time() - try: - sp.check_output(cmd, stderr=sp.STDOUT) - except sp.CalledProcessError as e: - print(e.output.decode()) - return False, time.time() - start - return True, time.time() - start - -def valid_build_type(value): - value = value.strip() - valid_types = ["shim", "lib"] - if value not in valid_types: - raise argparse.ArgumentTypeError(f"'{value}' not from expected {', '.join(valid_types)})") - return value - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("-l", "--library") - parser.add_argument("-d", "--variant", default="shim", type=valid_build_type) - args = parser.parse_args() - library = args.library - variant = args.variant - - - 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, variant)}") - case _: - print(f"Library: {library}") - for version in get_all_versions(library): - print(f"{version}: {can_build(library, version, variant)}") - - -if __name__ == '__main__': - main() -- cgit v1.3.1