summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 8ee7d356e26245d175bb4d5361d033526898e100 (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
110
111
112
113
# Maintainer:  Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>

: "${MAKEPKG_MATLAB_PREFIX:=/opt}"
: "${MAKEPKG_MATLAB_ROOT:=${MAKEPKG_MATLAB_PREFIX}/MATLAB}"

pkgbase="matlab-jre-meta"
pkgname=(
  "matlab-jre-common"
)
pkgver=R2026a
pkgrel=1
pkgdesc="A high-level language for numerical computation and visualization"
arch=(
  'any'
)
url="https://www.mathworks.com/support/requirements/openjdk.html"
license=(
  '0BSD'
)
# source=(
#   "matlab-jre-pre.hook"
#   "matlab-jre-post.hook"
#   "matlab-jre-pre.script"
#   "matlab-jre-post.script"
# )
# sha256sums=('13ba69c3da448f58a6d435a711225b98f44525da1219f9695a3ca2eae93f19b4'
#             'b6e9eb3bb93816c681ca20d37faeccf1deb1975d529e7a539422ff5253fe39b7'
#             'c1fbc001d4a94259a76ca826c7c71c8c7977536c51b1d8a85cfe941f0fe4225a'
#             'c52ec7c86b2f13a26de0b9da86516ba665242f6f17f7755bc05773533b6da3e9')

# do not trust the $url too much when you update this array
# the lower limits are inaccurate, the docs do not seem to retire any older JREs
# the upper limits are accurate, except when a specific OpenJDK version is specified
# in any case, check each JRE with each release manually
declare -Ag _jres=(
  # - R2023a: listed in docs, doesn't work in reality
  # - R2023b: listed in docs, doesn't work in reality
  # - R2024a: listed in docs, doesn't work in reality
  # - R2024b: listed in docs, doesn't work in reality
  # - R2025a: listed in docs, doesn't work in reality
  # - R2025b: listed in docs, doesn't work in reality
   [8]='R2020a R2020b R2021a R2021b R2022a R2022b R2026a'

  # - R2024a: listed in docs, doesn't work in reality
  # - R2024b: listed in docs, doesn't work in reality
  # - R2025a: listed in docs, doesn't work in reality
  # - R2025b: listed in docs, doesn't work in reality
  # - R2026a: listed in docs, doesn't work in reality
  [11]='R2023a R2023b'

  [17]='R2024a R2024b R2025a R2025b R2026a'

  # + R2024b: "On Linux, only OpenJDK Java 21.0.2+13-LTS and earlier are supported." (but it works)
  [21]='R2024b R2025a R2025b R2026a'
)

# prepare() {
#   cd "${srcdir}"
#   sed -e "s|@@MAKEPKG_MATLAB_ROOT@@|${MAKEPKG_MATLAB_ROOT}|g" \
#       -e "s|@@MAKEPKG_MATLAB_ROOT_FORWARD@@|${MAKEPKG_MATLAB_ROOT#/}|g" \
#       -i "${source[@]}"
# }

# https://www.mathworks.com/matlabcentral/answers/130360
# https://www.mathworks.com/help/matlab/ref/matlab_jenv.html
package_matlab-jre-common() {
  pkgdesc+=" (JRE, common)"
  depends=(
    'bash'
  )
  # install="${pkgname}.install"

  # cd "${srcdir}"
  # install -vDm644 "matlab-jre-pre.hook"    "${pkgdir}/usr/share/libalpm/hooks/matlab-jre-pre.hook"
  # install -vDm644 "matlab-jre-post.hook"   "${pkgdir}/usr/share/libalpm/hooks/matlab-jre-post.hook"
  # install -vDm755 "matlab-jre-pre.script"  "${pkgdir}/usr/share/libalpm/scripts/matlab-jre-pre"
  # install -vDm755 "matlab-jre-post.script" "${pkgdir}/usr/share/libalpm/scripts/matlab-jre-post"

  # install -vd "${pkgdir}/var/lib/matlab-jre"
}

for _jre in "${!_jres[@]}"; do
  pkgname+=(
    "${pkgbase/jre/"jre${_jre}"}"
  )

  local _provides=()
  for _release in ${_jres[${_jre}]}; do
    _provides+=(
      "matlab-${_release,,}-jre-meta=${pkgver}"
      "matlab-${_release,,}-jre=${pkgver}"
    )

    if [[ "${_release}" == "${pkgver}" ]]; then
      _provides+=(
        "matlab-jre-meta=${pkgver}"
        "matlab-jre=${pkgver}"
      )
    fi
  done

  eval "
package_${pkgbase/jre/"jre${_jre}"}() {
  pkgdesc+=' (JRE${_jre}, meta)'
  depends=(
    'matlab-jre-common>=${pkgver}-${pkgrel}'
    'java-environment=${_jre}'
  )
  provides=(
    ${_provides[@]}
  )
}"
done