From 823656d18b14131b44fda1db1290696d12a41fa2 Mon Sep 17 00:00:00 2001 From: Xeonacid Date: Sat, 8 Feb 2025 05:35:32 +0800 Subject: [PATCH] bkcrack: enhance (#4457) 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/" }