From a8dbafe369ce22484e2e9db61fd47519f156c6b1 Mon Sep 17 00:00:00 2001 From: Xeonacid Date: Fri, 31 Jan 2025 20:42:48 +0800 Subject: [PATCH] bkcrack: enhance make build() align with Arch Cmake Package Guidelines Use doxygen to build doc Run test Use SPDX license identifier optdepends on python for tools Install example to doc folder depends on glibc --- lists/to-release | 1 + packages/bkcrack/PKGBUILD | 50 +++++++++++++++++++++++++++++---------- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/lists/to-release b/lists/to-release index e69de29bb2d..dafbf364ea4 100644 --- a/lists/to-release +++ b/lists/to-release @@ -0,0 +1 @@ +bkcrack diff --git a/packages/bkcrack/PKGBUILD b/packages/bkcrack/PKGBUILD index 3729a9f8903..b4b403abeb2 100644 --- a/packages/bkcrack/PKGBUILD +++ b/packages/bkcrack/PKGBUILD @@ -8,9 +8,10 @@ pkgdesc='Crack legacy zip encryption with Biham and Kocher known plaintext attac arch=('x86_64' 'aarch64') groups=('blackarch' 'blackarch-cracker') url='https://github.com/kimci86/bkcrack' -license=('ZLIB') -depends=('gcc-libs') -makedepends=('git' 'cmake') +license=('Zlib') +depends=('gcc-libs' 'glibc') +makedepends=('git' 'cmake' 'doxygen') +optdepends=('python: deflate/inflate tools') source=("git+https://github.com/kimci86/$pkgname.git") sha512sums=('SKIP') @@ -21,23 +22,46 @@ pkgver() { } build() { - cd $pkgname - - cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release . + local cmake_options=( + -B build + -S $pkgname + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + -D BKCRACK_BUILD_DOC=ON + -D BKCRACK_BUILD_TESTING=ON + ) + cmake "${cmake_options[@]}" + cmake --build build +} - make +check() { + local excluded_tests="" + local ctest_flags=( + --test-dir build + # show the stdout and stderr when the test fails + --output-on-failure + # execute tests in parallel + --parallel $(nproc) + # exclude problematic tests + --exclude-regex "$excluded_tests" + ) + ctest "${ctest_flags[@]}" } package() { - cd $pkgname + cd build + install -Dm 755 "src/$pkgname" "$pkgdir/usr/bin/$pkgname" - install -dm 755 "$pkgdir/usr/share/$pkgname/" + install -dm 755 "$pkgdir/usr/share/doc/$pkgname" + cp -a doc/html "$pkgdir/usr/share/doc/$pkgname/" - install -Dm 755 "src/$pkgname" "$pkgdir/usr/bin/$pkgname" + cd ../$pkgname + install -Dm 644 license.txt -t "$pkgdir/usr/share/licenses/$pkgname" - install -Dm 644 license.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE" - install -Dm 644 -t "$pkgdir/usr/share/doc/$pkgname/" *.md doc/*.md + cp -a example "$pkgdir/usr/share/doc/$pkgname" - cp -a tools example "$pkgdir/usr/share/$pkgname/" + install -dm 755 "$pkgdir/usr/share/$pkgname" + cp -a tools "$pkgdir/usr/share/$pkgname/" }