From cb6dd25f8bae4a775dd5d7da527fbe39d7b5eb12 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Thu, 25 Apr 2024 00:02:10 +0200 Subject: [PATCH 1/7] Generate local and sample config out of Makefile This makes the config files generation compatible with a dune rule. --- configure | 36 +++++----- src/Makefile | 33 ++------- src/files/ocsigenserver.conf.in | 40 ----------- src/files/ocsigenserver.conf/dune | 3 + src/files/ocsigenserver.conf/gen.ml | 96 +++++++++++++++++++++++++ src/files/ocsigenserver.conf/options.ml | 12 ++++ 6 files changed, 133 insertions(+), 87 deletions(-) delete mode 100644 src/files/ocsigenserver.conf.in create mode 100644 src/files/ocsigenserver.conf/dune create mode 100644 src/files/ocsigenserver.conf/gen.ml create mode 100644 src/files/ocsigenserver.conf/options.ml diff --git a/configure b/configure index 5cedef2fd..0799b7120 100755 --- a/configure +++ b/configure @@ -80,6 +80,7 @@ set_defaults () { bindir="" logdir="" libdir="" + libdir_set=0 mandir="" docdir="" sysconfdir="/etc/ocsigenserver" @@ -282,6 +283,7 @@ while [ "$#" -gt 0 ]; do ;; --libdir) libdir="$2" + libdir_set=1 shift shift ;; @@ -485,32 +487,14 @@ CC := gcc # optional RLWRAP := $rlwrap - -### Options ### - -# User who will run Ocsigen server (not root) (eg, for debian, www-data) -# (This user must exist on your system) -OCSIGENUSER := $ocsigen_user - -# group who will run Ocsigen server (not root) (eg, for debian, www-data) -# (This group must exist) -OCSIGENGROUP := $ocsigen_group - - ### Paths ### # Temporary root directory to install the package (usually always "" but for package makers) TEMPROOT := $temproot -# The directory for ocsigen server (binary): -BINDIR := $root$bindir - # The directory for ocsigen manpage: MANDIR := $root$mandir -# Where to install the libraries -LIBDIR := $libdir - # ocsigen's logs: LOGDIR := $root$logdir @@ -538,6 +522,22 @@ SRC := $full_pwd include \$(SRC)/Makefile.options _EOF_ +echo "Writing config options" +cat <<_EOF_ > $my_pwd/src/files/ocsigenserver.conf/options.ml +let src = "$full_pwd" +let port = 80 +let bindir = "$root$bindir" +let libdir = "$libdir" +let libdir_set = $libdir_set +let logdir = "$root$logdir" +let configdir = "$root$sysconfdir" +let staticpagesdir = "$root$staticpagesdir" +let datadir = "$root$datadir" +let uploaddir = "$root$uploaddir" +let commandpipe = "$root$commandpipe" +let mimefile = "$root$sysconfdir/mime.types" +_EOF_ + ###################################################################### # Finish diff --git a/src/Makefile b/src/Makefile index f28b91bd9..c8aeb587e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -8,37 +8,12 @@ all: confs confs: ../ocsigenserver.conf.sample ../local/etc/ocsigenserver.conf ${MAKE} -C baselib confs -../ocsigenserver.conf.sample: files/ocsigenserver.conf.in ../Makefile.config Makefile - cat $< \ - | sed s%_LOGDIR_%$(LOGDIR)%g \ - | sed s%_DATADIR_%$(DATADIR)%g \ - | sed s%_COMMANDPIPE_%$(COMMANDPIPE)%g \ - | sed s%_MIMEFILE_%$(CONFIGDIR)/mime.types%g \ - | sed s%_METADIR_%$(LIBDIR)%g \ - | sed s%_LIBDIR_%$(LIBDIR)%g \ - | sed s%_EXTDIR_%$(LIBDIR)/ocsigenserver/extensions%g \ - | sed s%_CONFIGDIR_%$(CONFIGDIR)%g \ - | sed s%_STATICPAGESDIR_%$(STATICPAGESDIR)%g \ - | sed s%_EXTPACKAGENAME_%ocsigenserver.ext%g \ - > $@ +../ocsigenserver.conf.sample: files/ocsigenserver.conf/options.ml + dune exec -- files/ocsigenserver.conf/gen.exe > "$@" -../local/etc/ocsigenserver.conf: files/ocsigenserver.conf.in ../Makefile.config Makefile +../local/etc/ocsigenserver.conf: files/ocsigenserver.conf/options.ml mkdir -p ../local/etc ../local/var/log ../local/var/run - cat $< \ - | sed s%80\%8080\%g \ - | sed s%_LOGDIR_%$(SRC)/local/var/log%g \ - | sed s%_DATADIR_%$(SRC)/local/var/lib%g \ - | sed s%_COMMANDPIPE_%$(SRC)/local/var/run/ocsigenserver_command%g \ - | sed s%_MIMEFILE_%$(SRC)/src/files/mime.types%g \ - | sed s%_METADIR_%${LIBDIR}\"/\>\\\ --\>%\%g \ - | sed s%\<\!--\ \\ --\>%\%g \ - > $@ + dune exec -- files/ocsigenserver.conf/gen.exe local > "$@" ### diff --git a/src/files/ocsigenserver.conf.in b/src/files/ocsigenserver.conf.in deleted file mode 100644 index 8a5b50a61..000000000 --- a/src/files/ocsigenserver.conf.in +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - 80 - - _LOGDIR_ - _DATADIR_ - - - - utf-8 - - - - - - - - - - - - - - - - - - - - - diff --git a/src/files/ocsigenserver.conf/dune b/src/files/ocsigenserver.conf/dune new file mode 100644 index 000000000..c33a6c361 --- /dev/null +++ b/src/files/ocsigenserver.conf/dune @@ -0,0 +1,3 @@ +(executable + (name gen) + (libraries str unix)) diff --git a/src/files/ocsigenserver.conf/gen.ml b/src/files/ocsigenserver.conf/gen.ml new file mode 100644 index 000000000..f1bceeec8 --- /dev/null +++ b/src/files/ocsigenserver.conf/gen.ml @@ -0,0 +1,96 @@ +let conf_in = + {| + + + + + + + + _PORT_ + + _LOGDIR_ + _DATADIR_ + _OCSIGENUSER_ + _OCSIGENGROUP_ + _COMMANDPIPE_ + _MIMEFILE_ + + utf-8 + + _FINDLIBEXTRA_ + + + + + + + + + + + + + + + + + + +|} + +let interpolate f s = + let regexp = Str.regexp "_\\([A-Z]+\\)_" in + let f s = f (Str.matched_group 1 s) in + Str.global_substitute regexp f s + +open Options + +let libdir () = + if libdir_set = 0 + then ( + let inp = Unix.open_process_in "ocamlfind printconf destdir" in + let libdir = input_line inp in + ignore (Unix.close_process_in inp); + libdir) + else libdir + +let sample_options = function + | "PORT" -> string_of_int port + | "LOGDIR" -> logdir + | "DATADIR" -> datadir + | "COMMANDPIPE" -> "" + | "MIMEFILE" -> "" + | "LIBDIR" | "METADIR" -> libdir () + | "EXTPACKAGENAME" -> "ocsigenserver.ext" + | "CONFIGDIR" -> configdir + | "STATICPAGESDIR" -> staticpagesdir + | "FINDLIBEXTRA" -> "" + | s -> "_" ^ s ^ "_" + +let local_options = function + | "PORT" -> "8080" + | "LOGDIR" -> src ^ "/local/var/log" + | "DATADIR" -> src ^ "/local/var/lib" + | "COMMANDPIPE" -> + "" ^ src + ^ "/local/var/run/ocsigenserver_command" + | "MIMEFILE" -> "" ^ src ^ "/src/files/mime.types" + | "LIBDIR" | "METADIR" -> libdir () + | "EXTPACKAGENAME" -> "ocsigenserver.ext" + | "CONFIGDIR" -> src ^ "/local/etc/ocsigenserver" + | "STATICPAGESDIR" -> src ^ "/local/var/www" + | "FINDLIBEXTRA" -> + "" + | s -> "_" ^ s ^ "_" + +let () = + let arg = if Array.length Sys.argv > 1 then Sys.argv.(1) else "" in + let options = + match arg with "local" -> local_options | _ -> sample_options + in + print_endline (interpolate options conf_in) diff --git a/src/files/ocsigenserver.conf/options.ml b/src/files/ocsigenserver.conf/options.ml new file mode 100644 index 000000000..841499700 --- /dev/null +++ b/src/files/ocsigenserver.conf/options.ml @@ -0,0 +1,12 @@ +let src = "" +let port = 80 +let bindir = "" +let libdir = "" +let libdir_set = 0 +let logdir = "" +let configdir = "" +let staticpagesdir = "" +let datadir = "" +let uploaddir = "" +let commandpipe = "" +let mimefile = "" From acaf0d8c798c9e6a677c4773062a9928ae9d2219 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Fri, 26 Apr 2024 13:04:51 +0200 Subject: [PATCH 2/7] Generate static config out of Makefile This will allow to generate this file from a different build system. --- Makefile.options | 9 ---- configure | 1 + src/baselib/Makefile | 17 +----- src/files/ocsigenserver.conf/gen.ml | 71 ++++++++++++++++++++++--- src/files/ocsigenserver.conf/options.ml | 1 + 5 files changed, 67 insertions(+), 32 deletions(-) diff --git a/Makefile.options b/Makefile.options index a89718d54..698ab4b11 100644 --- a/Makefile.options +++ b/Makefile.options @@ -26,12 +26,3 @@ INCS= -I ${BLD}/server/.ocsigenserver.objs/byte \ SERVER_PACKAGE := lwt_ssl,bytes,lwt.unix,lwt_log,ipaddr,findlib,cryptokit,re,str,xml-light,dynlink,cohttp-lwt-unix LIBS := -package ${SERVER_PACKAGE} ${INCS} - -INITPACKAGE := \"$(shell ${OCAMLFIND} query -p-format -recursive \ - -separator '\";\"' ${SERVER_PACKAGE})\"; \ - \"ocsigenserver.polytables\"; \ - \"ocsigenserver.cookies\"; \ - \"ocsigenserver.baselib.base\"; \ - \"ocsigenserver.baselib\"; \ - \"ocsigenserver.http\"; \ - \"ocsigenserver\"; \ diff --git a/configure b/configure index 0799b7120..9545297aa 100755 --- a/configure +++ b/configure @@ -524,6 +524,7 @@ _EOF_ echo "Writing config options" cat <<_EOF_ > $my_pwd/src/files/ocsigenserver.conf/options.ml +let version = "$version" let src = "$full_pwd" let port = 80 let bindir = "$root$bindir" diff --git a/src/baselib/Makefile b/src/baselib/Makefile index 0165bb25b..88ec1e9e7 100644 --- a/src/baselib/Makefile +++ b/src/baselib/Makefile @@ -14,21 +14,8 @@ confs: ocsigen_config_static.ml VERSION := $(shell head -n 1 ../../VERSION) -ocsigen_config_static.ml: ocsigen_config_static.ml.in ../../Makefile.config ../../Makefile.options ../../VERSION - cat ocsigen_config_static.ml.in \ - | sed s%_VERSION_%${VERSION}% \ - | sed s%_WARNING_%"Warning: this file has been generated from ocsigen_config_static.ml.in - DO NOT MODIFY MANUALLY!"% \ - | sed s%_LOGDIR_%$(LOGDIR)% \ - | sed s%_DATADIR_%$(DATADIR)%g \ - | sed s%_BINDIR_%$(BINDIR)%g \ - | sed s%_EXTDIR_%$(LIBDIR)/ocsigenserver/extensions%g \ - | sed s%_STATICPAGESDIR_%$(STATICPAGESDIR)% \ - | sed s%_UP_%$(UPLOADDIR)%g \ - | sed s%_COMMANDPIPE_%$(COMMANDPIPE)%g \ - | sed s%_CONFIGDIR_%$(CONFIGDIR)% \ - | sed s%_ISNATIVE_%$(NATIVECODE_RUNTIME_DETECT)%g \ - | sed "s%_DEPS_%$(INITPACKAGE)%g" \ - > ocsigen_config_static.ml +ocsigen_config_static.ml: ../files/ocsigenserver.conf/options.ml + dune exec -- ../files/ocsigenserver.conf/gen.exe static.ml > "$@" ## Clean up diff --git a/src/files/ocsigenserver.conf/gen.ml b/src/files/ocsigenserver.conf/gen.ml index f1bceeec8..c6e6f0a7a 100644 --- a/src/files/ocsigenserver.conf/gen.ml +++ b/src/files/ocsigenserver.conf/gen.ml @@ -13,8 +13,6 @@ let conf_in = _LOGDIR_ _DATADIR_ - _OCSIGENUSER_ - _OCSIGENGROUP_ _COMMANDPIPE_ _MIMEFILE_ @@ -42,6 +40,23 @@ let conf_in = |} +let conf_ml = + {| +let version_number = "_VERSION_" +let config_file = ref "_CONFIGDIR_/ocsigenserver.conf" +let is_native = Sys.backend_type = Sys.Native +let logdir = ref (Some "_LOGDIR_") +let mimefile = ref "_CONFIGDIR_/mime.types" +let datadir = ref "_DATADIR_" +let bindir = ref "_BINDIR_" +let extdir = ref "_EXTDIR_" +let command_pipe = ref "_COMMANDPIPE_" +let builtin_packages = + List.fold_left + (fun a s -> Ocsigen_lib.String.Set.add s a) + Ocsigen_lib.String.Set.empty + [_DEPS_]|} + let interpolate f s = let regexp = Str.regexp "_\\([A-Z]+\\)_" in let f s = f (Str.matched_group 1 s) in @@ -58,6 +73,44 @@ let libdir () = libdir) else libdir +let deps () = + let extra_deps = + [ "ocsigenserver.polytables" + ; "ocsigenserver.cookies" + ; "ocsigenserver.baselib.base" + ; "ocsigenserver.baselib" + ; "ocsigenserver.http" + ; "ocsigenserver" ] + in + let packages = + "lwt_ssl,bytes,lwt.unix,lwt_log,ipaddr,findlib,cryptokit,re,str,xml-light,dynlink,cohttp-lwt-unix,hmap" + in + let inp = + Unix.open_process_in ("ocamlfind query -p-format -recursive " ^ packages) + in + let deps = ref [] in + (try + while true do + deps := input_line inp :: !deps + done + with End_of_file -> ()); + ignore (Unix.close_process_in inp); + !deps @ extra_deps + +let static_options = function + | "VERSION" -> version + | "WARNING" -> "Warning: this file has been generated - DO NOT MODIFY!" + | "LOGDIR" -> logdir + | "DATADIR" -> datadir + | "BINDIR" -> bindir + | "EXTDIR" -> libdir () ^ "/ocsigenserver/extensions" + | "STATICPAGESDIR" -> staticpagesdir + | "UP" -> uploaddir + | "COMMANDPIPE" -> commandpipe + | "CONFIGDIR" -> configdir + | "DEPS" -> String.concat ";" (List.map (Format.asprintf "%S") (deps ())) + | _ as s -> failwith s + let sample_options = function | "PORT" -> string_of_int port | "LOGDIR" -> logdir @@ -69,7 +122,7 @@ let sample_options = function | "CONFIGDIR" -> configdir | "STATICPAGESDIR" -> staticpagesdir | "FINDLIBEXTRA" -> "" - | s -> "_" ^ s ^ "_" + | _ as s -> failwith s let local_options = function | "PORT" -> "8080" @@ -86,11 +139,13 @@ let local_options = function | "FINDLIBEXTRA" -> "" - | s -> "_" ^ s ^ "_" + | _ as s -> failwith s let () = let arg = if Array.length Sys.argv > 1 then Sys.argv.(1) else "" in - let options = - match arg with "local" -> local_options | _ -> sample_options - in - print_endline (interpolate options conf_in) + print_endline + @@ + match arg with + | "static.ml" -> interpolate static_options conf_ml + | "local" -> interpolate local_options conf_in + | _ -> interpolate sample_options conf_in diff --git a/src/files/ocsigenserver.conf/options.ml b/src/files/ocsigenserver.conf/options.ml index 841499700..263688f24 100644 --- a/src/files/ocsigenserver.conf/options.ml +++ b/src/files/ocsigenserver.conf/options.ml @@ -1,3 +1,4 @@ +let version = "dev" let src = "" let port = 80 let bindir = "" From cad740aa973395ff808168996a1766e06e26564c Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Fri, 26 Apr 2024 13:21:20 +0200 Subject: [PATCH 3/7] dune: Generate static configs and promote sample configs ocsigen_config_static.ml is generated from a dune rule and automatically registered into the library. ocsigenserver.conf.sample and local/etc/ocsigenserver.conf are generated and promoted into the worktree with dune rules. Dependencies are computed from Dune. For example, changing the generator script or changing options.ml with ./configure will trigger a rebuild. --- dune | 20 ++++++++++++++++++++ src/Makefile | 24 +++--------------------- src/baselib/Makefile | 13 +------------ src/baselib/dune | 5 +++++ src/files/ocsigenserver.conf/gen.ml | 3 ++- 5 files changed, 31 insertions(+), 34 deletions(-) diff --git a/dune b/dune index f749468dd..3d84af83d 100644 --- a/dune +++ b/dune @@ -2,3 +2,23 @@ (_ (flags (:standard -w -69)))) + +(rule + (mode + (promote (until-clean))) + (target ocsigenserver.conf.sample) + (action + (with-stdout-to + %{target} + (run src/files/ocsigenserver.conf/gen.exe sample)))) + +(subdir + local/etc + (rule + (mode + (promote (until-clean))) + (target ocsigenserver.conf) + (action + (with-stdout-to + %{target} + (run ../../src/files/ocsigenserver.conf/gen.exe local))))) diff --git a/src/Makefile b/src/Makefile index c8aeb587e..40e2774b7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,33 +1,17 @@ include ../Makefile.config -all: confs +all: dune build @all ### CONF #### -confs: ../ocsigenserver.conf.sample ../local/etc/ocsigenserver.conf - ${MAKE} -C baselib confs - -../ocsigenserver.conf.sample: files/ocsigenserver.conf/options.ml - dune exec -- files/ocsigenserver.conf/gen.exe > "$@" - -../local/etc/ocsigenserver.conf: files/ocsigenserver.conf/options.ml - mkdir -p ../local/etc ../local/var/log ../local/var/run - dune exec -- files/ocsigenserver.conf/gen.exe local > "$@" - ### -clean: clean.local +clean: ${MAKE} -C baselib clean dune clean -clean.local: - -rm -f ../ocsigenserver.conf.sample - -rm -f ../ocsigenserver.conf.opt.sample - -rm -f ../ocsigenserver.conf.local - -rm -f ../ocsigenserver.conf.opt.local - -distclean: clean.local +distclean: ${MAKE} -C baselib distclean ${MAKE} -C http distclean ${MAKE} -C server distclean @@ -36,5 +20,3 @@ distclean: clean.local -cd files; rm -f *~ \#* .\#* -rm -fr ../local/var/log/*.log -rm -fr ../local/var/lib/ocsidb - -rm -fr ../local/etc/ocsigenserver.conf - -rm -fr ../local/etc/ocsigenserver.conf.opt diff --git a/src/baselib/Makefile b/src/baselib/Makefile index 88ec1e9e7..43ae55acd 100644 --- a/src/baselib/Makefile +++ b/src/baselib/Makefile @@ -4,23 +4,12 @@ include ../../Makefile.config default: build .PHONY: build -build: confs +build: dune build -.PHONY: confs -confs: ocsigen_config_static.ml - -## Ocsigen_config ## - -VERSION := $(shell head -n 1 ../../VERSION) - -ocsigen_config_static.ml: ../files/ocsigenserver.conf/options.ml - dune exec -- ../files/ocsigenserver.conf/gen.exe static.ml > "$@" - ## Clean up clean: - -rm -f ocsigen_config_static.ml distclean: clean -rm -f *~ \#* .\#* diff --git a/src/baselib/dune b/src/baselib/dune index 37d2e2281..c9f64d100 100644 --- a/src/baselib/dune +++ b/src/baselib/dune @@ -32,3 +32,8 @@ from (dynlink -> dynlink_wrapper.natdynlink.ml) (_ -> dynlink_wrapper.nonatdynlink.ml)))) + +(rule + (with-stdout-to + ocsigen_config_static.ml + (run ../files/ocsigenserver.conf/gen.exe static.ml))) diff --git a/src/files/ocsigenserver.conf/gen.ml b/src/files/ocsigenserver.conf/gen.ml index c6e6f0a7a..67835bf10 100644 --- a/src/files/ocsigenserver.conf/gen.ml +++ b/src/files/ocsigenserver.conf/gen.ml @@ -148,4 +148,5 @@ let () = match arg with | "static.ml" -> interpolate static_options conf_ml | "local" -> interpolate local_options conf_in - | _ -> interpolate sample_options conf_in + | "sample" -> interpolate sample_options conf_in + | _ -> failwith arg From 7c3ba04628a331df1d236d6af9f2a8678ffc2861 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Fri, 26 Apr 2024 13:29:00 +0200 Subject: [PATCH 4/7] Remove intermediate Makefiles in src/ Only src/server/Makefile remains. --- Makefile | 8 +++++--- ocsigenserver.opam | 1 - ocsigenserver.opam.template | 1 - src/Makefile | 22 ---------------------- src/baselib/Makefile | 15 --------------- src/extensions/Makefile | 14 -------------- src/http/Makefile | 11 ----------- 7 files changed, 5 insertions(+), 67 deletions(-) delete mode 100644 src/Makefile delete mode 100644 src/baselib/Makefile delete mode 100644 src/extensions/Makefile delete mode 100644 src/http/Makefile diff --git a/Makefile b/Makefile index 02b5bec4c..363679cfd 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,8 @@ default all: build .PHONY: build build: - ${MAKE} -C src + dune build + ${MAKE} -C src/server build doc: $(MAKE) -C doc @@ -28,13 +29,14 @@ top: ### Cleaning ### clean: clean.local - ${MAKE} -C src clean + ${MAKE} -C src/server clean clean.local: + dune clean -rm -f ocsigenserver-*.tar.gz distclean: clean.local - ${MAKE} -C src distclean + ${MAKE} -C src/server distclean -make -C doc clean -rm Makefile.config -rm -f *~ \#* .\#* diff --git a/ocsigenserver.opam b/ocsigenserver.opam index 14db6226f..7bf573af9 100644 --- a/ocsigenserver.opam +++ b/ocsigenserver.opam @@ -61,7 +61,6 @@ build: [ "--sysconfdir" "%{lib}%/ocsigenserver/etc/ocsigenserver" ] - [make "-C" "src" "confs"] ["dune" "build" "-p" name "-j" jobs] ] install:[make "install.files"] diff --git a/ocsigenserver.opam.template b/ocsigenserver.opam.template index 09d8559d2..85f63d47b 100644 --- a/ocsigenserver.opam.template +++ b/ocsigenserver.opam.template @@ -27,7 +27,6 @@ build: [ "--sysconfdir" "%{lib}%/ocsigenserver/etc/ocsigenserver" ] - [make "-C" "src" "confs"] ["dune" "build" "-p" name "-j" jobs] ] install:[make "install.files"] diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 40e2774b7..000000000 --- a/src/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -include ../Makefile.config - -all: - dune build @all - -### CONF #### - -### - -clean: - ${MAKE} -C baselib clean - dune clean - -distclean: - ${MAKE} -C baselib distclean - ${MAKE} -C http distclean - ${MAKE} -C server distclean - ${MAKE} -C extensions distclean - -rm -f *~ \#* .\#* - -cd files; rm -f *~ \#* .\#* - -rm -fr ../local/var/log/*.log - -rm -fr ../local/var/lib/ocsidb diff --git a/src/baselib/Makefile b/src/baselib/Makefile deleted file mode 100644 index 43ae55acd..000000000 --- a/src/baselib/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -include ../../Makefile.config - -.PHONY: default -default: build - -.PHONY: build -build: - dune build - -## Clean up - -clean: - -distclean: clean - -rm -f *~ \#* .\#* diff --git a/src/extensions/Makefile b/src/extensions/Makefile deleted file mode 100644 index 28dbae0ff..000000000 --- a/src/extensions/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -include ../../Makefile.config - -.PHONY: default -default: build - -.PHONY: build -build:: - dune build - -## Clean up - -distclean: clean - -rm -f *~ \#* .\#* - ${MAKE} -C deflatemod distclean diff --git a/src/http/Makefile b/src/http/Makefile deleted file mode 100644 index 4520a8aef..000000000 --- a/src/http/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -.PHONY: default -default: build - -.PHONY: build -build: - dune build - -## Clean up - -distclean: clean - -rm -f *~ \#* .\#* From 55ffc154097b1ca4840ba9c6fc658272b6ff5aa3 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Tue, 25 Mar 2025 16:14:18 +0100 Subject: [PATCH 5/7] Fix ocsigen_config_static.ml on Windows --- src/files/ocsigenserver.conf/gen.ml | 44 ++++++++++++++++------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/src/files/ocsigenserver.conf/gen.ml b/src/files/ocsigenserver.conf/gen.ml index 67835bf10..8976b2fb4 100644 --- a/src/files/ocsigenserver.conf/gen.ml +++ b/src/files/ocsigenserver.conf/gen.ml @@ -41,16 +41,17 @@ let conf_in = |} let conf_ml = - {| -let version_number = "_VERSION_" -let config_file = ref "_CONFIGDIR_/ocsigenserver.conf" + {|(* Warning: this file has been generated - DO NOT MODIFY! *) + +let version_number = _VERSION_ +let config_file = ref _CONFIGFILE_ let is_native = Sys.backend_type = Sys.Native -let logdir = ref (Some "_LOGDIR_") -let mimefile = ref "_CONFIGDIR_/mime.types" -let datadir = ref "_DATADIR_" -let bindir = ref "_BINDIR_" -let extdir = ref "_EXTDIR_" -let command_pipe = ref "_COMMANDPIPE_" +let logdir = ref (Some _LOGDIR_) +let mimefile = ref _MIMEFILE_ +let datadir = ref _DATADIR_ +let bindir = ref _BINDIR_ +let extdir = ref _EXTDIR_ +let command_pipe = ref _COMMANDPIPE_ let builtin_packages = List.fold_left (fun a s -> Ocsigen_lib.String.Set.add s a) @@ -97,17 +98,22 @@ let deps () = ignore (Unix.close_process_in inp); !deps @ extra_deps +(* Encode a string as a string literal that can be included in an ocaml file. *) +let str = Printf.sprintf "%S" +let ( // ) = Filename.concat + let static_options = function - | "VERSION" -> version - | "WARNING" -> "Warning: this file has been generated - DO NOT MODIFY!" - | "LOGDIR" -> logdir - | "DATADIR" -> datadir - | "BINDIR" -> bindir - | "EXTDIR" -> libdir () ^ "/ocsigenserver/extensions" - | "STATICPAGESDIR" -> staticpagesdir - | "UP" -> uploaddir - | "COMMANDPIPE" -> commandpipe - | "CONFIGDIR" -> configdir + | "VERSION" -> str version + | "LOGDIR" -> str logdir + | "DATADIR" -> str datadir + | "BINDIR" -> str bindir + | "EXTDIR" -> str (libdir () // "ocsigenserver" // "extensions") + | "STATICPAGESDIR" -> str staticpagesdir + | "UP" -> str uploaddir + | "COMMANDPIPE" -> str commandpipe + | "CONFIGDIR" -> str configdir + | "CONFIGFILE" -> str (configdir // "ocsigenserver.conf") + | "MIMEFILE" -> str (configdir // "mime.types") | "DEPS" -> String.concat ";" (List.map (Format.asprintf "%S") (deps ())) | _ as s -> failwith s From b4dece98729800c8790fec0ef2a54929ecf58421 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Mon, 7 Apr 2025 15:13:46 +0200 Subject: [PATCH 6/7] Fix install rule for ocsigenserver.conf.sample --- Makefile | 4 ++-- dune | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 363679cfd..247f12755 100644 --- a/Makefile +++ b/Makefile @@ -78,9 +78,9 @@ install.files: @echo INSTALL_CAN_PUT_PERMISSIONS: ${INSTALL_CAN_PUT_PERMISSIONS} ## Configuration files $(INSTALL) -m ${INSTALL_MOD_755} -d $(TEMPROOT)$(CONFIGDIR)/conf.d - ${INSTALL} -m ${INSTALL_MOD_644} ocsigenserver.conf.sample $(TEMPROOT)$(CONFIGDIR)/ + ${INSTALL} -m ${INSTALL_MOD_644} _build/install/default/etc/ocsigenserver/ocsigenserver.conf.sample $(TEMPROOT)$(CONFIGDIR)/ [ -f $(TEMPROOT)$(CONFIGDIR)/ocsigenserver.conf ] || \ - { $(INSTALL) -m ${INSTALL_MOD_644} ocsigenserver.conf.sample \ + { $(INSTALL) -m ${INSTALL_MOD_644} _build/install/default/etc/ocsigenserver/ocsigenserver.conf.sample \ $(TEMPROOT)$(CONFIGDIR)/ocsigenserver.conf; } -mv $(TEMPROOT)$(CONFIGDIR)/mime.types $(TEMPROOT)$(CONFIGDIR)/mime.types.old ## Log directory diff --git a/dune b/dune index 3d84af83d..791d2fe2b 100644 --- a/dune +++ b/dune @@ -4,14 +4,17 @@ (:standard -w -69)))) (rule - (mode - (promote (until-clean))) (target ocsigenserver.conf.sample) (action (with-stdout-to %{target} (run src/files/ocsigenserver.conf/gen.exe sample)))) +(install + (files ocsigenserver.conf.sample) + (section etc) + (package ocsigenserver)) + (subdir local/etc (rule From 5e6577abc3b0b51b81e6d98dc58b001a1340b051 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Tue, 8 Apr 2025 14:28:36 +0200 Subject: [PATCH 7/7] Make sure the build rule builds _build/install --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 247f12755..db440fa4f 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ default all: build .PHONY: build build: - dune build + dune build -p ocsigenserver ${MAKE} -C src/server build doc: $(MAKE) -C doc