aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorquapka2024-08-06 17:12:23 +0200
committerquapka2024-08-06 17:12:23 +0200
commit92393806db443a408fa78cf2753a4b88462e10d3 (patch)
tree0fe147665662e1b3805a459ae068670f54786645
parent2ee39e74d80fe0812c6436b359a7a73ea4e30cc2 (diff)
downloadECTester-92393806db443a408fa78cf2753a4b88462e10d3.tar.gz
ECTester-92393806db443a408fa78cf2753a4b88462e10d3.tar.zst
ECTester-92393806db443a408fa78cf2753a4b88462e10d3.zip
Build various version of Nettle
-rw-r--r--fetchReleases.py35
-rw-r--r--flake.nix11
-rw-r--r--nix/nettle_pkg_versions.nix95
3 files changed, 139 insertions, 2 deletions
diff --git a/fetchReleases.py b/fetchReleases.py
index 4d4c0c7..a0783df 100644
--- a/fetchReleases.py
+++ b/fetchReleases.py
@@ -218,6 +218,39 @@ def fetch_ippcp():
with open(f"./nix/{pkg}_pkg_versions.nix", "w") as handle:
handle.write(all_versions)
+def fetch_nettle():
+ # https://api.github.com/repos/intel/ipp-crypto/releases
+ pkg = "nettle"
+ owner = "gnutls"
+ repo = "nettle"
+ release_url = f"https://api.github.com/repos/{owner}/{repo}/tags"
+ resp = requests.get(release_url)
+
+ single_version_template = env.from_string("""{{ flat_version }} = buildECTesterStandalone {
+ {{ pkg }} = { version="{{ version }}"; tag="{{ tag }}"; hash="{{ digest }}"; };
+ };""")
+ renders = []
+ for tag in resp.json():
+ if tag['name'] == 'release_nettle_0.2.20010617':
+ continue
+ version = tag['name'].split('_')[1]
+ # NOTE skip release candidates
+ if re.search(r'\drc\d', version):
+ continue
+ flat_version = "v" + version.replace('.', '_')
+ # download_url = f"https://github.com/{owner}/{repo}/archive/{tag['name']}.tar.gz"
+ download_url = f"mirror://gnu/nettle/nettle-{version}.tar.gz"
+ print(download_url)
+ digest = get_source_hash(download_url, unpack=False)
+
+ rendered = single_version_template.render(
+ pkg=pkg, digest=digest, flat_version=flat_version, tag=tag['name'], version=version).strip()
+ renders.append(rendered)
+
+ all_versions = all_versions_template.render(pkg_versions=renders).strip()
+ with open(f"./nix/{pkg}_pkg_versions.nix", "w") as handle:
+ handle.write(all_versions)
+
def main():
parser = argparse.ArgumentParser()
@@ -239,6 +272,8 @@ def main():
fetch_mbedtls()
case "ippcp":
fetch_ippcp()
+ case "nettle":
+ fetch_nettle()
case _:
print("Unknown library")
diff --git a/flake.nix b/flake.nix
index efdf307..68a4630 100644
--- a/flake.nix
+++ b/flake.nix
@@ -164,8 +164,12 @@
./nix/libtommath-pkgconfig-for-static-build.patch
];
});
- nettle = pkgs.nettle.overrideAttrs (final: prev: {
+ nettleBuilder = { version, tag, hash }: pkgs.nettle.overrideAttrs (final: prev: {
configureFlags = ( prev.configureFlags or [] ) ++ [ "--enable-static" ];
+ src = if version == null then prev.version else pkgs.fetchurl {
+ url = "mirror://gnu/nettle/nettle-${version}.tar.gz";
+ inherit hash;
+ };
});
cryptoppBuilder = { version, hash }: (pkgs.cryptopp.override { enableStatic = true; }).overrideAttrs (final: prev: {
src = if version == null then prev.src else
@@ -226,7 +230,7 @@
gcryptShimBuilder = { version, hash}: import ./nix/gcryptshim.nix { inherit pkgs libgpg-error; libgcrypt = libgcryptBuilder { inherit version hash; }; };
mbedtlsShimBuilder = { version, hash }: import ./nix/mbedtlsshim.nix { inherit pkgs; mbedtls = ( mbedtlsBuilder { inherit version hash; }); };
ippcpShimBuilder = { version, hash }: import ./nix/ippcpshim.nix { pkgs = pkgs; ipp-crypto = ( ipp-cryptoBuilder { inherit version hash; }); };
- nettleShim = import ./nix/nettleshim.nix { inherit pkgs nettle gmp; };
+ nettleShimBuilder = { version, tag, hash }: import ./nix/nettleshim.nix { inherit pkgs gmp; nettle = ( nettleBuilder { inherit version tag hash; }); };
libresslShim = import ./nix/libresslshim.nix { inherit pkgs libressl; };
commonLibs = import ./nix/commonlibs.nix { pkgs = pkgs; };
@@ -241,6 +245,7 @@
gcrypt ? { version = null; hash = null; },
mbedtls ? { version = null; hash = null; },
ippcp ? { version = null; hash = null; },
+ nettle ? { version = null; tag = null; hash = null; },
}: (
let
tomcryptShim = tomcryptShimBuilder {
@@ -255,6 +260,7 @@
gcryptShim = gcryptShimBuilder { inherit (gcrypt) version hash; };
mbedtlsShim = mbedtlsShimBuilder { inherit (mbedtls) version hash; };
ippcpShim = ippcpShimBuilder { inherit (ippcp) version hash; };
+ nettleShim = nettleShimBuilder { inherit (nettle) version tag hash; };
in
with pkgs;
gradle2nix.builders.${system}.buildGradlePackage rec {
@@ -314,6 +320,7 @@
gcrypt = pkgs.callPackage ./nix/gcrypt_pkg_versions.nix { inherit buildECTesterStandalone; };
mbedtls = pkgs.callPackage ./nix/mbedtls_pkg_versions.nix { inherit buildECTesterStandalone; };
ippcp = pkgs.callPackage ./nix/ippcp_pkg_versions.nix { inherit buildECTesterStandalone; };
+ nettle = pkgs.callPackage ./nix/nettle_pkg_versions.nix { inherit buildECTesterStandalone; };
fetchReleases = with pkgs.python3Packages; buildPythonApplication {
pname = "fetchReleases";
diff --git a/nix/nettle_pkg_versions.nix b/nix/nettle_pkg_versions.nix
new file mode 100644
index 0000000..9316040
--- /dev/null
+++ b/nix/nettle_pkg_versions.nix
@@ -0,0 +1,95 @@
+{
+ buildECTesterStandalone
+}:
+{
+ vnettle_0_2 = buildECTesterStandalone {
+ nettle = { version="nettle_0.2"; tag="release_nettle_0.2.20010617"; hash="sha256-8gdMfVF5yHEDeT6SPO8ouYM4o8hsCn3M1pIPQDX/fzQ="; };
+ };
+ v3_8_1 = buildECTesterStandalone {
+ nettle = { version="3.8.1"; tag="nettle_3.8.1_release_20220727"; hash="sha256-7ISLSvk0lwciqyIncZXNqrHyrMHIqJy+asDO9CXrBDg="; };
+ };
+ v3_8 = buildECTesterStandalone {
+ nettle = { version="3.8"; tag="nettle_3.8_release_20220602"; hash="sha256-jeKsfLmlokjrGxzcaP6Kl+IfmiHhh4GUvZKf6dVDknw="; };
+ };
+ v3_7_3 = buildECTesterStandalone {
+ nettle = { version="3.7.3"; tag="nettle_3.7.3_release_20210606"; hash="sha256-xeunS+6/xPa0QPcc4J2AMtSAQ5p2pVAorFUQ6TWXa4g="; };
+ };
+ v3_7_2 = buildECTesterStandalone {
+ nettle = { version="3.7.2"; tag="nettle_3.7.2_release_20210321"; hash="sha256-JVh5uBtJpbgXUQNphCfLjsUddWSMoLvW3X9tgr1hBEo="; };
+ };
+ v3_7_1 = buildECTesterStandalone {
+ nettle = { version="3.7.1"; tag="nettle_3.7.1_release_20210217"; hash="sha256-+C4W9juzJLCCxDdZPgBbT7DvUe7koIKnkTC/j0tsXJQ="; };
+ };
+ v3_7 = buildECTesterStandalone {
+ nettle = { version="3.7"; tag="nettle_3.7_release_20210104"; hash="sha256-GcVh88WuzJoPmWhbx2KQT6eviMKW5f8xlqgdktGKiB8="; };
+ };
+ v3_7rc1 = buildECTesterStandalone {
+ nettle = { version="3.7rc1"; tag="nettle_3.7rc1"; hash="sha256-5ynAU9+DyKt2d/qKD4wDWMvKms6AiZPAHvevQnGuVjw="; };
+ };
+ v3_6 = buildECTesterStandalone {
+ nettle = { version="3.6"; tag="nettle_3.6_release_20200429"; hash="sha256-rMxnCk8J6ow+hWLEz3iT3kOzfXP1WxkxoUgGsuDeD2I="; };
+ };
+ v3_6rc3 = buildECTesterStandalone {
+ nettle = { version="3.6rc3"; tag="nettle_3.6rc3"; hash="sha256-nQLBOoRpS6VEw5R4Q08uffqk3fiaR++xRMgWQ1xpLTE="; };
+ };
+ v3_6rc2 = buildECTesterStandalone {
+ nettle = { version="3.6rc2"; tag="nettle_3.6rc2"; hash="sha256-oVX9So1Wwu1gyntUwsUQBxIjYIq5+8WBDcKxkKUr22Q="; };
+ };
+ v3_6rc1 = buildECTesterStandalone {
+ nettle = { version="3.6rc1"; tag="nettle_3.6rc1"; hash="sha256-fpamfRYVfdvrXV+g7sujJSL+H6ApTjTBGoom7G4797I="; };
+ };
+ v3_5_1 = buildECTesterStandalone {
+ nettle = { version="3.5.1"; tag="nettle_3.5.1_release_20190627"; hash="sha256-/vENdrjJFL8M4vde388HfRee23lXLScn9wFF2oOP6tE="; };
+ };
+ v3_5 = buildECTesterStandalone {
+ nettle = { version="3.5"; tag="nettle_3.5_release_20190626"; hash="sha256-8TQ7UFWuV8wMAZDzmAwyL6OLuFrg+3p3uuaPMWet64Q="; };
+ };
+ v3_5rc1 = buildECTesterStandalone {
+ nettle = { version="3.5rc1"; tag="nettle_3.5rc1"; hash="sha256-VwN6Mptwo8UIi0VrMlL9HT9+qKY9b8MibNagD2/1gYI="; };
+ };
+ v3_4_1 = buildECTesterStandalone {
+ nettle = { version="3.4.1"; tag="nettle_3.4.1_release_20181204"; hash="sha256-xOJohqASNv1cyyZNnZmBivIaarA1x01kdJiAJ6KHZkQ="; };
+ };
+ v3_4_1rc1 = buildECTesterStandalone {
+ nettle = { version="3.4.1rc1"; tag="nettle_3.4.1rc1"; hash="sha256-xRTTCF9c9ftegjJaHUtyIkJwvXw7wv79yu6dJCTUwdw="; };
+ };
+ v3_4 = buildECTesterStandalone {
+ nettle = { version="3.4"; tag="nettle_3.4_release_20171119"; hash="sha256-FLLVm2XFeRxtwz8y4ZGsMFEENXVDvqD7YwJ414c3fTI="; };
+ };
+ v3_4rc2 = buildECTesterStandalone {
+ nettle = { version="3.4rc2"; tag="nettle_3.4rc2"; hash="sha256-G16UGcHypfEyVngjvUjQDwY5bWJp09BlldaAUPnZ3JY="; };
+ };
+ v3_4rc1 = buildECTesterStandalone {
+ nettle = { version="3.4rc1"; tag="nettle_3.4rc1"; hash="sha256-J5gj70gpYBY/+WkPQhtDqZvHbTFTHCypKGu/hOhz7Uk="; };
+ };
+ v3_3 = buildECTesterStandalone {
+ nettle = { version="3.3"; tag="nettle_3.3_release_20161001"; hash="sha256-TJRhYgPyHeiYsvYZ7L+XjxWFGZll/fJ+vVorWTB5W7c="; };
+ };
+ v3_2 = buildECTesterStandalone {
+ nettle = { version="3.2"; tag="nettle_3.2_release_20160128"; hash="sha256-vlCi3iReSN4sASl78jZ3u0/yO4CK8HH42cupdnxCWVU="; };
+ };
+ v3_1_1 = buildECTesterStandalone {
+ nettle = { version="3.1.1"; tag="nettle_3.1.1_release_20150424"; hash="sha256-lrpCg/u1ZJvsiTrwkTx6+8BVV/rdlaRw5do72crKoRg="; };
+ };
+ v3_1 = buildECTesterStandalone {
+ nettle = { version="3.1"; tag="nettle_3.1_release_20150407"; hash="sha256-WtiYNaMjTBMF37M0QLPjvan4dD/tzCfULp/06F9Z1vA="; };
+ };
+ v3_1rc3 = buildECTesterStandalone {
+ nettle = { version="3.1rc3"; tag="nettle_3.1rc3"; hash="sha256-ngoe/I8JSZXufA+3PVJSPsQ26KT2aOn5RzJjNezis3Q="; };
+ };
+ v3_1rc2 = buildECTesterStandalone {
+ nettle = { version="3.1rc2"; tag="nettle_3.1rc2"; hash="sha256-BJj+5paD+fG7gKyZ9KJXuWETB5yqQanWyj7Q3Tm18+4="; };
+ };
+ v3_1rc1 = buildECTesterStandalone {
+ nettle = { version="3.1rc1"; tag="nettle_3.1rc1"; hash="sha256-oR07+omPaltbiubGeeE8K7oysT0U8nr6KUizeo/pHmg="; };
+ };
+ v3_0 = buildECTesterStandalone {
+ nettle = { version="3.0"; tag="nettle_3.0_release_20140607"; hash="sha256-AxE+Eten1JodHj+InuMvs/FlWVsxzqr3spunUwvJxIQ="; };
+ };
+ v2_7_1 = buildECTesterStandalone {
+ nettle = { version="2.7.1"; tag="nettle_2.7.1_release_20130528"; hash="sha256-m28lItoyyuwmXr83YVlQluUyFN9ySWz6WnUtfr3DQkM="; };
+ };
+ v2_7 = buildECTesterStandalone {
+ nettle = { version="2.7"; tag="nettle_2.7_release_20130424"; hash="sha256-NubTzUzAYaPgZO1v8iwWPYa1PtHlAbzpHcPpGoaeabo="; };
+ };
+}