projects/aports·blob master · refs

114 lines · 2.5 KiB

1# Contributor: Jakub Jirutka <[email protected]>
2# Contributor: Celeste <[email protected]>
3# Maintainer: Robert Mongold <[email protected]>
4pkgname=ocaml-lwt
5_pkgname=lwt
6pkgver=5.7.0
7pkgrel=4
8pkgdesc="OCaml promises and concurrent I/O"
9url="https://github.com/ocsigen/lwt"
10arch="all !riscv64 !loongarch64" # ocaml
11license="MIT"
12depends_dev="
13 libev-dev
14 ocaml-mmap-dev
15 ocaml-ocplib-endian-dev
16 ocaml-ppxlib-dev
17 ocaml-react-dev
18 ocaml-result-dev
19 "
20makedepends="$depends_dev dune dune-configurator ocaml ocaml-cppo"
21options="!check" # FIXME: tests hang
22subpackages="$pkgname-dev ${pkgname}_react:_react ${pkgname}_ppx:_ppx"
23source="$_pkgname-$pkgver.tar.gz::https://github.com/ocsigen/lwt/archive/$pkgver.tar.gz
24 ppxlib-0.36-support.patch
25 "
26builddir="$srcdir/$_pkgname-$pkgver"
27_ocamldir=usr/lib/ocaml
28
29# 32-bit archs
30case "$CARCH" in
31 arm*|x86) options="$options textrels" ;;
32esac
33
34build() {
35 dune exec \
36 -p lwt,lwt_react,lwt_ppx \
37 "src/unix/config/discover.exe" -- \
38 --save --use-libev true
39
40 dune build \
41 -p lwt,lwt_react,lwt_ppx \
42 --verbose
43}
44
45check() {
46 dune runtest --verbose
47}
48
49package() {
50 dune install \
51 --destdir="$pkgdir" \
52 --docdir=/.omit \
53 lwt lwt_react lwt_ppx
54 rm -Rf "$pkgdir"/.omit
55}
56
57dev() {
58 default_dev
59 depends="$depends_dev
60 $pkgname=$pkgver-r$pkgrel
61 ${pkgname}_react=$pkgver-r$pkgrel
62 ${pkgname}_ppx=$pkgver-r$pkgrel"
63 provides="${pkgname}_ppx-dev ${pkgname}_react-dev"
64
65 cd "$pkgdir"
66
67 local path; find usr/lib/ocaml \( \
68 -name '*.cmt' -o \
69 -name '*.cmti' -o \
70 -name '*.ml' -o \
71 -name '*.mli' \
72 \) | while read -r path
73 do
74 amove "$path"
75 done
76}
77
78_ppx() {
79 pkgdesc="$pkgdesc (PPX syntax)"
80
81 amove usr/lib/ocaml/lwt_ppx
82}
83
84_react() {
85 pkgdesc="$pkgdesc (for FRP)"
86
87 amove usr/lib/ocaml/lwt_react
88}
89
90prepare_py_provides() {
91 local datadir="${subpkgdir:-$pkgdir}"
92 local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
93 local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
94
95 options_has "!tracedeps" && return 0
96
97 ocaml4-abuild-find provides \
98 "$datadir"/usr/lib/ocaml \
99 "$controldir" \
100 "$pkgver-r$pkgrel"
101}
102
103scan_python3_dependency() {
104 local controldir="$2" datadir="$3"
105
106 ocaml4-abuild-find requires \
107 "$datadir"/usr/lib/ocaml \
108 "$controldir"
109}
110
111sha512sums="
11242e629920783428673b99c9d7a639237c9e6b35079b5d907bc67e7ea506acf9edadc48cec580bdcfd2410ed9412bf5e6bcc8b09de2fa7d35ce1490973d05ddd1 lwt-5.7.0.tar.gz
113de97b5a8372fc0b2cf3c865137f8a98749b236b2d2ec9afdbbdcb9bc39338b3c6f4ef1238df2621bd17f2e5f9325eeda8abcfe26377ecfa4cf3989629493fe90 ppxlib-0.36-support.patch
114"