From 31775614faa3969ced065750bd93d0081f11216f Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 7 May 2024 10:23:43 -0400 Subject: READMEs & additional copyright (as sisudoc-spine) --- README.md | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..7bc70b8 --- /dev/null +++ b/README.md @@ -0,0 +1,136 @@ +project_name: sisudoc-spine-search + + description: [ + "documents, structuring, processing, publishing", + search, + object numbering, + cgi search form for static content generator, + sisu markup + ] + + author: + name: Ralph Amissah + email: ralph.amissah@gmail.com + + copyright: "(C) 2015 - 2024 Ralph Amissah, All Rights Reserved." + + license: "AGPL 3 or later" + + homepage: [ + "https://www.sisudoc.org", + "https://www.doc-reform.org" + ] + +## Build Configuration + + + +## Installation, Compilation + +Development of sisudoc-spine started in 2015 on a Debian linux box. + +Development since 2020 has been on a NixOS linux box, my laptop. If you are +fortunate enough to be using the same the build instructions should be presented +on entering the sisudoc-spine directory. It should be little problem building on +other linuxes with the right dependencies. At one time, debconf-18 I was +persuaded to try meson, and for a couple of years maintained a meson build, that +dropped out of use before or on my making the switch to nixos in 2020. + +❯❯ D compiler and build manager + +SiSU spine is written in the programming language D for which there are 3 +compilers: dmd, ldc, gdc +- https://wiki.dlang.org/Compilers + +D projects tend to use dub as project manager +- https://code.dlang.org/packages/dub +- https://github.com/dlang/dub/blob/master/source/dub/commandline.d + +The default build tools used are dub with ldc2 (dub is also tested) + +## make a directory and clone the sisudoc-spine project + + mkdir ~/git.sisudoc + cd ~/git.sisudoc + + git clone git://git.sisudoc.org/software/sisudoc-spine && \ + git clone git://git.sisudoc.org/software/sisudoc-spine-search-cgi && \ + git clone git://git.sisudoc.org/markup/sisudoc-spine-samples + +such a relative directory layout will be assumed in the examples that provided + +all work in this installation of sisudoc-spine-search-cgi will take place in the +directory: sisudoc-spine-search-cgi + +## build sisudoc-spine + +NOTE all actions to build sisudoc-spine are taken within the directory +sisudoc-spine-search-cgi + +cd sisudoc-spine-search-cgi + +## directly with dub +### ldc2 + # on nix (get dependencies by setting your development environment): + nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh + + dub run --compiler=ldmd2 --config=ldmd2 --combined --skip-registry=all + dub --compiler=ldmd2 --config=ldmd2 + + dub run --compiler=ldc2 --config=ldc2 --combined --skip-registry=all + dub --compiler=ldc2 --config=ldc2 + +### dmd + # on nix (get dependencies by setting your development environment): + nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh + + dub run --compiler=dmd --config=dmd --combined --skip-registry=all + dub --compiler=dmd --config=dmd + +## with make + +### ldc2 + + make ldc + +### dmd + + make dmd + +## with nix on linux / nixos + +### ldc2 + + nix build ".#spine-search-nixpkgs-ldc" --print-build-logs + # or + nix build ".#spine-search-overlay-ldc" --print-build-logs + +### dmd + + nix build ".#spine-search-nixpkgs-dmd" --print-build-logs + # or + nix build ".#spine-search-overlay-dmd" --print-build-logs + +## the Meson build system was used briefly + +On recommendation at debconf-18 meson was used briefly. It has neither been +tested nor used since the move to nix. + +- https://mesonbuild.com/ + + meson + ninja -C build + meson setup --wipe build && ninja -v -C build + make meson + +dub --force --compiler=ldc2 && sudo cp -v cgi-bin/spine-search /usr/lib/cgi-bin/. + +# Commands + +For commands to populate the db to be searched by sisudoc-spine-search-cgi see +the README in sisudoc-spine and/or sisudoc-spine-samples + +However, a number of command instructions provided will not work unless the +sqlite db has been initialised and like the web content, this the sqlite databse +will not be found by sisudoc-spine-search-cgi unless it is placed where the +web-server is configured to find it. -- cgit v1.2.3