|
@@ -8,13 +8,19 @@ package("nettle")
|
|
|
"https://ftp.gnu.org/gnu/nettle/nettle-$(version).tar.gz")
|
|
|
add_versions("3.6", "d24c0d0f2abffbc8f4f34dcf114b0f131ec3774895f3555922fe2f40f3d5e3f1")
|
|
|
add_versions("3.9.1", "ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3")
|
|
|
+ add_versions("3.10.1", "b0fcdd7fc0cdea6e80dcf1dd85ba794af0d5b4a57e26397eee3bc193272d9132")
|
|
|
|
|
|
add_deps("m4")
|
|
|
+ add_deps("gmp")
|
|
|
if is_plat("linux") then
|
|
|
add_extsources("apt::nettle-dev")
|
|
|
end
|
|
|
|
|
|
- on_install("macosx", "linux", function (package)
|
|
|
+ on_install("@!windows and !wasm", function (package)
|
|
|
+ if package:is_plat("iphoneos") then
|
|
|
+ io.replace("configure", "#define gid_t int", "")
|
|
|
+ io.replace("configure", "#define uid_t int", "")
|
|
|
+ end
|
|
|
local configs = {"--disable-openssl", "--disable-documentation", "--enable-pic"}
|
|
|
if package:config("shared") then
|
|
|
table.insert(configs, "--enable-shared")
|
|
@@ -23,9 +29,30 @@ package("nettle")
|
|
|
table.insert(configs, "--disable-shared")
|
|
|
table.insert(configs, "--enable-static")
|
|
|
end
|
|
|
- import("package.tools.autoconf").install(package, configs)
|
|
|
+ import("package.tools.autoconf")
|
|
|
+ local envs = autoconf.buildenvs(package, {packagedeps = {"gmp"}})
|
|
|
+ autoconf.install(package, configs, {envs = envs})
|
|
|
+ if os.isfile(package:installdir("lib64", "pkgconfig", "nettle.pc")) then
|
|
|
+ package:add("linkdirs", "lib64")
|
|
|
+ end
|
|
|
end)
|
|
|
|
|
|
on_test(function (package)
|
|
|
- assert(package:has_cfuncs("sha1_init", {includes = "nettle/sha1.h"}))
|
|
|
+ assert(package:check_csnippets([[
|
|
|
+ void sha1_test(void) {
|
|
|
+ struct sha1_ctx ctx;
|
|
|
+ sha1_init(&ctx);
|
|
|
+ uint8_t const buffer[] = "test";
|
|
|
+ sha1_update(&ctx, sizeof(buffer), buffer);
|
|
|
+ uint8_t digest[SHA1_DIGEST_SIZE];
|
|
|
+ sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest);
|
|
|
+ }
|
|
|
+ ]], {includes = "nettle/sha1.h"}))
|
|
|
+ assert(package:check_csnippets([[
|
|
|
+ void rsa_test(void) {
|
|
|
+ struct rsa_public_key pub;
|
|
|
+ rsa_public_key_init(&pub);
|
|
|
+ rsa_public_key_clear(&pub);
|
|
|
+ }
|
|
|
+ ]], {includes = "nettle/rsa.h"}))
|
|
|
end)
|