mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
Drop the depends_lib on ocaml-seq: upstream no longer requires the seq compatibility package (minimum OCaml is now 4.12.0, and the stdlib's built-in Seq module is used directly). Fixes the build failure where dune could not find library "seq". The public re.mli/Re module interface gained new functions and modules between 1.11.0 and 1.14.0 (Re.split_delim, character classes in Re.Posix, non-raising Re.Group variants, hex/octal escapes, \Q...\E quoting, Re.Pcre.get_named_substring_opt, the experimental Re.Stream API), so dependents linking against ocaml-re need a clean rebuild. Bump revision for all direct depends_lib dependents: ocaml-expect_test_helpers_kernel, ocaml-ocamlformat (main subport only; ocaml-ocamlformat-lib does not depend on ocaml-re), ocaml-sexp_pretty, ocaml-patdiff, ocaml-core_extended, ocaml-jingoo, ocaml-alcotest, ocaml-camlp5-buildscripts, ocaml-expect_test_helpers_core, everparse, stanc3, abella, camlp5, ocaml-xtmpl Of these, only ocaml-core_extended re-exports Re types in its own public interface (lib/selector.mli), but nothing in the ports tree depends on it, so the cascade stops there. Also fix two pre-existing non-ASCII characters (curly apostrophes) in ocaml-patdiff and ocaml-core_extended descriptions while touching those files. Closes: https://trac.macports.org/ticket/67356 Signed-off-by: Paul Guyot <pguyot@kallisys.net>
133 lines
4.8 KiB
Tcl
133 lines
4.8 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup github 1.0
|
|
|
|
name everparse
|
|
github.setup project-everest everparse 2026.03.21 v
|
|
github.tarball_from archive
|
|
epoch 1
|
|
revision 1
|
|
|
|
categories devel
|
|
maintainers {landonf @landonf} openmaintainer
|
|
license Apache-2
|
|
description A verified secure parser framework for F*.
|
|
long_description EverParse provides LowParse, verified-secure F*/Low* parser combinator library, and \
|
|
QuackyDucky, an untrusted compiler for generating verified secure parsers from a \
|
|
message format specification.
|
|
|
|
checksums rmd160 ce5d9b8c41691a0f64fe2f7614b48805b014c1dc \
|
|
sha256 02e13310c1c7e7289663b67e79fab60ee7c3eb67dabd12c240828681740ef61e \
|
|
size 19639572
|
|
|
|
depends_lib port:fstar \
|
|
port:karamel \
|
|
port:z3-fstar
|
|
|
|
depends_build port:ocaml \
|
|
port:ocaml-batteries \
|
|
port:ocaml-dune \
|
|
port:ocaml-hex \
|
|
port:ocaml-menhir \
|
|
port:ocaml-ppx_deriving_yojson \
|
|
port:ocaml-process \
|
|
port:ocaml-re \
|
|
port:ocaml-sexplib \
|
|
port:ocaml-sha \
|
|
port:ocaml-yojson
|
|
|
|
options fstar.home \
|
|
karamel.home
|
|
|
|
default fstar.home {${prefix}/libexec/fstar}
|
|
default karamel.home {${prefix}/libexec/karamel}
|
|
|
|
use_configure no
|
|
|
|
# src/3d/ocaml/Makefile uses CRLF line endings.
|
|
post-extract {
|
|
reinplace "s|\r||g" src/3d/ocaml/Makefile
|
|
}
|
|
|
|
build.type gnu
|
|
build.env-append FSTAR_EXE=${prefix}/bin/fstar.exe \
|
|
OCAMLPATH=${fstar.home}/lib \
|
|
OTHERFLAGS=--admit_smt_queries\ true \
|
|
PATH=${prefix}/libexec/z3-fstar/bin:$env(PATH)
|
|
# - EVERPARSE_USE_FSTAR_EXE / KRML_HOME: use the port-installed fstar and
|
|
# karamel rather than the bundled opt/FStar and opt/karamel sources.
|
|
# - NO_PULSE: skip the optional Pulse-based components (we have no Pulse port).
|
|
# - z3_exe: short-circuit deps.Makefile's `which z3-4.13.3` lookup so it
|
|
# doesn't try to download z3 and pass the download dir as a Make $<
|
|
# prerequisite to fstar.exe.
|
|
build.args FSTAR_EXE=${prefix}/bin/fstar.exe \
|
|
KRML_HOME=${karamel.home}/home \
|
|
EVERPARSE_USE_FSTAR_EXE=1 \
|
|
EVERPARSE_USE_KRML_HOME=1 \
|
|
NO_PULSE=1 \
|
|
z3_exe=${prefix}/libexec/z3-fstar/bin/z3-4.13.3
|
|
build.target 3d quackyducky
|
|
|
|
test.run no
|
|
|
|
destroot {
|
|
# Create EVERPARSE_HOME layout compatible with src/package/package.sh
|
|
set everparse_root ${prefix}/libexec/everparse
|
|
set everparse_bin ${everparse_root}/bin
|
|
set everparse_lib ${everparse_root}/lib
|
|
set everparse_lib_3d ${everparse_root}/lib/3d
|
|
set everparse_src ${everparse_root}/src
|
|
|
|
xinstall -d \
|
|
${destroot}${everparse_lib} \
|
|
${destroot}${everparse_lib_3d} \
|
|
${destroot}${everparse_bin}
|
|
|
|
xinstall \
|
|
${worksrcpath}/bin/qd.exe \
|
|
${destroot}${everparse_bin}/qd.exe
|
|
|
|
xinstall \
|
|
${worksrcpath}/bin/3d.exe \
|
|
${destroot}${everparse_bin}/3d.exe
|
|
|
|
foreach {ep_src ep_dst} [list \
|
|
lowparse ${everparse_lib} \
|
|
3d/prelude ${everparse_lib_3d} \
|
|
3d/EverParseEndianness.h ${everparse_lib_3d} \
|
|
3d/noheader.txt ${everparse_lib_3d} \
|
|
3d/copyright.txt ${everparse_lib_3d} \
|
|
] {
|
|
if {[file exists ${worksrcpath}/src/${ep_src}]} {
|
|
copy ${worksrcpath}/src/${ep_src} ${destroot}${ep_dst}
|
|
}
|
|
}
|
|
|
|
fs-traverse {f} ${destroot}${everparse_lib} {
|
|
switch -glob -- "[file tail $f] [file type $f]" {
|
|
{.hints link} -
|
|
{.gitignore file} -
|
|
{.depend file} -
|
|
{Makefile file} { delete $f }
|
|
}
|
|
}
|
|
|
|
# src/package/package.sh expects a 'src' directory
|
|
ln -sf lib ${destroot}/${everparse_src}
|
|
|
|
# Symlink the binaries into ${prefix}/bin
|
|
ln -sf ${everparse_bin}/qd.exe ${destroot}${prefix}/bin/quackyducky
|
|
ln -sf quackyducky ${destroot}${prefix}/bin/qd
|
|
ln -sf ${everparse_bin}/3d.exe ${destroot}${prefix}/bin/quackyducky-3d
|
|
ln -sf quackyducky-3d ${destroot}${prefix}/bin/qd-3d
|
|
}
|
|
|
|
notes "
|
|
EverParse 3D is invoked through the quackyducky-3d wrapper and requires
|
|
F* and KaRaMeL to be in PATH at runtime:
|
|
|
|
PATH=${fstar.home}/bin:${karamel.home}/home/bin:\$PATH quackyducky-3d ...
|
|
|
|
"
|