From 9876842de60c9c0d94b47a2589623d235607050c Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Wed, 22 May 2024 16:21:53 -0400 Subject: README, further note on using nix for installation - built on Debian using nix - (first time usiing nix on a system other than NixOS) --- org/spine_info.org | 126 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 72 insertions(+), 54 deletions(-) (limited to 'org/spine_info.org') diff --git a/org/spine_info.org b/org/spine_info.org index 9df90c6..f0e8d7c 100644 --- a/org/spine_info.org +++ b/org/spine_info.org @@ -47,6 +47,14 @@ <> +,*** build using nix flakes on linux (binary in ./result/bin) + +<> + +,*** build using dub directly (binary in ./bin) + +<> + ,* Commands - document processing examples ,** basic output @@ -130,7 +138,7 @@ #+HEADER: :tangle "../README.md" #+HEADER: :noweb yes -#+BEGIN_SRC text +#+BEGIN_SRC markdown <> # Summary @@ -150,6 +158,14 @@ <> +### build using nix flakes on linux (binary in ./result/bin) + +<> + +### build using dub directly (binary in ./bin) + +<> + # Commands - document processing examples ## basic output @@ -289,68 +305,65 @@ all work in this installation of and use of sisudoc-spine will take place in the directory: sisudoc-spine #+END_SRC -*** install build project +*** install & build project +**** install & build project #+NAME: sisudoc_spine_README_install_build #+BEGIN_SRC text NOTE all actions to build sisudoc-spine are taken within the directory sisudoc-spine -cd sisudoc-spine - -to build directly with dub, either: - -for ldc2: - # on nix (get dependencies by setting your development environment): - nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh +NOTE: +- if dub is used to build, the resulting binary should be located in ./bin: +- if "nix build" is used the resulting binary should be in ./result/bin - # assuming you have ldc2 & dub installed on your system: - 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 - -for dmd: - # on nix (get dependencies by setting your development environment): - nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh - - # assuming you have dmd & dub installed on your system: - dub run --compiler=dmd --config=dmd --combined --skip-registry=all - dub --compiler=dmd --config=dmd +cd sisudoc-spine +#+END_SRC -to build with make using the provided makefile, (assuming you have the named -compiler and dub installed on your system) either: +**** install build project using nix flakes -for ldc2: +#+NAME: sisudoc_spine_README_install_build_using_nix_flakes +#+BEGIN_SRC text +you need to have nix installed on your system, and to have nix flakes enabled, +on Debian for example, you would do the following: - make ldc +sudo apt install nix -for dmd: +create the file in the given path & filename: ~/.config/nix/nix.conf +with the following content: experimental-features = flakes nix-command - make dmd +which can be achieved thusly: -to build using nix flakes on linux / nixos +mkdir -p ~/.config/nix && echo "experimental-features = flakes nix-command" >> ~/.config/nix/nix.conf -for ldc2: +- to use the D compiler ldc2: nix build ".#spine-nixpkgs-ldc" --print-build-logs -for dmd: +- to use the D compiler dmd: nix build ".#spine-nixpkgs-dmd" --print-build-logs +#+END_SRC -The Meson build system was used briefly to build spine, but the spine build -tooling for Meson has not been updated, maintained or tested in recent years. +**** install build project using dub directly - meson - ninja -C build - meson setup --wipe build && ninja -v -C build - make meson +#+NAME: sisudoc_spine_README_install_build_using_dub_directly +#+BEGIN_SRC text +- to use the D compiler ldc2: + # on nix (get dependencies by setting your development environment): + nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh + + # assuming you have ldc2 & dub installed on your system: + dub run --compiler=ldmd2 --config=ldmd2 --combined --skip-registry=all + or + dub run --compiler=ldc2 --config=ldc2 --combined --skip-registry=all -- https://mesonbuild.com/ +- to use the D compiler dmd: + # on nix (get dependencies by setting your development environment): + nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh -dub --force --compiler=ldc2 && sudo cp -v cgi-bin/spine-search /usr/lib/cgi-bin/. + # assuming you have dmd & dub installed on your system: + dub run --compiler=dmd --config=dmd --combined --skip-registry=all #+END_SRC ** commands @@ -361,10 +374,15 @@ dub --force --compiler=ldc2 && sudo cp -v cgi-bin/spine-search /usr/lib/cgi-bin/ For the most basic output you will need to specify: - the spine binary (executable) + - for dub builds ./bin/spine (also used filenames: spine-dmd & spine-ldc) + - for nix flake builds ./result/bin/spine + - the (recognized) path to a prepared (spine marked up) document or document collection -- the (path to) where the output is to be placed -- the output types you seek + +- the output types you seek, e.g. --html --epub + +- the (path for) where the generated output is to be placed export SpineBIN=./result/bin/spine export SpinePOD=../sisudoc-spine-samples/markup/pod @@ -855,7 +873,7 @@ webserv: #+HEADER: :tangle "../COPYRIGHT" #+HEADER: :noweb yes -#+BEGIN_SRC txt +#+BEGIN_SRC text - Name: spine - SiSU Spine, Doc Reform <> @@ -872,7 +890,7 @@ webserv: #+HEADER: :tangle "../org/COPYRIGHT" #+HEADER: :noweb yes -#+BEGIN_SRC txt +#+BEGIN_SRC text - Name: spine - SiSU Spine, Doc Reform <> @@ -889,7 +907,7 @@ webserv: #+HEADER: :tangle "../src/COPYRIGHT" #+HEADER: :noweb yes -#+BEGIN_SRC txt +#+BEGIN_SRC text - Name: spine - SiSU Spine, Doc Reform <> @@ -906,7 +924,7 @@ webserv: #+HEADER: :tangle "../src/sisudoc/COPYRIGHT" #+HEADER: :noweb yes -#+BEGIN_SRC txt +#+BEGIN_SRC text - Name: spine - SiSU Spine, Doc Reform <> @@ -929,7 +947,7 @@ webserv: #+HEADER: :tangle "./COPYRIGHT" #+HEADER: :noweb yes -#+BEGIN_SRC txt +#+BEGIN_SRC text - Name: spine - SiSU Spine, Doc Reform <> @@ -942,7 +960,7 @@ webserv: #+HEADER: :NO-tangle "../doc/COPYRIGHT" #+HEADER: :noweb yes -#+BEGIN_SRC txt +#+BEGIN_SRC text <> #+END_SRC @@ -950,7 +968,7 @@ webserv: *** copyright #+NAME: sisudoc_spine_copyright -#+BEGIN_SRC txt +#+BEGIN_SRC text - Description: documents, structuring, processing, publishing, search - static content generator @@ -964,7 +982,7 @@ webserv: **** AGPLv3 #+NAME: sisudoc_spine_license_agpl3 -#+BEGIN_SRC txt +#+BEGIN_SRC text - code under src/* src/sisudoc/* - License: AGPL 3 or later: @@ -995,7 +1013,7 @@ webserv: *** spine_summary #+NAME: sisudoc_spine_summary -#+BEGIN_SRC txt +#+BEGIN_SRC text - Spine, Doc Reform (related to SiSU) uses standard: - docReform markup syntax (based on SiSU markup) - standard SiSU markup syntax with modified headers and minor @@ -1007,7 +1025,7 @@ webserv: [https://www.sisudoc.org] #+END_SRC -#+BEGIN_SRC txt +#+BEGIN_SRC text - Homepages: [https://www.sisudoc.org] [https://www.sisudoc.org] @@ -1019,7 +1037,7 @@ webserv: *** markup_samples #+NAME: sisudoc_spine_markup_samples -#+BEGIN_SRC txt +#+BEGIN_SRC text - Spine, Doc Reform (SiSU) markup samples Individual document content Copyright (Author) [as stated in document header] Individual document content License (Author) [as stated in document header] @@ -1028,7 +1046,7 @@ webserv: *** dependencies #+NAME: sisudoc_spine_dependencies -#+BEGIN_SRC txt +#+BEGIN_SRC text - Dependencies [check dub.json or dub.sdl] - Name: d2sqlite3 -- cgit v1.2.3