From 39a207076e51f35c9a67d56fdd32c699e67326ff Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 6 Feb 2026 10:11:24 +0800 Subject: [PATCH] Add libargon2 --- config/pkg/lib/imagemagick.yml | 20 ++++++------- config/pkg/lib/imap.yml | 13 ++++----- config/pkg/lib/libacl.yml | 4 +-- config/pkg/lib/libargon2.yml | 14 +++++++++ config/pkg/lib/libzip.yml | 21 +++++++------- src/Package/Library/libargon2.php | 48 +++++++++++++++++++++++++++++++ 6 files changed, 88 insertions(+), 32 deletions(-) create mode 100644 config/pkg/lib/libargon2.yml create mode 100644 src/Package/Library/libargon2.php diff --git a/config/pkg/lib/imagemagick.yml b/config/pkg/lib/imagemagick.yml index 17fc03e8..4c4a8e1c 100644 --- a/config/pkg/lib/imagemagick.yml +++ b/config/pkg/lib/imagemagick.yml @@ -1,18 +1,11 @@ imagemagick: type: library artifact: - source: { - "type": "ghtar", - "repo": "ImageMagick/ImageMagick" - } + source: + type: ghtar + repo: ImageMagick/ImageMagick metadata: license-files: [LICENSE] - lang: cpp - pkg-configs: [ - "Magick++-7.Q16HDRI", - "MagickCore-7.Q16HDRI", - "MagickWand-7.Q16HDRI" - ] depends: - zlib - libjpeg @@ -28,5 +21,8 @@ imagemagick: - xz - libzip - libxml2 - - + lang: cpp + pkg-configs: + - Magick++-7.Q16HDRI + - MagickCore-7.Q16HDRI + - MagickWand-7.Q16HDRI diff --git a/config/pkg/lib/imap.yml b/config/pkg/lib/imap.yml index cb2ec410..31e6c7e7 100644 --- a/config/pkg/lib/imap.yml +++ b/config/pkg/lib/imap.yml @@ -1,14 +1,13 @@ imap: type: library artifact: - source: { - "type": "git", - "url": "https://github.com/static-php/imap.git", - "rev": "master" - } + source: + type: git + url: 'https://github.com/static-php/imap.git' + rev: master metadata: license-files: [LICENSE] - static-libs@unix: - - libc-client.a suggests@unix: - openssl + static-libs@unix: + - libc-client.a diff --git a/config/pkg/lib/libacl.yml b/config/pkg/lib/libacl.yml index 16051c46..e67a33ec 100644 --- a/config/pkg/lib/libacl.yml +++ b/config/pkg/lib/libacl.yml @@ -6,7 +6,7 @@ libacl: metadata: license-files: [doc/COPYING.LGPL] license: LGPL-2.1-or-later - static-libs@unix: - - libacl.a depends: - attr + static-libs@unix: + - libacl.a diff --git a/config/pkg/lib/libargon2.yml b/config/pkg/lib/libargon2.yml new file mode 100644 index 00000000..dcd38881 --- /dev/null +++ b/config/pkg/lib/libargon2.yml @@ -0,0 +1,14 @@ +libargon2: + type: library + artifact: + source: + type: git + rev: master + url: 'https://github.com/static-php/phc-winner-argon2' + metadata: + license-files: [LICENSE] + license: BSD-2-Clause + suggests: + - libsodium + static-libs@unix: + - libargon2.a diff --git a/config/pkg/lib/libzip.yml b/config/pkg/lib/libzip.yml index 3d8c02f8..2de69d42 100644 --- a/config/pkg/lib/libzip.yml +++ b/config/pkg/lib/libzip.yml @@ -1,19 +1,13 @@ libzip: type: library artifact: - source: { - "type": "ghrel", - "repo": "nih-at/libzip", - "match": "libzip.+\\.tar\\.xz", - "prefer-stable": true - } + source: + type: ghrel + repo: nih-at/libzip + match: libzip.+\.tar\.xz + prefer-stable: true metadata: license-files: [LICENSE] - static-libs@unix: - - libzip.a - headers: - - zip.h - - zipconf.h depends@unix: - zlib suggests@unix: @@ -21,3 +15,8 @@ libzip: - xz - zstd - openssl + headers: + - zip.h + - zipconf.h + static-libs@unix: + - libzip.a diff --git a/src/Package/Library/libargon2.php b/src/Package/Library/libargon2.php new file mode 100644 index 00000000..49afceeb --- /dev/null +++ b/src/Package/Library/libargon2.php @@ -0,0 +1,48 @@ +getSourceDir()}/Makefile", 'LIBRARY_REL ?= lib/x86_64-linux-gnu', 'LIBRARY_REL ?= lib'); + } + + #[BuildFor('Darwin')] + #[BuildFor('Linux')] + public function buildUnix(LibraryPackage $lib, PackageBuilder $builder): void + { + shell()->cd($lib->getSourceDir())->initializeEnv($lib) + ->exec("make PREFIX='' clean") + ->exec("make -j{$builder->concurrency} PREFIX=''") + ->exec("make install PREFIX='' DESTDIR={$lib->getBuildRootPath()}"); + + $lib->patchPkgconfPrefix(['libargon2.pc']); + + foreach (FileSystem::scanDirFiles("{$lib->getBuildRootPath()}/lib/", false, true) as $filename) { + if (str_starts_with($filename, 'libargon2') && (str_contains($filename, '.so') || str_ends_with($filename, '.dylib'))) { + unlink("{$lib->getBuildRootPath()}/lib/{$filename}"); + } + } + + if (file_exists("{$lib->getBinDir()}/argon2")) { + unlink("{$lib->getBinDir()}/argon2"); + } + } +}