From 19e11caa830b00b6525fb69a4e2144dc5258cfc0 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Mon, 2 Feb 2026 16:53:04 +0800 Subject: [PATCH] Add ldap,libcares,libsodium,libunistring, lint all configs --- config/pkg/lib/ldap.yml | 17 ++++++++ config/pkg/lib/libcares.yml | 4 +- config/pkg/lib/libsodium.yml | 15 +++++++ config/pkg/lib/libssh2.yml | 4 +- config/pkg/lib/libunistring.yml | 16 ++++++++ config/pkg/lib/libxml2.yml | 8 ++-- config/pkg/lib/nghttp2.yml | 12 +++--- config/pkg/lib/nghttp3.yml | 4 +- config/pkg/lib/ngtcp2.yml | 12 +++--- config/pkg/lib/xz.yml | 4 +- config/pkg/lib/zstd.yml | 4 +- src/Package/Library/ldap.php | 59 ++++++++++++++++++++++++++++ src/Package/Library/libsodium.php | 24 +++++++++++ src/Package/Library/libunistring.php | 25 ++++++++++++ 14 files changed, 182 insertions(+), 26 deletions(-) create mode 100644 config/pkg/lib/ldap.yml create mode 100644 config/pkg/lib/libsodium.yml create mode 100644 config/pkg/lib/libunistring.yml create mode 100644 src/Package/Library/ldap.php create mode 100644 src/Package/Library/libsodium.php create mode 100644 src/Package/Library/libunistring.php diff --git a/config/pkg/lib/ldap.yml b/config/pkg/lib/ldap.yml new file mode 100644 index 00000000..d1e7db2a --- /dev/null +++ b/config/pkg/lib/ldap.yml @@ -0,0 +1,17 @@ +ldap: + type: library + artifact: + source: + type: filelist + url: 'https://www.openldap.org/software/download/OpenLDAP/openldap-release/' + regex: '/href="(?openldap-(?[^"]+)\.tgz)"/' + metadata: + license-files: [LICENSE] + depends: + - openssl + - zlib + - gmp + - libsodium + pkg-configs: + - ldap + - lber diff --git a/config/pkg/lib/libcares.yml b/config/pkg/lib/libcares.yml index da0d1ad6..5d3f8c9d 100644 --- a/config/pkg/lib/libcares.yml +++ b/config/pkg/lib/libcares.yml @@ -17,7 +17,7 @@ libcares: - ares.h - ares_dns.h - ares_nameser.h - static-libs@unix: - - libcares.a pkg-configs: - libcares + static-libs@unix: + - libcares.a diff --git a/config/pkg/lib/libsodium.yml b/config/pkg/lib/libsodium.yml new file mode 100644 index 00000000..f5a551b9 --- /dev/null +++ b/config/pkg/lib/libsodium.yml @@ -0,0 +1,15 @@ +libsodium: + type: library + artifact: + source: + type: ghrel + repo: jedisct1/libsodium + match: 'libsodium-(?!1\.0\.21)\d+(\.\d+)*\.tar\.gz' + prefer-stable: true + binary: hosted + metadata: + license-files: [LICENSE] + pkg-configs: + - libsodium + static-libs@unix: + - libsodium.a diff --git a/config/pkg/lib/libssh2.yml b/config/pkg/lib/libssh2.yml index 4b66ed2b..8e1d8275 100644 --- a/config/pkg/lib/libssh2.yml +++ b/config/pkg/lib/libssh2.yml @@ -16,7 +16,7 @@ libssh2: - libssh2.h - libssh2_publickey.h - libssh2_sftp.h - static-libs@unix: - - libssh2.a pkg-configs: - libssh2 + static-libs@unix: + - libssh2.a diff --git a/config/pkg/lib/libunistring.yml b/config/pkg/lib/libunistring.yml new file mode 100644 index 00000000..2b2ffd33 --- /dev/null +++ b/config/pkg/lib/libunistring.yml @@ -0,0 +1,16 @@ +libunistring: + type: library + artifact: + source: + type: filelist + url: 'https://ftp.gnu.org/gnu/libunistring/' + regex: '/href="(?libunistring-(?[^"]+)\.tar\.gz)"/' + binary: hosted + metadata: + license-files: [COPYING.LIB] + license: LGPL-3.0-or-later + headers: + - unistr.h + - unistring/ + static-libs@unix: + - libunistring.a diff --git a/config/pkg/lib/libxml2.yml b/config/pkg/lib/libxml2.yml index 4d628ffb..8ba0f8e1 100644 --- a/config/pkg/lib/libxml2.yml +++ b/config/pkg/lib/libxml2.yml @@ -4,16 +4,16 @@ libxml2: source: type: ghtagtar repo: GNOME/libxml2 - match: 'v2\.\d+\.\d+$' + match: v2\.\d+\.\d+$ metadata: license-files: [Copyright] license: MIT depends@unix: - libiconv - suggests@unix: - - xz - - zlib headers: - libxml2 pkg-configs: - libxml-2.0 + suggests@unix: + - xz + - zlib diff --git a/config/pkg/lib/nghttp2.yml b/config/pkg/lib/nghttp2.yml index 9678d16b..20a1840d 100644 --- a/config/pkg/lib/nghttp2.yml +++ b/config/pkg/lib/nghttp2.yml @@ -11,14 +11,14 @@ nghttp2: depends: - zlib - openssl + headers: + - nghttp2 + pkg-configs: + - libnghttp2 + static-libs@unix: + - libnghttp2.a suggests: - libxml2 - nghttp3 - ngtcp2 - brotli - headers: - - nghttp2 - static-libs@unix: - - libnghttp2.a - pkg-configs: - - libnghttp2 diff --git a/config/pkg/lib/nghttp3.yml b/config/pkg/lib/nghttp3.yml index 7d15c602..f9adc05b 100644 --- a/config/pkg/lib/nghttp3.yml +++ b/config/pkg/lib/nghttp3.yml @@ -13,7 +13,7 @@ nghttp3: - openssl headers: - nghttp3 - static-libs@unix: - - libnghttp3.a pkg-configs: - libnghttp3 + static-libs@unix: + - libnghttp3.a diff --git a/config/pkg/lib/ngtcp2.yml b/config/pkg/lib/ngtcp2.yml index 44b0aaae..a609d3ca 100644 --- a/config/pkg/lib/ngtcp2.yml +++ b/config/pkg/lib/ngtcp2.yml @@ -11,14 +11,14 @@ ngtcp2: license: MIT depends: - openssl - suggests: - - nghttp3 - - brotli headers: - ngtcp2 - static-libs@unix: - - libngtcp2.a - - libngtcp2_crypto_ossl.a pkg-configs: - libngtcp2 - libngtcp2_crypto_ossl + static-libs@unix: + - libngtcp2.a + - libngtcp2_crypto_ossl.a + suggests: + - nghttp3 + - brotli diff --git a/config/pkg/lib/xz.yml b/config/pkg/lib/xz.yml index a64cf2e9..7d0af682 100644 --- a/config/pkg/lib/xz.yml +++ b/config/pkg/lib/xz.yml @@ -14,7 +14,7 @@ xz: - libiconv headers@unix: - lzma - static-libs@unix: - - liblzma.a pkg-configs: - liblzma + static-libs@unix: + - liblzma.a diff --git a/config/pkg/lib/zstd.yml b/config/pkg/lib/zstd.yml index 60d33519..3d76e270 100644 --- a/config/pkg/lib/zstd.yml +++ b/config/pkg/lib/zstd.yml @@ -13,7 +13,7 @@ zstd: - zdict.h - zstd.h - zstd_errors.h - static-libs@unix: - - libzstd.a pkg-configs: - libzstd + static-libs@unix: + - libzstd.a diff --git a/src/Package/Library/ldap.php b/src/Package/Library/ldap.php new file mode 100644 index 00000000..21e7f8c0 --- /dev/null +++ b/src/Package/Library/ldap.php @@ -0,0 +1,59 @@ +getSourceDir() . '/configure', '"-lssl -lcrypto', '"-lssl -lcrypto -lz ' . $extra); + return true; + } + + #[BuildFor('Linux')] + #[BuildFor('Darwin')] + public function build(LibraryPackage $lib): void + { + UnixAutoconfExecutor::create($lib) + ->optionalPackage('openssl', '--with-tls=openssl') + ->optionalPackage('gmp', '--with-mp=gmp') + ->optionalPackage('libsodium', '--with-argon2=libsodium', '--enable-argon2=no') + ->addConfigureArgs( + '--disable-slapd', + '--without-systemd', + '--without-cyrus-sasl', + 'ac_cv_func_pthread_kill_other_threads_np=no' + ) + ->appendEnv([ + 'CFLAGS' => '-Wno-date-time', + 'LDFLAGS' => "-L{$lib->getLibDir()}", + 'CPPFLAGS' => "-I{$lib->getIncludeDir()}", + ]) + ->configure() + ->exec('sed -i -e "s/SUBDIRS= include libraries clients servers tests doc/SUBDIRS= include libraries clients servers/g" Makefile') + ->make(); + + FileSystem::replaceFileLineContainsString( + $lib->getLibDir() . '/pkgconfig/ldap.pc', + 'Libs: -L${libdir} -lldap', + 'Libs: -L${libdir} -lldap -llber' + ); + $lib->patchPkgconfPrefix(['ldap.pc', 'lber.pc']); + $lib->patchLaDependencyPrefix(); + } +} diff --git a/src/Package/Library/libsodium.php b/src/Package/Library/libsodium.php new file mode 100644 index 00000000..50d706ba --- /dev/null +++ b/src/Package/Library/libsodium.php @@ -0,0 +1,24 @@ +configure()->make(); + + // Patch pkg-config file + $lib->patchPkgconfPrefix(['libsodium.pc'], PKGCONF_PATCH_PREFIX); + } +} diff --git a/src/Package/Library/libunistring.php b/src/Package/Library/libunistring.php new file mode 100644 index 00000000..5f5575dc --- /dev/null +++ b/src/Package/Library/libunistring.php @@ -0,0 +1,25 @@ +configure('--disable-nls') + ->make(); + + $lib->patchLaDependencyPrefix(); + } +}