PKGBUILD 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. # Maintainer: No maintainer, yield at your own risk.
  2. validpgpkeys=('33ED753E14757D79FA17E57DC4C1F715B2B66B95')
  3. pkgname=gost-engine
  4. pkgver=1.1.1.r496.9b492b3
  5. pkgrel=1
  6. pkgdesc='Russian GOST R 34.10 and GOST R 34.11-2012 Crypto Algorithms for OpenSSL'
  7. arch=('x86_64')
  8. license=('Apache 2.0')
  9. url='https://github.com/gost-engine/engine'
  10. depends=('openssl')
  11. makedepends=('cmake' 'git')
  12. conflicts=('openssl-gost')
  13. provides=('openssl-gost')
  14. _gitbranch="openssl_1_1_1"
  15. source=(
  16. "gost-engine::git+https://github.com/gost-engine/engine.git#branch=${_gitbranch}"
  17. 'gost.cnf'
  18. "${pkgname:?}.install"
  19. )
  20. sha256sums=('SKIP'
  21. '04c3483d758e393d9831d2be4cee1eafd806eea15055438be7c7b4caeeccbfe6'
  22. '5da9d605aaf45af5623d96de6cc8b68fa385601beb28fcba6054aa5811b9a4f4')
  23. sha512sums=('SKIP'
  24. '431f810f822a347135d10c99f98ed2516e6afe310def77fc9aa0b41dc0578b05e2684f77e1062ea934961720f6d11f73f27e38548bccfe61709e81f8d53c484e'
  25. 'dbaf26e67350bd2c4ddf265f204473be02eaf74223a49d09d9c22c0adae2c1898e2c04dfbe1096694dc47cd56c4e3cf44310c5bab04c7a83e375b9665ffdf23a')
  26. install=${pkgname:?}.install
  27. pkgver() {
  28. cd "${srcdir:?}/gost-engine" || (
  29. echo -e "\E[1m\E[31mCan't cd to ${srcdir}/gost-engine build directory! PkgVer Failed! \E[0m"
  30. exit 1
  31. )
  32. echo "1.1.1.r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
  33. }
  34. prepare() {
  35. openssl_version=$(openssl version | grep -ho "1\.[0-9]\.\w*")
  36. if ! echo "${openssl_version}" | grep -iq "1.1.1"; then
  37. echo -e "\E[1m\E[31mOpenSSL version ${openssl_version} is not compatible! \E[0m"
  38. exit 1
  39. fi
  40. cd "${srcdir:?}/gost-engine" || (
  41. echo -e "\E[1m\E[31mCan't cd to ${srcdir}/gost-engine build directory! Prepare Failed! \E[0m"
  42. exit 1
  43. )
  44. if [ -d build ]; then
  45. rm -rf build
  46. fi
  47. # Fix ==> WARNING: Package contains reference to $srcdir
  48. # gost.so.1.1 contain path to source files
  49. # strings gost.so.1.1 | grep "src\/gost-engine"
  50. # Show containing strings
  51. sed -i "$ a\ \nset(CMAKE_C_FLAGS \"\${CMAKE_C_FLAGS} -fdebug-prefix-map=\\\\\"\${CMAKE_SOURCE_DIR}\\\\\"=. -Wno-builtin-macro-redefined -D'__FILE__=\\\\\"\$(subst \$(realpath \${CMAKE_SOURCE_DIR})/,,\$(abspath \$<))\\\\\"'\")" \
  52. "${srcdir:?}/${pkgname:?}/CMakeLists.txt"
  53. }
  54. build() {
  55. cd "${srcdir:?}/gost-engine" || (
  56. echo -e "\E[1m\E[31mCan't cd to ${srcdir}/gost-engine build directory! Build Failed! \E[0m"
  57. exit 1
  58. )
  59. cmake \
  60. -DCMAKE_INSTALL_PREFIX=/usr \
  61. -DOPENSSL_ROOT_DIR=/usr \
  62. -DOPENSSL_INCLUDE_DIR=/usr/include \
  63. -DOPENSSL_LIBRARIES=/usr/lib \
  64. -DOPENSSL_ENGINES_DIR=/usr/lib/engines-1.1 \
  65. -B build \
  66. -DCMAKE_BUILD_TYPE=Release
  67. cmake --build build --config Release
  68. }
  69. package() {
  70. cd "${srcdir:?}/gost-engine" || (
  71. echo -e "\E[1m\E[31mCan't cd to ${srcdir}/gost-engine build directory! Package Failed! \E[0m"
  72. exit 1
  73. )
  74. install -Dm644 "${srcdir:?}/gost.cnf" "${pkgdir:?}/etc/ssl/gost.cnf"
  75. install -Dm644 "${srcdir:?}/${pkgname:?}/LICENSE" "${pkgdir:?}/usr/share/licenses/${pkgname:?}/LICENSE"
  76. DESTDIR="${pkgdir:?}" cmake --install build --config Release
  77. }