summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: f61bb21335f9cdcf12d56608b48ab072463e4fbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Maintainer:  Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>

_py=3.13
_pkgbase="sentencepiece"
_pkgname=(
  "${_pkgbase}"
  "python-${_pkgbase}"
)
pkgbase="${_pkgbase}-bin"
pkgname=(
  "${_pkgname[@]/%/-bin}"
)
pkgver=0.2.1
pkgrel=3
pkgdesc="Unsupervised text tokenizer for Neural Network-based text generation"
arch=(
  # 'aarch64'
  'x86_64'
)
url="https://github.com/google/${_pkgbase}"
license=('Apache-2.0')
depends=(
  'gcc-libs'
  'glibc'
)
makedepends=(
  'python-installer'
  'slsa-verifier'
)
_pkgsrc="${_pkgbase}-${pkgver}"
source=("${_pkgsrc}-README.md::${url}/raw/refs/tags/v${pkgver}/README.md"
        "${_pkgsrc}-LICENSE::${url}/raw/refs/tags/v${pkgver}/LICENSE"
        "${_pkgsrc}-multiple.intoto.jsonl::${url}/releases/download/v${pkgver}/multiple.intoto.jsonl")
# source_aarch64=("${_pkgsrc}-aarch64.7z::${url}/releases/download/v${pkgver}/${_pkgsrc}-Linux-aarch64.7z"
#                 "${url}/releases/download/v${pkgver}/${_pkgsrc}-cp${_py/.}-cp${_py/.}-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl")
source_x86_64=("${_pkgsrc}-x86_64.7z::${url}/releases/download/v${pkgver}/${_pkgsrc}-Linux-x86_64.7z"
               "${url}/releases/download/v${pkgver}/${_pkgsrc}-cp${_py/.}-cp${_py/.}-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl")
noextract=(
  # "${source_aarch64[1]##*/}"
  "${source_x86_64[1]##*/}"
)
sha256sums=('4d52487bc1fc01d5e2b2054be2861326dda7f0bfe42a6f4b46c0a6238f0951fd'
            'cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30'
            'be40ea1220e99c8a853738a35db7bd779d6d5cbaca792a97b8734aaadb3ac9a8')
sha256sums_x86_64=('654083fba04d00fdb1d7dcd7924c223f1962336244443fd60125fcf2c15fffb7'
                   'c7f0fd2f2693309e6628aeeb2e2faf6edd221134dfccac3308ca0de01f8dab47')

verify() {
  local source_carch="source_${CARCH}[1]"
  local source_arch="${!source_carch}"
  local source_wheel="${source_arch##*/}"

  slsa-verifier verify-artifact "${source_wheel}" \
    --provenance-path "${_pkgsrc}-multiple.intoto.jsonl" \
    --source-uri "${url#https://}" \
    --source-tag "v${pkgver}"
}

prepare() {
  cd "${srcdir}/${_pkgsrc}-Linux-${CARCH}/lib/pkgconfig"
  sed -i 's|^prefix=.*|prefix=/usr|g' "${_pkgbase}.pc"
}

package_sentencepiece-bin() {
  depends+=(
    'protobuf'
  )
  provides=(
    "${pkgname%-bin}=${pkgver}"
    "lib${_pkgbase}.so"
    "lib${_pkgbase}_train.so"
  )
  conflicts=(
    "${pkgname%-bin}"
  )

  cd "${srcdir}"
  install -vDm644 "${_pkgsrc}-README.md" "${pkgdir}/usr/share/doc/${_pkgbase}/README.md"
  install -vDm644 "${_pkgsrc}-LICENSE" "${pkgdir}/usr/share/licenses/${_pkgbase}/LICENSE"

  cd "${srcdir}/${_pkgsrc}-Linux-${CARCH}"
  install -vd "${pkgdir}/usr"
  cp -va --no-preserve=ownership ./* "${pkgdir}/usr"
}

package_python-sentencepiece-bin() {
  pkgdesc+=" (Python bindings)"
  url+="/tree/master/python"
  depends+=(
    "${_pkgbase}=${pkgver}"
    "python>=${_py}"
  )
  optdepends=(
    'python-protobuf'
  )
  provides=(
    "${pkgname%-bin}=${pkgver}"
  )
  conflicts=(
    "${pkgname%-bin}"
  )

  local source_carch="source_${CARCH}[1]"
  local source_arch="${!source_carch}"
  local source_wheel="${source_arch##*/}"

  cd "${srcdir}"
  python -m installer --destdir="${pkgdir}" "${source_wheel}"
}