On Fri, Apr 17, 2020 at 08:53:22PM +0200, Christopher Zimmermann wrote: > Hi, > > I initially ported this only because I did not realize that this project had > been integrated into devel/dune. This has no use anymore and can be removed. > OK?
Makes sense to me. ok krw@ fwiw. .... Ken > > Christopher > > > > Index: devel/Makefile > =================================================================== > RCS file: /cvs/ports/devel/Makefile,v > retrieving revision 1.1963 > diff -u -p -r1.1963 Makefile > --- devel/Makefile 15 Apr 2020 17:13:04 -0000 1.1963 > +++ devel/Makefile 17 Apr 2020 18:39:10 -0000 > @@ -490,7 +490,6 @@ > SUBDIR += nspr > SUBDIR += nuget > SUBDIR += ocaml-biniou > - SUBDIR += ocaml-configurator > SUBDIR += ocaml-cppo > SUBDIR += ocaml-easy-format > SUBDIR += ocaml-graph > Index: devel/ocaml-configurator/Makefile > =================================================================== > RCS file: devel/ocaml-configurator/Makefile > diff -N devel/ocaml-configurator/Makefile > --- devel/ocaml-configurator/Makefile 17 Aug 2019 13:29:42 -0000 1.2 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,27 +0,0 @@ > -# $OpenBSD: Makefile,v 1.2 2019/08/17 13:29:42 chrisz Exp $ > - > -COMMENT = library for feature testing > -CATEGORIES = devel > - > -GH_ACCOUNT = janestreet > -GH_PROJECT = configurator > -GH_TAGNAME = v0.11.0 > -PKGNAME = ocaml-${DISTNAME} > - > -# MIT > -PERMIT_PACKAGE = Yes > - > -WANTLIB = c m > - > -MODULES = lang/ocaml > - > -BUILD_DEPENDS = devel/dune > - > -ALL_TARGET = > - > -post-install: > - ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/ocaml-${GH_PROJECT} > - mv ${PREFIX}/doc/* ${PREFIX}/share/doc/ocaml-${GH_PROJECT}/ > - rmdir ${PREFIX}/doc > - > -.include <bsd.port.mk> > Index: devel/ocaml-configurator/distinfo > =================================================================== > RCS file: devel/ocaml-configurator/distinfo > diff -N devel/ocaml-configurator/distinfo > --- devel/ocaml-configurator/distinfo 4 Aug 2019 18:54:39 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,2 +0,0 @@ > -SHA256 (configurator-0.11.0.tar.gz) = > TjZLgw+HvFLmppHHkzNOO2NDTDPa3cxAwKqpMmq+cHY= > -SIZE (configurator-0.11.0.tar.gz) = 10567 > Index: devel/ocaml-configurator/patches/patch-src_configurator_ml > =================================================================== > RCS file: devel/ocaml-configurator/patches/patch-src_configurator_ml > diff -N devel/ocaml-configurator/patches/patch-src_configurator_ml > --- devel/ocaml-configurator/patches/patch-src_configurator_ml 9 Aug > 2019 12:08:16 -0000 1.3 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,416 +0,0 @@ > -$OpenBSD: patch-src_configurator_ml,v 1.3 2019/08/09 12:08:16 chrisz Exp $ > - > -don't depend on janestreet base. > - > -Index: src/configurator.ml > ---- src/configurator.ml.orig > -+++ src/configurator.ml > -@@ -1,13 +1,8 @@ > --open Base > --open Stdio > -+module Fn = Filename > -+open StdLabels > - --module Sys = Caml.Sys > --module Fn = Caml.Filename > --module Arg = Caml.Arg > --module Buffer = Caml.Buffer > --module Pervasives = Caml.Pervasives > -+module StringMap = Map.Make(String) > - --let ( ^^ ) = Caml.( ^^ ) > - let ( ^/ ) = Fn.concat > - let sprintf = Printf.sprintf > - -@@ -18,6 +13,13 @@ let die fmt = > - raise (Fatal_error s); > - ) fmt > - -+let split_lines s = > -+ String.split_on_char ~sep:'\n' s |> List.map ~f:begin fun s -> > -+ if s.[String.length s - 1] = '\r' > -+ then String.sub s ~pos:0 ~len:(String.length s - 1) > -+ else s > -+ end > -+ > - type t = > - { name : string > - ; dest_dir : string > -@@ -28,7 +30,7 @@ type t = > - ; c_compiler : string > - ; stdlib_dir : string > - ; ccomp_type : string > -- ; ocamlc_config : string Map.M(String).t > -+ ; ocamlc_config : string StringMap.t > - ; ocamlc_config_cmd : string > - } > - -@@ -47,7 +49,7 @@ module Temp = struct > - let prng = lazy(Random.State.make_self_init ()) > - - let gen_name ~temp_dir ~prefix ~suffix = > -- let rnd = Int.bit_and (Random.State.bits (Lazy.force prng)) 0xFFFFFF in > -+ let rnd = (land) (Random.State.bits (Lazy.force prng)) 0xFFFFFF in > - temp_dir ^/ (Printf.sprintf "%s%06x%s" prefix rnd suffix) > - - let create ~prefix ~suffix ~mk = > -@@ -63,7 +65,7 @@ module Temp = struct > - - let create_temp_dir ~prefix ~suffix = > - let dir = create ~prefix ~suffix ~mk:(fun name -> Unix.mkdir name > 0o700) in > -- Caml.at_exit (fun () -> rm_rf dir); > -+ at_exit (fun () -> rm_rf dir); > - dir > - end > - -@@ -76,8 +78,8 @@ module Find_in_path = struct > - - let get_path () = > - match Sys.getenv "PATH" with > -- | exception (Not_found_s _ | Caml.Not_found) -> [] > -- | s -> String.split s ~on:path_sep > -+ | exception Not_found -> [] > -+ | s -> String.split_on_char s ~sep:path_sep > - - let exe = if Sys.win32 then ".exe" else "" > - -@@ -96,17 +98,22 @@ module Find_in_path = struct > - None > - - let find_ocaml_prog prog = > -- match > -- List.find_map (get_path ()) ~f:(fun dir -> > -- best_prog dir prog) > -- with > -- | None -> prog_not_found prog > -- | Some fn -> fn > -+ let rec loop = function > -+ | [] -> prog_not_found prog > -+ | dir :: rest -> > -+ match best_prog dir prog with > -+ | None -> loop rest > -+ | Some fn -> fn > -+ in loop (get_path ()) > - - let find prog = > -- List.find_map (get_path ()) ~f:(fun dir -> > -- let fn = dir ^/ prog ^ exe in > -- Option.some_if (Sys.file_exists fn) fn) > -+ let rec loop = function > -+ | [] -> None > -+ | dir :: rest -> > -+ let fn = dir ^/ prog ^ exe in > -+ if Sys.file_exists fn > -+ then Some fn else loop rest > -+ in loop (get_path ()) > - end > - - let logf t fmt = Printf.ksprintf t.log fmt > -@@ -122,18 +129,8 @@ type run_result = > - ; stderr : string > - } > - --let quote = > -- let need_quote = function > -- | ' ' | '\"' -> true > -- | _ -> false > -- in > -- fun s -> > -- if String.is_empty s || String.exists ~f:need_quote s > -- then Fn.quote s > -- else s > -- > - let command_line prog args = > -- String.concat ~sep:" " (List.map (prog :: args) ~f:quote) > -+ String.concat ~sep:" " (List.map (prog :: args) ~f:Fn.quote) > - - let run t ~dir cmd = > - logf t "run: %s" cmd; > -@@ -148,20 +145,27 @@ let run t ~dir cmd = > - (Fn.quote stdout_fn) > - (Fn.quote stderr_fn) > - in > -- let stdout = In_channel.read_all stdout_fn in > -- let stderr = In_channel.read_all stderr_fn in > -+ let slurp fn = > -+ let chan = open_in fn in > -+ let buf = Buffer.create 4096 in > -+ (try Buffer.add_channel buf chan max_int with End_of_file -> ()); > -+ close_in chan; > -+ Buffer.contents buf > -+ in > -+ let stdout = slurp stdout_fn in > -+ let stderr = slurp stderr_fn in > - logf t "-> process exited with code %d" exit_code; > - logf t "-> stdout:"; > -- List.iter (String.split_lines stdout) ~f:(logf t " | %s"); > -+ List.iter (split_lines stdout) ~f:(logf t " | %s"); > - logf t "-> stderr:"; > -- List.iter (String.split_lines stderr) ~f:(logf t " | %s"); > -+ List.iter (split_lines stderr) ~f:(logf t " | %s"); > - { exit_code; stdout; stderr } > - - let run_capture_exn t ~dir cmd = > - let { exit_code; stdout; stderr } = run t ~dir cmd in > - if exit_code <> 0 then > - die "command exited with code %d: %s" exit_code cmd > -- else if not (String.is_empty stderr) then > -+ else if stderr <> "" then > - die "command has non-empty stderr: %s" cmd > - else > - stdout > -@@ -169,11 +173,11 @@ let run_capture_exn t ~dir cmd = > - let run_ok t ~dir cmd = (run t ~dir cmd).exit_code = 0 > - - let get_ocaml_config_var_exn ~ocamlc_config_cmd map var = > -- match Map.find map var with > -+ match StringMap.find_opt var map with > - | None -> die "variable %S not found in the output of `%s`" var > ocamlc_config_cmd > - | Some s -> s > - --let ocaml_config_var t var = Map.find t.ocamlc_config var > -+let ocaml_config_var t var = StringMap.find_opt var t.ocamlc_config > - let ocaml_config_var_exn t var = > - get_ocaml_config_var_exn t.ocamlc_config var > - ~ocamlc_config_cmd:t.ocamlc_config_cmd > -@@ -200,31 +204,43 @@ let create ?dest_dir ?ocamlc ?(log=ignore) name = > - ; c_compiler = "" > - ; stdlib_dir = "" > - ; ccomp_type = "" > -- ; ocamlc_config = Map.empty (module String) > -+ ; ocamlc_config = StringMap.empty > - ; ocamlc_config_cmd > - } > - in > - let ocamlc_config = > -- let colon_space = String.Search_pattern.create ": " in > -+ let search pat s = > -+ let rec loop pos len = > -+ if len >= String.length pat > -+ then Some pos > -+ else if pos+len >= String.length s > -+ then None > -+ else if s.[pos+len] = pat.[len] > -+ then loop pos (len+1) > -+ else loop (pos+1) 0 > -+ in loop 0 0 > -+ in > - run_capture_exn t ~dir:dest_dir ocamlc_config_cmd > -- |> String.split_lines > -- |> List.map ~f:(fun line -> > -- match String.Search_pattern.index colon_space ~in_:line with > -+ |> split_lines > -+ |> List.map ~f:(fun line -> > -+ match search ": " line with > - | Some i -> > - (String.sub line ~pos:0 ~len:i, > - String.sub line ~pos:(i + 2) ~len:(String.length line - i - 2)) > - | None -> > - die "unrecognized line in the output of `%s`: %s" ocamlc_config_cmd > - line) > -- |> Map.of_alist (module String) > -- |> function > -- | `Ok x -> x > -- | `Duplicate_key key -> > -- die "variable %S present twice in the output of `%s`" key > ocamlc_config_cmd > -+ |> List.fold_left ~init:StringMap.empty ~f:begin fun m (k,v) -> > -+ if StringMap.exists (fun k' _ -> String.equal k k') m > -+ then > -+ die "variable %S present twice in the output of `%s`" k > ocamlc_config_cmd > -+ else > -+ StringMap.add k v m > -+ end > - in > - let get = get_ocaml_config_var_exn ocamlc_config ~ocamlc_config_cmd in > - let c_compiler = > -- match Map.find ocamlc_config "c_compiler" with > -+ match StringMap.find_opt "c_compiler" ocamlc_config with > - | Some c_comp -> c_comp ^ " " ^ get "ocamlc_cflags" > - | None -> get "bytecomp_c_compiler" > - in > -@@ -249,9 +265,11 @@ let compile_c_prog t ?(c_flags=[]) ?(link_flags=[]) co > - let c_fname = base ^ ".c" in > - let obj_fname = base ^ t.ext_obj in > - let exe_fname = base ^ ".exe" in > -- Out_channel.write_all c_fname ~data:code; > -+ let c_chan = open_out c_fname in > -+ output_string c_chan code; > -+ close_out c_chan; > - logf t "compiling c program:"; > -- List.iter (String.split_lines code) ~f:(logf t " | %s"); > -+ List.iter (split_lines code) ~f:(logf t " | %s"); > - let run_ok args = > - run_ok t ~dir > - (String.concat ~sep:" " > -@@ -295,17 +313,6 @@ module C_define = struct > - | (Int | String), Switch -> -1 > - | Int, String -> 1 > - | String, Int -> -1 > -- > -- let sexp_of_t = function > -- | Switch -> Sexp.Atom "switch" > -- | Int -> Sexp.Atom "int" > -- | String -> Sexp.Atom "string" > -- > -- let t_of_sexp = function > -- | Sexp.Atom "switch" -> Switch > -- | Sexp.Atom "int" -> Int > -- | Sexp.Atom "string" -> String > -- | s -> raise (Sexp.Of_sexp_error (Failure "C_define.Type.t_of_sexp", > s)) > - end > - - module Value = struct > -@@ -316,28 +323,13 @@ module C_define = struct > - - let compare x y = > - match x, y with > -- | Switch x, Switch y -> Bool.compare x y > -- | Int x, Int y -> Int.compare x y > -+ | Switch x, Switch y -> compare x y > -+ | Int x, Int y -> compare x y > - | String x, String y -> String.compare x y > - | Switch _, (Int _ | String _) -> 1 > - | (Int _ | String _), Switch _ -> -1 > - | Int _, String _ -> 1 > - | String _, Int _ -> -1 > -- > -- let sexp_of_t = > -- let open Sexp in > -- function > -- | Switch b -> List [Atom "switch"; Bool.sexp_of_t b] > -- | Int i -> List [Atom "int"; Int.sexp_of_t i] > -- | String s -> List [Atom "string"; String.sexp_of_t s] > -- > -- let t_of_sexp = > -- let open Sexp in > -- function > -- | List [Atom "switch"; x] -> Switch (Bool.t_of_sexp x) > -- | List [Atom "int"; x] -> Int (Int.t_of_sexp x) > -- | List [Atom "string"; x] -> String (String.t_of_sexp x) > -- | s -> raise (Sexp.Of_sexp_error (Failure "C_define.Value.t_of_sexp", > s)) > - end > - - let import t ?c_flags ?link_flags ~includes vars = > -@@ -367,13 +359,21 @@ module C_define = struct > - | Error () -> die "failed to compile program" > - | Ok exe -> > - run_capture_exn t ~dir:(Fn.dirname exe) (command_line exe []) > -- |> String.split_lines > -+ |> split_lines > - |> List.map ~f:(fun s : (string * Value.t) -> > -- let var, data = String.lsplit2_exn s ~on:'=' in > -+ let split s c = > -+ let pos = String.index s c in > -+ String.sub s ~pos:0 ~len:pos, > -+ String.sub s ~pos:(pos+1) ~len:(String.length s - pos - 1) > -+ in > -+ let var, data = split s '=' in > - (var, > -- match String.lsplit2_exn data ~on:':' with > -- | "b", s -> Switch (Bool.of_string s) > -- | "i", s -> Int (Int. of_string s) > -+ match split data ':' with > -+ | "b", s -> Switch (match s with > -+ | "true" | "yes" -> true > -+ | "false" | "no" -> false > -+ |_ -> invalid_arg ("expected boolean, but got " ^ s)) > -+ | "i", s -> Int (int_of_string s) > - | "s", s -> String s > - | _ -> assert false)) > - -@@ -383,11 +383,11 @@ module C_define = struct > - | Some v -> v > - | None -> > - String.map (t.name ^ "_" ^ Fn.basename fname) ~f:(function > -- | 'a'..'z' as c -> Char.uppercase c > -+ | 'a'..'z' as c -> int_of_char c + 32 |> char_of_int > - | 'A'..'Z' | '0'..'9' as c -> c > - | _ -> '_') > - in > -- let vars = List.sort vars ~compare:(fun (a, _) (b, _) -> String.compare > a b) in > -+ let vars = List.sort vars ~cmp:(fun (a, _) (b, _) -> String.compare a > b) in > - let lines = > - List.map vars ~f:(fun (name, value) -> > - match (value : Value.t) with > -@@ -408,7 +408,9 @@ module C_define = struct > - logf t "writing header file %s" fname; > - List.iter lines ~f:(logf t " | %s"); > - let tmp_fname = fname ^ ".tmp" in > -- Out_channel.write_lines tmp_fname lines; > -+ let chan = open_out tmp_fname in > -+ List.iter lines ~f:(fun s -> output_string chan s; output_char chan > '\n'); > -+ close_out chan; > - Sys.rename tmp_fname fname > - end > - -@@ -419,7 +421,7 @@ let find_in_path t prog = > - logf t "-> %s" > - (match x with > - | None -> "not found" > -- | Some fn -> "found: " ^ quote fn); > -+ | Some fn -> "found: " ^ Fn.quote fn); > - x > - - module Pkg_config = struct > -@@ -429,8 +431,8 @@ module Pkg_config = struct > - } > - - let get c = > -- Option.map (find_in_path c "pkg-config") ~f:(fun pkg_config -> > -- { pkg_config; configurator = c }) > -+ match find_in_path c "pkg-config" with None -> None > -+ | Some pkg_config -> Some { pkg_config; configurator = c } > - - type package_conf = > - { libs : string list > -@@ -438,8 +440,8 @@ module Pkg_config = struct > - } > - - let query t ~package = > -- let package = quote package in > -- let pkg_config = quote t.pkg_config in > -+ let package = Fn.quote package in > -+ let pkg_config = Fn.quote t.pkg_config in > - let c = t.configurator in > - let dir = c.dest_dir in > - let env = > -@@ -448,10 +450,10 @@ module Pkg_config = struct > - match find_in_path c "brew" with > - | Some brew -> > - let prefix = > -- String.strip (run_capture_exn c ~dir (command_line brew > ["--prefix"])) > -+ String.trim (run_capture_exn c ~dir (command_line brew > ["--prefix"])) > - in > - sprintf "env > PKG_CONFIG_PATH=%s/opt/%s/lib/pkgconfig:$PKG_CONFIG_PATH " > -- (quote prefix) package > -+ (Fn.quote prefix) package > - | None -> > - "" > - end > -@@ -460,11 +462,11 @@ module Pkg_config = struct > - if run_ok c ~dir (sprintf "%s%s %s" env pkg_config package) then > - let run what = > - match > -- String.strip > -+ String.trim > - (run_capture_exn c ~dir (sprintf "%s%s %s %s" env pkg_config > what package)) > - with > - | "" -> [] > -- | s -> String.split s ~on:' ' > -+ | s -> String.split_on_char s ~sep:' ' > - in > - Some > - { libs = run "--libs" > -@@ -503,9 +505,9 @@ let main ?(args=[]) ~name f = > - try > - f t > - with exn -> > -- List.iter (List.rev !log_db) ~f:(eprintf "%s\n"); > -+ List.iter (List.rev !log_db) ~f:(Printf.eprintf "%s\n"); > - match exn with > - | Fatal_error msg -> > -- eprintf "Error: %s\n%!" msg; > -- Caml.exit 1 > -+ Printf.eprintf "Error: %s\n%!" msg; > -+ exit 1 > - | exn -> raise exn > Index: devel/ocaml-configurator/patches/patch-src_configurator_mli > =================================================================== > RCS file: devel/ocaml-configurator/patches/patch-src_configurator_mli > diff -N devel/ocaml-configurator/patches/patch-src_configurator_mli > --- devel/ocaml-configurator/patches/patch-src_configurator_mli 4 Aug > 2019 18:54:39 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,42 +0,0 @@ > -$OpenBSD: patch-src_configurator_mli,v 1.1.1.1 2019/08/04 18:54:39 chrisz > Exp $ > - > -don't depend on janestreet base > - > -Index: src/configurator.mli > ---- src/configurator.mli.orig > -+++ src/configurator.mli > -@@ -1,5 +1,3 @@ > --open Base > -- > - type t > - - val create > -@@ -29,9 +27,6 @@ module C_define : sig > - | Int > - | String > - -- val sexp_of_t : t -> Sexp.t > -- val t_of_sexp : Sexp.t -> t > -- > - val compare : t -> t -> int > - end > - -@@ -41,9 +36,6 @@ module C_define : sig > - | Int of int > - | String of string > - -- val sexp_of_t : t -> Sexp.t > -- val t_of_sexp : Sexp.t -> t > -- > - val compare : t -> t -> int > - end > - -@@ -99,7 +91,7 @@ end with type configurator := t > - - (** Typical entry point for configurator programs *) > - val main > -- : ?args:(Caml.Arg.key * Caml.Arg.spec * Caml.Arg.doc) list > -+ : ?args:(Arg.key * Arg.spec * Arg.doc) list > - -> name:string > - -> (t -> unit) > - -> unit > Index: devel/ocaml-configurator/patches/patch-src_jbuild > =================================================================== > RCS file: devel/ocaml-configurator/patches/patch-src_jbuild > diff -N devel/ocaml-configurator/patches/patch-src_jbuild > --- devel/ocaml-configurator/patches/patch-src_jbuild 4 Aug 2019 18:54:39 > -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,16 +0,0 @@ > -$OpenBSD: patch-src_jbuild,v 1.1.1.1 2019/08/04 18:54:39 chrisz Exp $ > - > -don't depend on janestreet base > - > -Index: src/jbuild > ---- src/jbuild.orig > -+++ src/jbuild > -@@ -2,7 +2,7 @@ > - ((name configurator) > - (public_name configurator) > - (flags (:standard -safe-string)) > -- (libraries (base stdio unix)) > -+ (libraries (unix)) > - (preprocess no_preprocessing))) > - - Index: devel/ocaml-configurator/pkg/DESCR > =================================================================== > RCS file: devel/ocaml-configurator/pkg/DESCR > diff -N devel/ocaml-configurator/pkg/DESCR > --- devel/ocaml-configurator/pkg/DESCR 4 Aug 2019 18:54:39 -0000 > 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,9 +0,0 @@ > -Configurator is a small library that helps writing OCaml scripts that test > -features available on the system, in order to generate config.h files for > -instance. > - > -Configurator allows one to: > - * test if a C program compiles > - * query pkg-config > - * import #define from OCaml header files > - * generate config.h file > Index: devel/ocaml-configurator/pkg/PFRAG.dynlink-native > =================================================================== > RCS file: devel/ocaml-configurator/pkg/PFRAG.dynlink-native > diff -N devel/ocaml-configurator/pkg/PFRAG.dynlink-native > --- devel/ocaml-configurator/pkg/PFRAG.dynlink-native 4 Aug 2019 18:54:39 > -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,2 +0,0 @@ > -@comment $OpenBSD: PFRAG.dynlink-native,v 1.1.1.1 2019/08/04 18:54:39 chrisz > Exp $ > -lib/ocaml/configurator/configurator.cmxs > Index: devel/ocaml-configurator/pkg/PFRAG.native > =================================================================== > RCS file: devel/ocaml-configurator/pkg/PFRAG.native > diff -N devel/ocaml-configurator/pkg/PFRAG.native > --- devel/ocaml-configurator/pkg/PFRAG.native 4 Aug 2019 18:54:39 -0000 > 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,5 +0,0 @@ > -@comment $OpenBSD: PFRAG.native,v 1.1.1.1 2019/08/04 18:54:39 chrisz Exp $ > -%%dynlink%% > -lib/ocaml/configurator/configurator.a > -lib/ocaml/configurator/configurator.cmx > -lib/ocaml/configurator/configurator.cmxa > Index: devel/ocaml-configurator/pkg/PLIST > =================================================================== > RCS file: devel/ocaml-configurator/pkg/PLIST > diff -N devel/ocaml-configurator/pkg/PLIST > --- devel/ocaml-configurator/pkg/PLIST 4 Aug 2019 18:54:39 -0000 > 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,16 +0,0 @@ > -@comment $OpenBSD: PLIST,v 1.1.1.1 2019/08/04 18:54:39 chrisz Exp $ > -%%native%% > -lib/ocaml/configurator/ > -lib/ocaml/configurator/META > -lib/ocaml/configurator/configurator.cma > -lib/ocaml/configurator/configurator.cmi > -lib/ocaml/configurator/configurator.cmt > -lib/ocaml/configurator/configurator.cmti > -lib/ocaml/configurator/configurator.ml > -lib/ocaml/configurator/configurator.mli > -lib/ocaml/configurator/dune-package > -lib/ocaml/configurator/opam > -share/doc/ocaml-configurator/ > -share/doc/ocaml-configurator/configurator/ > -share/doc/ocaml-configurator/configurator/LICENSE.txt > -share/doc/ocaml-configurator/configurator/README.org > > > -- > http://gmerlin.de > OpenPGP: http://gmerlin.de/christopher.pub > CB07 DA40 B0B6 571D 35E2 0DEF 87E2 92A7 13E5 DEE1