commit ff18d98248520c886e4c7922fdd2f6e415272b85 Author: Edmund Lodewijks Date: Sat Jun 28 16:01:57 2025 +0200 First upload of AWS-LC diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000000000..d15679ebd18a7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,25 @@ +pkgbase = aws-lc + pkgdesc = general-purpose cryptographic library maintained by the AWS Cryptography team for AWS + pkgver = 1.54.0 + pkgrel = 1 + url = https://github.com/aws/aws-lc + arch = x86_64 + license = MIT + license = ISC + license = Apache-2.0 + license = LicenseRef-SSLeay-License + makedepends = git + makedepends = cmake + makedepends = ninja + makedepends = go + makedepends = perl + depends = glibc + depends = bash + depends = gcc-libs + optdepends = libunwind: For extra tests + optdepends = clang: Alternative for gcc (gcc preferred by upstream) + source = https://github.com/aws/aws-lc/archive/refs/tags/v1.54.0.tar.gz + validpgpkeys = 968479a1aff927e37d1a566bb5690eeebb952194 + b2sums = 73d2935f2b1d98ed55dc3631108528c05fb3c5dfa9b6d2e76037a989332cb58c9ddc1d8a8b1f20cf95ccf0881c6bcadbfca62e07b1061ca29a9f67b4dd8aa0b7 + +pkgname = aws-lc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000..e7017e32375ee --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +* +!.gitignore +!.nvchecker.toml +!PKGBUILD +!.SRCINFO +!keys/ +!keys/pgp/ +!keys/pgp/* diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000000000..b22c14a0433e4 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[aws-lc] +source = "github" +github = "aws/aws-lc" +use_latest_release = true diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000000000..6a893d1707916 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,79 @@ +# Maintainer: Edmund Lodewijks + +pkgname=aws-lc +pkgver=1.54.0 +pkgrel=1 +pkgdesc='general-purpose cryptographic library maintained by the AWS Cryptography team for AWS' +url='https://github.com/aws/aws-lc' +license=('MIT' 'ISC' 'Apache-2.0' 'LicenseRef-SSLeay-License') +options=() +depends=( + 'glibc' + 'bash' + 'gcc-libs' +) +makedepends=( + 'git' + 'cmake' + 'ninja' + 'go' + 'perl' +) +optdepends=( + 'libunwind: For extra tests' + 'clang: Alternative for gcc (gcc preferred by upstream)' +) +arch=('x86_64') +source=("${url}/archive/refs/tags/v${pkgver}.tar.gz") +b2sums=('73d2935f2b1d98ed55dc3631108528c05fb3c5dfa9b6d2e76037a989332cb58c9ddc1d8a8b1f20cf95ccf0881c6bcadbfca62e07b1061ca29a9f67b4dd8aa0b7') +validpgpkeys=(968479a1aff927e37d1a566bb5690eeebb952194) # GitHub key + +build() { + cd ${pkgname}-${pkgver} + + # Add an extra flag to avoid a build error due to a warning + # IMPORTANT: If you use Clang, use "-Wno-error=uninitialized" + CFLAGS+=" -Wno-error=maybe-uninitialized" +# CFLAGS+=" -Wno-error=uninitialized" + + # 1.) Read 2.1.2 https://wiki.archlinux.org/title/CMake_package_guidelines + # 2.) CMake does not respect ASFLAGs set in /etc/makepkg.conf, so we have to set CMAKE_ASM_FLAGS here. + cmake -B build \ + -GNinja \ + -DCMAKE_BUILD_TYPE=RelWithAssert \ + -DCMAKE_ASM_FLAGS="${CMAKE_ASM_FLAGS} -fcf-protection=full" \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX=../aws-lc \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SBINDIR:PATH=bin \ + -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib/aws-lc \ + -DCMAKE_INSTALL_INCLUDEDIR:PATH=/usr/include/aws-lc \ + -DCMAKE_PROGRAM_PREFIX=aws-lc- \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON + + ninja -C build -j $(nproc) +} + +check() { + cd ${pkgname}-${pkgver} + + ninja -C build run_tests +} + +package() { + cd ${pkgname}-${pkgver} + + DESTDIR="$pkgdir" ninja -C build install + + # Documentation + install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md" + + # Licenses + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + # Rename files in /usr/bin so that they don't clash with OpenSSL files + cd ${pkgdir}/usr/bin + for file in *; do + mv "$file" "aws-lc-${file}" + done +} diff --git a/keys/pgp/968479a1aff927e37d1a566bb5690eeebb952194.asc b/keys/pgp/968479a1aff927e37d1a566bb5690eeebb952194.asc new file mode 100644 index 0000000000000..9de7aa788550a --- /dev/null +++ b/keys/pgp/968479a1aff927e37d1a566bb5690eeebb952194.asc @@ -0,0 +1,131 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: Hostname: +Version: Hockeypuck 2.2 + +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 +FoevXKQX6hayvpLhDUL6cQWTUtgzpOMndJB7 +=o8cv +-----END PGP PUBLIC KEY BLOCK-----