aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.env/echo-nixNote238
-rw-r--r--.env/nix-commands19
-rw-r--r--.envrc-nix23
-rw-r--r--.gitignore3
-rw-r--r--README30
-rw-r--r--README.md28
-rw-r--r--devenv.nix1
-rw-r--r--dub_describe.json4
-rw-r--r--flake.lock6
-rw-r--r--flake.nix35
-rw-r--r--nix-overlays/README26
-rw-r--r--nix-overlays/dmd/default.nix6
-rw-r--r--nix-overlays/dmd/generic.nix65
-rw-r--r--nix-overlays/dmd/package.nix5
-rw-r--r--nix-overlays/dtools/default.nix52
-rw-r--r--nix-overlays/dtools/disabled-tests.diff11
-rw-r--r--nix-overlays/dtools/fix-ldc-arm64.diff102
-rw-r--r--nix-overlays/dtools/package.nix49
-rw-r--r--nix-overlays/dub/package.nix21
-rw-r--r--nix-overlays/ldc/bootstrap.nix11
-rw-r--r--nix-overlays/ldc/package.nix105
-rw-r--r--org/config_env.org21
-rw-r--r--org/config_git.org3
-rw-r--r--org/config_nix.org68
-rw-r--r--org/default_regex.org2
-rw-r--r--org/in_source_files.org10
-rw-r--r--org/nix-develop-dlang-shared.org227
-rw-r--r--org/nixpkgs_overlays_d_related.org451
-rw-r--r--org/ocda.org18
-rw-r--r--org/out_sqlite.org1
-rw-r--r--org/out_src_pod.org39
-rw-r--r--org/spine.org1
-rw-r--r--org/spine_info.org32
-rw-r--r--src/sisudoc/io_in/read_source_files.d10
-rw-r--r--src/sisudoc/io_out/source_pod.d39
-rw-r--r--src/sisudoc/io_out/sqlite.d1
-rw-r--r--src/sisudoc/meta/metadoc_from_src.d4
-rw-r--r--src/sisudoc/meta/rgx_yaml.d (renamed from src/sisudoc/meta/rgx_yaml_tags.d)0
-rwxr-xr-xsrc/sisudoc/spine.d1
39 files changed, 989 insertions, 779 deletions
diff --git a/.env/echo-nixNote b/.env/echo-nixNote
deleted file mode 100644
index 36dfa3a..0000000
--- a/.env/echo-nixNote
+++ /dev/null
@@ -1,238 +0,0 @@
-echo '-*- mode: org -*-
-
-* nixpkgs path?
-
- # eval "$(nix print-dev-env)"
-' > nixNote_.org
-
-echo " <nixpkgs> == `nix-instantiate --find-file nixpkgs`" >> nixNote_.org
-
-echo '
-* nix build and show derivation
-
-#+BEGIN_SRC shell
-nix-shell --pure
-
-nix-build
-nix build -f default.nix --print-build-logs
-nix shell -f default.nix --print-build-logs
-nix develop --build -f derivation.nix -I .envrc --print-build-logs
-
-nix-instantiate | nix-build
-
-nix-instantiate -I .envrc | nix-build -I .envrc
-nix build `nix-instantiate`
-nix build `nix-instantiate -I .envrc`
-
-nix develop
-
-nix-instantiate | nix show-derivation | jq
-nix-instantiate -I .envrc | nix show-derivation -f derivation.nix -I .envrc | jq
-
-nix-instantiate | nix show-derivation --recursive | jq
-nix-instantiate -I .envrc | nix show-derivation -f derivation.nix --recursive -I .envrc | jq
-
-nix search --json 2>/dev/null |jq
-#+END_SRC
-
-* version and build info
-
-#+BEGIN_SRC sh' >> nixNote_.org
-
-echo 'spine version (git) == $SpineVER' >> nixNote_.org
-echo "spine version (git) == $SpineVER" >> nixNote_.org
-echo 'nix-instantiate == `nix-instantiate`' >> nixNote_.org
-echo "nix-instantiate == `nix-instantiate`" >> nixNote_.org
-
-echo "#+END_SRC
-
-* initialised shell variables
-
-#+BEGIN_SRC shell
-SpineSRC=$SpineSRC
-SpineDOC=$SpineDOC
-SpinePOD=$SpinePOD
-SpineOUTversioned=$SpineOUTversioned
-SpineOUT=$SpineOUT
-#+END_SRC
-" >> nixNote_.org
-
-echo '* spine run instruction examples
-** parallelized tasks
-*** doc source
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --pod --source --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** html & epub output
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --html --epub --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** sqlite db for each document - populate each db
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** doc source; html, epub; sqlite outputs
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --verbose --pod --html --epub --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** curate (authors topics)
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --curate --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** html, curate
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --verbose --dark --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/*
-$SpineBIN/spine --very-verbose --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** composite command: source pod, html, epub, curate, sqlite
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --verbose --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-** sequential tasks
-*** sqlite db (shared) - create db
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUTversioned"
-#+END_SRC
-
-*** sqlite db (shared) - populate db
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --sqlite-update --output="$SpineOUTversioned" $SpineDOC/sisudoc-spine-markup-samples/markup/pod/*
-#+END_SRC
-
-*** sqlite db (shared) - drop db
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --sqlite-db-drop --output="$SpineOUTversioned"
-#+END_SRC
-
-*** sqlite db (shared) - create & populate db (single step)
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --sqlite-db-create --sqlite-update --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-*** composite command: source pod, html, epub, curate, sqlite
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --verbose --no-parallel --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
-#+END_SRC
-
-** config [./pod/].dr/config_local_site
-
-#+BEGIN_SRC shell
-cat $SpinePOD/.dr/config_local_site
-$SpineBIN/spine --show-config $SpinePOD
-$SpineBIN/spine --show-config --output="$SpineOUTversioned" $SpinePOD
-#+END_SRC
-
-** cgi operations (output to $SpineOUT /var/www)
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUT" $SpinePOD/*
-
-$SpineBIN/spine -v --cgi-search-form-codegen --output=$SpineOUT $SpinePOD/*
-
-$SpineBIN/spine -v --show-config --config=$SpinePOD/.dr
-
-$SpineBIN/spine --html $SpinePOD/*
-
-$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
-#+END_SRC
-
-*** generate html linked to search form
-
-#+BEGIN_SRC shell
-$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --output=$SpineOUT $SpinePOD/*
-#+END_SRC
-
-*** create or re-create sql db (--sqlite-db-create or --sqlite-db-recreate)
-
-#+BEGIN_SRC shell
-$SpineBIN/spine -v --sqlite-db-create --sqlite-db-filename="spine.search.db" --sqlite-db-path="$SpineDBpath"
-$SpineBIN/spine -v --sqlite-db-recreate --sqlite-db-filename="spine.search.db" --sqlite-db-path="$SpineDBpath"
-#+END_SRC
-
-*** populate sqlite db
-
-#+BEGIN_SRC shell
-$SpineBIN/spine -v --sqlite-update --sqlite-db-filename="spine.search.db" --output=$SpineOUT $SpinePOD/*
-#+END_SRC
-
-*** generate html (linked to search form), sql output, curate COMPOSITE
-
-#+BEGIN_SRC shell
-$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="spine.search.db" --cgi-sqlite-search-filename="spine_search" --sqlite-db-path="$SpineDBpath" --output="$SpineOUT" $SpinePOD/*
-$SpineBIN/spine --epub --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="spine.search.db" --cgi-sqlite-search-filename="spine_search" --cgi-url-action="https://sisudoc.org/spine_search" --ouput="$SpineOUT" $SpinePOD/*
-#+END_SRC
-
-*** generate html (linked to search form), sql output, curate COMPOSITE with resource configuration
-
-if names and paths are configured in resource configuration file, e.g. $SpinePOD/.rc/config_local_site
-
-#+BEGIN_SRC shell
-$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update $SpinePOD/*
-#+END_SRC
-
-#+BEGIN_SRC yaml
-# sample resource configuration file ( $SpinePOD/.rc/config_local_site )
-output:
- path: "/srv/www/spine"
-default:
- language: "en"
- papersize: "a4"
- text_wrap: "80"
- digest: "sha256"
-webserv:
- http: "http"
- domain: "localhost"
- data_http: "http"
- data_domain: "localhost"
- data_root_url: "https://sisudoc.org"
- data_root_path: "/srv/www/spine"
- images_root_part: "image"
- cgi_search_form_title: "≅ SiSU Spine search ፨"
- cgi_http: "https"
- cgi_domain: "sisudoc.org"
- cgi_bin_url: "http://sisudoc.org/cgi-bin"
- cgi_bin_part: "cgi-bin"
- cgi_bin_path: "/var/www/cgi/cgi-bin"
- cgi_search_script: "spine_search"
- cgi_action: "https://sisudoc.org/spine_search"
- db_sqlite_filename: "spine.search.db"
- db_sqlite_path: "/var/www/sqlite"
-#+END_SRC
-
-*** make search form
-
-#+BEGIN_SRC shell
-$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
-#+END_SRC
-
-*** latex
-
-#+BEGIN_SRC shell
-$SpineBIN/spine --latex --serial --output="$SpineOUT" $SpinePOD/*
-ls $SpineOutstatic/latex/*.tex
-#+END_SRC
-' >> nixNote_.org
-
-#cat nixNote_.org
-
-#echo "emacs nixNote_.org"
-#echo "cat nixNote_.org"
diff --git a/.env/nix-commands b/.env/nix-commands
deleted file mode 100644
index de52220..0000000
--- a/.env/nix-commands
+++ /dev/null
@@ -1,19 +0,0 @@
-- nix flake update && nix flake check --show-trace && nix flake show && nix develop .#devShell
-
-- nix build ".#default" --print-build-logs
-- nix build ".#spine-dmd" --print-build-logs
-- nix build ".#spine-ldc" --print-build-logs
-
-- nix develop
- - nix develop ".#devShell" --print-build-logs
- - nix develop ".#devShell-html" --print-build-logs
- - nix develop ".#devShell-epub" --print-build-logs
- - nix develop ".#devShell-latex-pdf" --print-build-logs
- - nix develop ".#devShell-sqlite" --print-build-logs
- - nix develop ".#devShell-i18n" --print-build-logs
-
-nix run .#default --print-build-logs
-
-nix develop --build ".#default" --print-build-logs
-
-nix-shell '<nixpkgs>' -A nix --pure
diff --git a/.envrc-nix b/.envrc-nix
index d413999..2a3a0f0 100644
--- a/.envrc-nix
+++ b/.envrc-nix
@@ -1,7 +1,7 @@
NIX_ENFORCE_PURITY=1
# - https://github.com/nix-community/nix-direnv
-NixDirEnvVersion="3.0.6"
-NixDirEnvSHA="sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM="
+NixDirEnvVersion="3.0.7"
+NixDirEnvSHA="sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc="
if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}"
fi
@@ -24,11 +24,11 @@ echo '
• nix develop
❯❯ nix develop ".#" --print-build-logs -c zsh
• nix develop using nixpkgs
- ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh
- ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh
- • nix develop using package overlays: (dmd-2.109.1, ldc-1.40.0, dub-1.38.1)
- ❯❯ nix develop ".#dsh-overlay-dmd-dub" --print-build-logs -c zsh
- ❯❯ nix develop ".#dsh-overlay-ldc-dub" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh
+ • nix develop using package overlays: (dmd-2.111.0, ldc-1.41.0, dub-1.39.0, dtools-2.110.0)
+ ❯❯ nix develop ".#dsh-overlay-dmd" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-overlay-ldc" --print-build-logs -c zsh
❯❯ nix flake show
• to build project:
@@ -40,16 +40,16 @@ echo '
• nix build using nixpkgs
❯❯ nix build ".#spine-nixpkgs-dmd" --print-build-logs
❯❯ nix build ".#spine-nixpkgs-ldc" --print-build-logs
- • nix build using package overlays: (dmd-2.109.1, ldc-1.40.0, dub-1.38.1)
+ • nix build using package overlays: (dmd-2.111.0, ldc-1.41.0, dub-1.39.0, dtools-2.110.0)
❯❯ nix build ".#spine-overlay-dmd" --print-build-logs
❯❯ nix build ".#spine-overlay-ldc" --print-build-logs
• to build using dub on nix (get dependencies by setting your development environment):
- ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh
❯❯ dub --verbose --compiler=dmd --config=dmd
- ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh
❯❯ dub --verbose --compiler=ldmd2 --config=ldmd2
• for develop environment & build options
@@ -63,6 +63,9 @@ echo '
❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/*
❯❯ ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/*
+
+ ❯❯ ${SpineBIN} -v --sqlite-db-create --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db
+ ❯❯ ${SpineBIN} -v --sqlite-update --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db ./markup/pod/*
'
echo "•
❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/*
diff --git a/.gitignore b/.gitignore
index e9d49e5..f9e14ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,8 +13,6 @@
!.envrc
!.envrc-nix
!.envrc-git-init
-!.env
-!.env/**
!nix-overlays
!nix-overlays/**
!README.md
@@ -26,6 +24,7 @@
!configuration.txt
!*.json
!*.sdl
+!*.md
!meson.build
!tangle
!*.org
diff --git a/README b/README
index 74fdf80..fecda98 100644
--- a/README
+++ b/README
@@ -258,25 +258,18 @@ for a document collection you can point to the document collection:
${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-search --html-link-pdf --html-link-curate --html-link-markup --cgi-sqlite-search-filename="${SpineCGIform}" --cgi-url-action="${SpineSearchActionRemote}" --curate --sqlite-update --sqlite-kb-filename="${SpineSQLdb}" --output=${SpineOUT} ${SpinePOD}/*
-*** generate a cgi search form in d
+*** generate a cgi search form
-spine -v --cgi-search-form-codegen \
- --output=/var/www/html \
- ~spineMarkupSamples/pod
-
-spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod
+The CGI search form is built separately in the sisudoc-spine-search-cgi/ directory.
-spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod/.dr/config_local_site
+Steps:
+1. Clone the sisudoc-spine-search-cgi repository
+2. Configure views/configuration.txt with your web server settings
+3. Build the CGI binary using Nix or dub
+4. Deploy the CGI binary to your web server's cgi-bin directory
-spine --cgi-search-form-codegen --output=`echo ~webDocRoot` ~spineMarkupSamples/pod
-
-spine --cgi-search-form-codegen --cgi-sqlite-search-filename="spine_search" --output=`echo ~webDocRoot`
-
-spine -v --cgi-search-form-codegen \
- --sqlite-db-filename="spine.search.db" \
- --cgi-sqlite-search-filename="spine-search" \
- --output=/var/www/html \
- ~spineMarkupSamples/pod
+For detailed instructions, see:
+ sisudoc-spine-search-cgi/README.md
**** compile the cgi search form
@@ -306,14 +299,15 @@ cgi-bin directory
${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-search --html-link-pdf --html-link-curate --html-link-markup --cgi-sqlite-search-filename="${SpineCGIform}" --cgi-url-action="${SpineSearchActionLocal}" --curate --sqlite-update --sqlite-db-filename="${SpineSQLdb}" --output=${SpineOUT} ${SpinePOD}/*
-*** create db & search form
+*** create db
spine -v \
--sqlite-db-create --sqlite-db-filename="spine.search.db" \
- --cgi-search-form-codegen --cgi-sqlite-search-filename="spine-search" \
--output=/var/www/html \
~spineMarkupSamples/pod/*
+Note: The CGI search form is built separately in sisudoc-spine-search-cgi/
+
*** html with links to search form
${SpineBIN} -v --epub --html --html-link-curate --curate --output=${SpineOUT} ${SpinePOD}/*
diff --git a/README.md b/README.md
index 56c409e..22abeff 100644
--- a/README.md
+++ b/README.md
@@ -243,23 +243,16 @@ for a document collection you can point to the document collection:
### generate a cgi search form in d
-spine -v --cgi-search-form-codegen \
- --output=/var/www/html \
- ~spineMarkupSamples/pod
-
-spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod
+The CGI search form is built separately in the sisudoc-spine-search-cgi/ directory.
-spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod/.dr/config_local_site
+Steps:
+1. Clone the sisudoc-spine-search-cgi repository
+2. Configure views/configuration.txt with your web server settings
+3. Build the CGI binary using Nix or dub
+4. Deploy the CGI binary to your web server's cgi-bin directory
-spine --cgi-search-form-codegen --output=`echo ~webDocRoot` ~spineMarkupSamples/pod
-
-spine --cgi-search-form-codegen --cgi-sqlite-search-filename="spine_search" --output=`echo ~webDocRoot`
-
-spine -v --cgi-search-form-codegen \
- --sqlite-db-filename="spine.search.db" \
- --cgi-sqlite-search-filename="spine-search" \
- --output=/var/www/html \
- ~spineMarkupSamples/pod
+For detailed instructions, see:
+ sisudoc-spine-search-cgi/README.md
#### compile the cgi search form
@@ -289,14 +282,15 @@ cgi-bin directory
${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-search --html-link-pdf --html-link-curate --html-link-markup --cgi-sqlite-search-filename="${SpineCGIform}" --cgi-url-action="${SpineSearchActionLocal}" --curate --sqlite-update --sqlite-db-filename="${SpineSQLdb}" --output=${SpineOUT} ${SpinePOD}/*
-### create db & search form
+### create db
spine -v \
--sqlite-db-create --sqlite-db-filename="spine.search.db" \
- --cgi-search-form-codegen --cgi-sqlite-search-filename="spine-search" \
--output=/var/www/html \
~spineMarkupSamples/pod/*
+Note: The CGI search form is built separately in sisudoc-spine-search-cgi/
+
### html with links to search form
${SpineBIN} -v --epub --html --html-link-curate --curate --output=${SpineOUT} ${SpinePOD}/*
diff --git a/devenv.nix b/devenv.nix
index 60a373e..2c65e46 100644
--- a/devenv.nix
+++ b/devenv.nix
@@ -21,6 +21,7 @@ with pkgs;
# ❯❯❯ dev
gnumake
ps
+ dtools
# ❯❯❯ d_build_related
# ❯❯ package manager
dub
diff --git a/dub_describe.json b/dub_describe.json
index 19bde01..a811411 100644
--- a/dub_describe.json
+++ b/dub_describe.json
@@ -231,7 +231,7 @@
},
{
"role": "source",
- "path": "src/doc_reform/meta/rgx_yaml_tags.d"
+ "path": "src/doc_reform/meta/rgx_yaml.d"
},
{
"role": "source",
@@ -934,7 +934,7 @@
"./src/doc_reform/meta/package.d",
"./src/doc_reform/meta/rgx.d",
"./src/doc_reform/meta/rgx_files.d",
- "./src/doc_reform/meta/rgx_yaml_tags.d",
+ "./src/doc_reform/meta/rgx_yaml.d",
"./src/doc_reform/share/defaults.d",
"./src/doc_reform/spine.d"
],
diff --git a/flake.lock b/flake.lock
index 5a8c597..646b379 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1740019556,
- "narHash": "sha256-vn285HxnnlHLWnv59Og7muqECNMS33mWLM14soFIv2g=",
+ "lastModified": 1749213349,
+ "narHash": "sha256-UAaWOyQhdp7nXzsbmLVC67fo+QetzoTm9hsPf9X3yr4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "dad564433178067be1fbdfcce23b546254b6d641",
+ "rev": "a4ff0e3c64846abea89662bfbacf037ef4b34207",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index cb271eb..4209504 100644
--- a/flake.nix
+++ b/flake.nix
@@ -21,9 +21,10 @@
runHook postCheck
'';
localOverlay = (final: prev: {
- ldc = prev.callPackage ./nix-overlays/ldc { };
- dmd = prev.callPackage ./nix-overlays/dmd { };
- dub = prev.callPackage ./nix-overlays/dub { };
+ ldc = prev.callPackage ./nix-overlays/ldc { }; # -> ok 1.41.0
+ dmd = prev.callPackage ./nix-overlays/dmd { }; # -> ok 2.111.0
+ dub = prev.callPackage ./nix-overlays/dub { }; # -> ? 1.39.0
+ dtools = prev.callPackage ./nix-overlays/dtools { }; # -> ok 2.110.0
#gdc = prev.callPackage ./nix-overlays/gdc { };
});
pkgsForSystem = system: import nixpkgs {
@@ -130,7 +131,7 @@
spine-overlay-dmd = stdenv.mkDerivation {
inherit pname;
inherit version;
- #name = "spine-0.18.0 dmd-2.109.1 dub-1.38.1";
+ #name = "spine-0.18.0 dmd-2.111.0 dub-1.39.0";
meta.mainProgram = "spine-dmd";
executable = true;
src = self;
@@ -154,7 +155,7 @@
spine-overlay-ldc = stdenv.mkDerivation {
inherit pname;
inherit version;
- #name = "spine-0.18.0 ldc-1.40.0 dub-1.38.1";
+ #name = "spine-0.18.0 ldc-1.41.0 dub-1.39.0";
meta.mainProgram = "spine-ldc";
executable = true;
src = self;
@@ -214,61 +215,66 @@
in
with pkgs-nix; {
dsh-overlay = mkShell {
- name = "spine-0.18.0 base dev shell, ldc-1.40.0, dub-1.38.1";
+ name = "spine-0.18.0 base dev shell, ldc-1.41.0, dub-1.39.0 - dtools-2.110.0";
inherit shell;
inherit devEnv;
packages = with pkgs-ovl; [
ldc
#dmd
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-nixpkgs-dmd-dub = mkShell {
+ dsh-nixpkgs-dmd = mkShell {
name = "spine-0.18.0 base dev shell";
inherit shell;
inherit devEnv;
packages = [
dmd
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-nixpkgs-ldc-dub = mkShell {
+ dsh-nixpkgs-ldc = mkShell {
name = "spine-0.18.0 base dev shell";
inherit shell;
inherit devEnv;
packages = [
ldc
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-overlay-dmd-dub = mkShell {
- name = "spine-0.18.0 base dev shell, dmd-2.109.1, dub-1.38.1";
+ dsh-overlay-dmd = mkShell {
+ name = "spine-0.18.0 base dev shell, dmd-2.111.0, dub-1.39.0 - dtools-2.110.0";
inherit shell;
inherit devEnv;
packages = with pkgs-ovl; [
dmd
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-overlay-ldc-dub = mkShell {
- name = "spine-0.18.0 base dev shell, ldc-1.40.0, dub-1.38.1";
+ dsh-overlay-ldc = mkShell {
+ name = "spine-0.18.0 base dev shell, ldc-1.41.0, dub-1.39.0 - dtools-2.110.0";
inherit shell;
inherit devEnv;
packages = with pkgs-ovl; [
ldc
dub
+ dtools
gnumake
sqlite
];
@@ -282,6 +288,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
libxml2
@@ -310,6 +317,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
# ❯❯ text-mode web browsers
@@ -330,6 +338,7 @@
ldc
#dmd
dub
+ dtools
gnumake
source-sans-pro
source-serif-pro
@@ -346,6 +355,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
];
@@ -359,6 +369,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
perl538Packages.Po4a
diff --git a/nix-overlays/README b/nix-overlays/README
index c593dc5..59b02ca 100644
--- a/nix-overlays/README
+++ b/nix-overlays/README
@@ -16,11 +16,11 @@ compiler and build tools: ldc, dub and dtools, than exist in nixpkgs at the time
of publishing, in some cases with additional fixes.
nix overlays for (updates nixpkgs, more recent versions of):
- - ldc ( 1.30.0 -> 1.40.0 )
- - dub ( 1.23.0 -> 1.38.1 ) [for nix versions 1.31.0 ... 1.33.0 broken]
- - dtools ( 2.095.1 -> 2.103.1 )
+ - ldc ( 1.30.0 -> 1.41.0 )
+ - dub ( 1.23.0 -> 1.39.0 ) [for nix versions 1.31.0 ... 1.33.0 broken]
+ - dtools ( 2.095.1 -> 2.110.0 )
- - dmd ( 2.106.1 -> 2.109.1 )
+ - dmd ( 2.106.1 -> 2.111.0 )
- gdc [not yet available]
dlang-nix-flakes.org --❯
@@ -47,26 +47,26 @@ search nixpkgs here:
- https://search.nixos.org/packages?channel=unstable&from=0&size=100&sort=relevance&query=
** compilers
-*** ldc OK ✓ ( 1.30.0 -> 1.40.0 )
+*** ldc OK ✓ ( 1.30.0 -> 1.41.0 )
- https://wiki.dlang.org/LDC
- https://github.com/ldc-developers/ldc
- https://github.com/ldc-developers/ldc/releases
- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0.tar.gz
+ nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.41.0.tar.gz
- https://github.com/ldc-developers/ldc/issues
- version in nixpkgs:
- https://search.nixos.org/packages?channel=unstable&show=ldc&from=0&size=100&sort=relevance&type=packages&query=ldc
-*** dmd OK ✓ ( 2.100.2 -> 2.109.1 )
+*** dmd OK ✓ ( 2.100.2 -> 2.111.0 )
- https://dlang.org/
- https://wiki.dlang.org/LDC
- https://github.com/dlang/dmd
- https://github.com/dlang/dmd/tags
- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.109.1.tar.gz
+ nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.111.0.tar.gz
- https://github.com/dlang/dmd/pulls
- version in nixpkgs:
@@ -88,13 +88,13 @@ not yet provided in nixpkgs with gcc12, no attempt made
- https://github.com/D-Programming-GDC/gdc
** build tool
-*** dub ( 1.23.0 -> 1.38.1 )
+*** dub ( 1.23.0 -> 1.39.0 )
- https://code.dlang.org/packages/dub
- https://github.com/dlang/dub
- https://github.com/dlang/dub/releases
- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.38.1.tar.gz
+ nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.39.0.tar.gz
- https://github.com/dlang/dub/issues
- version in nixpkgs:
@@ -102,19 +102,19 @@ not yet provided in nixpkgs with gcc12, no attempt made
- dub nixpkg overlay is updated and runs most dub tests correctly
-- dub OK ✓ ( 1.30.0 -> 1.38.1 )
+- dub OK ✓ ( 1.30.0 -> 1.39.0 )
from v1.31.0 requires seeting of pwd in buildPhase else fails to build
packages with nix tools that previous version of dub built;
** tools
-*** dtools OK ✓ ( 2.095.1 -> 2.103.1 )
+*** dtools OK ✓ ( 2.095.1 -> 2.110.0 )
- https://code.dlang.org/packages/dtools
- https://github.com/dlang/tools
- https://github.com/dlang/tools/tags
- nix-prefetch --unpack https://github.com/dlang/tools/archive/refs/tags/v2.103.1.tar.gz
+ nix-prefetch --unpack https://github.com/dlang/tools/archive/refs/tags/v2.110.0.tar.gz
- https://github.com/dlang/tools/issues
- version in nixpkgs
diff --git a/nix-overlays/dmd/default.nix b/nix-overlays/dmd/default.nix
index b5268b7..8375c13 100644
--- a/nix-overlays/dmd/default.nix
+++ b/nix-overlays/dmd/default.nix
@@ -1,5 +1 @@
-import ./generic.nix {
- version = "2.109.1";
- dmdHash = "sha256-3nCDPZnb4eQZmhYYxcH6qOmsP8or0KYuzAa5g/C9xdU=";
- phobosHash = "sha256-73I0k7tCBwe5tl4K6uMs3/nT2JTZ2SppFYzmokS4W5Y=";
-}
+import ./package.nix
diff --git a/nix-overlays/dmd/generic.nix b/nix-overlays/dmd/generic.nix
index 22f7fa8..59a781e 100644
--- a/nix-overlays/dmd/generic.nix
+++ b/nix-overlays/dmd/generic.nix
@@ -1,28 +1,30 @@
-{ version
-, dmdHash
-, phobosHash
+{
+ version,
+ dmdHash,
+ phobosHash,
}:
-{ stdenv
-, lib
-, fetchFromGitHub
-, removeReferencesTo
-, makeWrapper
-, which
-, writeTextFile
-, curl
-, tzdata
-, gdb
-#, Foundation
-, callPackage
-, targetPackages
-, fetchpatch
-, bash
-, installShellFiles
-, git
-, unzip
-, dmdBootstrap ? callPackage ./bootstrap.nix { }
-, dmdBin ? "${dmdBootstrap}/bin"
+{
+ stdenv,
+ lib,
+ fetchFromGitHub,
+ removeReferencesTo,
+ makeWrapper,
+ which,
+ writeTextFile,
+ curl,
+ tzdata,
+ gdb,
+ # Foundation,
+ callPackage,
+ targetPackages,
+ fetchpatch,
+ bash,
+ installShellFiles,
+ git,
+ unzip,
+ dmdBootstrap ? callPackage ./bootstrap.nix { },
+ dmdBin ? "${dmdBootstrap}/bin",
}:
let
@@ -36,11 +38,8 @@ let
};
bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
- osname =
- if stdenv.hostPlatform.isDarwin then
- "osx"
- else
- stdenv.hostPlatform.parsed.kernel.name;
+ osname = if stdenv.hostPlatform.isDarwin then "osx"
+ else stdenv.hostPlatform.parsed.kernel.name;
pathToDmd = "\${NIX_BUILD_TOP}/dmd/generated/${osname}/release/${bits}/dmd";
in
@@ -97,7 +96,9 @@ stdenv.mkDerivation (finalAttrs: {
rm dmd/compiler/test/runnable/gdb4149.d
rm dmd/compiler/test/runnable/gdb4181.d
rm dmd/compiler/test/compilable/ddocYear.d
- rm dmd/compiler/test/fail_compilation/needspkgmod.d
+ rm dmd/compiler/test/compilable/sarif_success_test.d
+ rm dmd/compiler/test/fail_compilation/sarif_test.d
+ rm dmd/compiler/test/fail_compilation/sarifmultiple_test.d
# Disable tests that rely on objdump whitespace until fixed upstream:
# https://issues.dlang.org/show_bug.cgi?id=23317
@@ -109,9 +110,9 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace dmd/compiler/test/dshell/test6952.d --replace-fail "/usr/bin/env bash" "${bash}/bin/bash"
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace phobos/std/socket.d --replace-fail "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
- '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
- substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
- '';
+ ''; # + lib.optionalString stdenv.hostPlatform.isDarwin ''
+ # substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
+ #'';
nativeBuildInputs = [
makeWrapper
diff --git a/nix-overlays/dmd/package.nix b/nix-overlays/dmd/package.nix
new file mode 100644
index 0000000..3aa1183
--- /dev/null
+++ b/nix-overlays/dmd/package.nix
@@ -0,0 +1,5 @@
+import ./generic.nix {
+ version = "2.111.0";
+ dmdHash = "sha256-2bjsGa9nTny818dLRV6LKkes+Ycq8W+PFjwhGVrD5TM=";
+ phobosHash = "sha256-9jySZbODoL8sULhYKj/l4+c/uiG5xY2dO240k9XQtPk=";
+}
diff --git a/nix-overlays/dtools/default.nix b/nix-overlays/dtools/default.nix
index d605e4d..8375c13 100644
--- a/nix-overlays/dtools/default.nix
+++ b/nix-overlays/dtools/default.nix
@@ -1,51 +1 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, ldc, curl, gnumake42 }:
-
-stdenv.mkDerivation rec {
- pname = "dtools";
- version = "2.103.1";
-
- src = fetchFromGitHub {
- owner = "dlang";
- repo = "tools";
- rev = "v${version}";
- sha256 = "sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=";
- name = "dtools";
- };
-
- patches = [
- (fetchpatch {
- # part of https://github.com/dlang/tools/pull/441
- url = "https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch"; # Fix LDC arm64 build
- sha256 = "sha256-x6EclTYN1Y5FG57KLhbBK0BZicSYcZoWO7MTVcP4T18=";
- })
- ];
-
- nativeBuildInputs = [ ldc gnumake42 ]; # fails with make 4.4
- buildInputs = [ curl ];
-
- makeCmd = ''
- make -f posix.mak all DMD_DIR=dmd DMD=${ldc.out}/bin/ldmd2 CC=${stdenv.cc}/bin/cc
- '';
-
- buildPhase = ''
- $makeCmd
- '';
-
- doCheck = true;
-
- checkPhase = ''
- $makeCmd test_rdmd
- '';
-
- installPhase = ''
- $makeCmd INSTALL_DIR=$out install
- '';
-
- meta = with lib; {
- description = "Ancillary tools for the D programming language compiler";
- homepage = "https://github.com/dlang/tools";
- license = lib.licenses.boost;
- maintainers = with maintainers; [ ThomasMader ];
- platforms = lib.platforms.unix;
- };
-}
+import ./package.nix
diff --git a/nix-overlays/dtools/disabled-tests.diff b/nix-overlays/dtools/disabled-tests.diff
new file mode 100644
index 0000000..a22825a
--- /dev/null
+++ b/nix-overlays/dtools/disabled-tests.diff
@@ -0,0 +1,11 @@
+--- a/rdmd_test.d
++++ b/rdmd_test.d
+@@ -616,7 +616,7 @@ void runTests(string rdmdApp, string compiler, string model)
+ enforce(res.status == 1, res.output);
+ }
+
+- version (Posix)
++ version (none)
+ {
+ import std.conv : to;
+ auto makeVersion = execute(["make", "--version"]).output.splitLines()[0];
diff --git a/nix-overlays/dtools/fix-ldc-arm64.diff b/nix-overlays/dtools/fix-ldc-arm64.diff
new file mode 100644
index 0000000..66eaa22
--- /dev/null
+++ b/nix-overlays/dtools/fix-ldc-arm64.diff
@@ -0,0 +1,102 @@
+Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch
+--- /dev/null
++++ b/osmodel.mak
+@@ -0,0 +1,75 @@
++# osmodel.mak
++#
++# Detects and sets the macros:
++#
++# OS = one of {osx,linux,freebsd,openbsd,netbsd,dragonflybsd,solaris}
++# MODEL = one of { 32, 64 }
++# MODEL_FLAG = one of { -m32, -m64 }
++# ARCH = one of { x86, x86_64, aarch64 }
++#
++# Note:
++# Keep this file in sync between druntime, phobos, and dmd repositories!
++# Source: https://github.com/dlang/dmd/blob/master/src/osmodel.mak
++
++
++ifeq (,$(OS))
++ uname_S:=$(shell uname -s)
++ ifeq (Darwin,$(uname_S))
++ OS:=osx
++ endif
++ ifeq (Linux,$(uname_S))
++ OS:=linux
++ endif
++ ifeq (FreeBSD,$(uname_S))
++ OS:=freebsd
++ endif
++ ifeq (OpenBSD,$(uname_S))
++ OS:=openbsd
++ endif
++ ifeq (NetBSD,$(uname_S))
++ OS:=netbsd
++ endif
++ ifeq (DragonFly,$(uname_S))
++ OS:=dragonflybsd
++ endif
++ ifeq (Solaris,$(uname_S))
++ OS:=solaris
++ endif
++ ifeq (SunOS,$(uname_S))
++ OS:=solaris
++ endif
++ ifeq (,$(OS))
++ $(error Unrecognized or unsupported OS for uname: $(uname_S))
++ endif
++endif
++
++# When running make from XCode it may set environment var OS=MACOS.
++# Adjust it here:
++ifeq (MACOS,$(OS))
++ OS:=osx
++endif
++
++ifeq (,$(MODEL))
++ ifeq ($(OS), solaris)
++ uname_M:=$(shell isainfo -n)
++ else
++ uname_M:=$(shell uname -m)
++ endif
++ ifneq (,$(findstring $(uname_M),x86_64 amd64))
++ MODEL:=64
++ ARCH:=x86_64
++ endif
++ ifneq (,$(findstring $(uname_M),aarch64 arm64))
++ MODEL:=64
++ ARCH:=aarch64
++ endif
++ ifneq (,$(findstring $(uname_M),i386 i586 i686))
++ MODEL:=32
++ ARCH:=x86
++ endif
++ ifeq (,$(MODEL))
++ $(error Cannot figure 32/64 model and arch from uname -m: $(uname_M))
++ endif
++endif
++
++MODEL_FLAG:=-m$(MODEL)
+--- a/Makefile
++++ b/Makefile
+@@ -9,9 +9,8 @@ DUB=dub
+ WITH_DOC = no
+ DOC = ../dlang.org
+
+-# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile from dmd
+-$(shell [ ! -d $(DMD_DIR) ] && git clone --depth=1 https://github.com/dlang/dmd $(DMD_DIR))
+-include $(DMD_DIR)/compiler/src/osmodel.mak
++# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile
++include osmodel.mak
+
+ ifeq (windows,$(OS))
+ DOTEXE:=.exe
+@@ -30,7 +29,7 @@ DFLAGS = $(MODEL_FLAG) $(if $(findstring windows,$(OS)),,-fPIC) -preview=dip1000
+ DFLAGS += $(WARNINGS)
+
+ # Default DUB flags (DUB uses a different architecture format)
+-DUBFLAGS = --arch=$(subst 32,x86,$(subst 64,x86_64,$(MODEL)))
++DUBFLAGS = --arch=$(ARCH)
+
+ TOOLS = \
+ $(ROOT)/catdoc$(DOTEXE) \
diff --git a/nix-overlays/dtools/package.nix b/nix-overlays/dtools/package.nix
new file mode 100644
index 0000000..2e72b44
--- /dev/null
+++ b/nix-overlays/dtools/package.nix
@@ -0,0 +1,49 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ ldc,
+ curl,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "dtools";
+ version = "2.110.0";
+
+ src = fetchFromGitHub {
+ owner = "dlang";
+ repo = "tools";
+ rev = "v${finalAttrs.version}";
+ hash = "sha256-xMEHnrstL5hAkhp8+/z1I2KZWZ7eztWZnUGLTKCfbBI=";
+ name = "dtools";
+ };
+
+ patches = [
+ # Disable failing tests
+ ./disabled-tests.diff
+ # Fix LDC arm64 build
+ ./fix-ldc-arm64.diff
+ ];
+
+ nativeBuildInputs = [ ldc ];
+ buildInputs = [ curl ];
+
+ makeFlags = [
+ "CC=${stdenv.cc}/bin/cc"
+ "DMD=${ldc.out}/bin/ldmd2"
+ "INSTALL_DIR=$(out)"
+ ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+ checkTarget = "test_rdmd";
+
+ meta = with lib; {
+ description = "Ancillary tools for the D programming language";
+ homepage = "https://github.com/dlang/tools";
+ license = licenses.boost;
+ maintainers = with maintainers; [ jtbx ];
+ platforms = platforms.unix;
+ };
+})
diff --git a/nix-overlays/dub/package.nix b/nix-overlays/dub/package.nix
index f13adec..1ac054c 100644
--- a/nix-overlays/dub/package.nix
+++ b/nix-overlays/dub/package.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, curl
-, ldc
-, dcompiler ? ldc
-, libevent
-, rsync
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ curl,
+ ldc,
+ dcompiler ? ldc,
+ libevent,
+ rsync,
}:
assert dcompiler != null;
stdenv.mkDerivation (finalAttrs: {
pname = "dub";
- version = "1.38.1";
+ version = "1.39.0";
enableParallelBuilding = true;
@@ -20,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "dlang";
repo = "dub";
rev = "v${finalAttrs.version}";
- hash = "sha256-8Lr/0sx4SKwU1aNOxZArta0RXpDM+EWl29ZsPDdPWFo=";
+ hash = "sha256-73b15A9+hClD6IbuxTy9QZKpTKjUFYBuqGOclUyhrnM=";
};
postPatch = ''
diff --git a/nix-overlays/ldc/bootstrap.nix b/nix-overlays/ldc/bootstrap.nix
index d81e5a4..8f76b5b 100644
--- a/nix-overlays/ldc/bootstrap.nix
+++ b/nix-overlays/ldc/bootstrap.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }:
+{
+ lib,
+ stdenv,
+ fetchurl,
+ curl,
+ tzdata,
+ autoPatchelfHook,
+ fixDarwinDylibNames,
+ libxml2,
+}:
let
inherit (stdenv) hostPlatform;
diff --git a/nix-overlays/ldc/package.nix b/nix-overlays/ldc/package.nix
index c20084c..ff2089b 100644
--- a/nix-overlays/ldc/package.nix
+++ b/nix-overlays/ldc/package.nix
@@ -1,26 +1,27 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, ninja
-, llvm_19
-, curl
-, tzdata
-, lit
-, gdb
-, unzip
-, darwin
-, callPackage
-, makeWrapper
-, runCommand
-, writeText
-, targetPackages
-
-, ldcBootstrap ? callPackage ./bootstrap.nix { }
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ ninja,
+ llvm_19,
+ curl,
+ tzdata,
+ lit,
+ gdb,
+ unzip,
+ darwin,
+ callPackage,
+ makeWrapper,
+ runCommand,
+ writeText,
+ targetPackages,
+
+ ldcBootstrap ? callPackage ./bootstrap.nix { },
}:
let
- pathConfig = runCommand "ldc-lib-paths" {} ''
+ pathConfig = runCommand "ldc-lib-paths" { } ''
mkdir $out
echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile
echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile
@@ -30,13 +31,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "ldc";
- version = "1.40.0";
+ version = "1.41.0";
src = fetchFromGitHub {
owner = "ldc-developers";
repo = "ldc";
rev = "v${finalAttrs.version}";
- hash = "sha256-LT85DlAebecPpBUgZP0ayKTVrTUqN6DMJVEWTatLOxY=";
+ hash = "sha256-6LcpY3LSFK4KgEiGrFp/LONu5Vr+/+vI04wEEpF3s+s=";
fetchSubmodules = true;
};
@@ -106,8 +107,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
# https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746
- additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin
- "|druntime-test-shared";
+ additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin "|druntime-test-shared";
checkPhase = ''
# Build default lib test runners
@@ -147,34 +147,35 @@ stdenv.mkDerivation (finalAttrs: {
};
passthru.ldcBootstrap = ldcBootstrap;
- passthru.tests = let
- ldc = finalAttrs.finalPackage;
- helloWorld = stdenv.mkDerivation (finalAttrs: {
- name = "ldc-hello-world";
- src = writeText "hello_world.d" ''
- module hello_world;
- import std.stdio;
- void main() {
- writeln("Hello, world!");
- }
- '';
- dontUnpack = true;
- buildInputs = [ ldc ];
- dFlags = [];
- buildPhase = ''
- ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src
- '';
- installPhase = ''
- mkdir -p $out/bin
- mv test $out/bin
- '';
- });
- in {
- # Without -shared, built binaries should not contain
- # references to the compiler binaries.
- no-references-to-compiler = helloWorld.overrideAttrs {
- disallowedReferences = [ ldc ];
- dFlags = ["-g"];
+ passthru.tests =
+ let
+ ldc = finalAttrs.finalPackage;
+ helloWorld = stdenv.mkDerivation (finalAttrs: {
+ name = "ldc-hello-world";
+ src = writeText "hello_world.d" ''
+ module hello_world;
+ import std.stdio;
+ void main() {
+ writeln("Hello, world!");
+ }
+ '';
+ dontUnpack = true;
+ buildInputs = [ ldc ];
+ dFlags = [ ];
+ buildPhase = ''
+ ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ mv test $out/bin
+ '';
+ });
+ in {
+ # Without -shared, built binaries should not contain
+ # references to the compiler binaries.
+ no-references-to-compiler = helloWorld.overrideAttrs {
+ disallowedReferences = [ ldc ];
+ dFlags = ["-g"];
};
};
})
diff --git a/org/config_env.org b/org/config_env.org
index 9913dce..ec6a1d5 100644
--- a/org/config_env.org
+++ b/org/config_env.org
@@ -80,11 +80,11 @@ echo '
• nix develop
❯❯ nix develop ".#" --print-build-logs -c zsh
• nix develop using nixpkgs
- ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh
- ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh
- • nix develop using package overlays: (dmd-<<dmd_version>>, ldc-<<ldc_version>>, dub-<<dub_version>>)
- ❯❯ nix develop ".#dsh-overlay-dmd-dub" --print-build-logs -c zsh
- ❯❯ nix develop ".#dsh-overlay-ldc-dub" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh
+ • nix develop using package overlays: (dmd-<<dmd_version>>, ldc-<<ldc_version>>, dub-<<dub_version>>, dtools-<<dtools_version>>)
+ ❯❯ nix develop ".#dsh-overlay-dmd" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-overlay-ldc" --print-build-logs -c zsh
❯❯ nix flake show
• to build project:
@@ -96,16 +96,16 @@ echo '
• nix build using nixpkgs
❯❯ nix build ".#spine-nixpkgs-dmd" --print-build-logs
❯❯ nix build ".#spine-nixpkgs-ldc" --print-build-logs
- • nix build using package overlays: (dmd-<<dmd_version>>, ldc-<<ldc_version>>, dub-<<dub_version>>)
+ • nix build using package overlays: (dmd-<<dmd_version>>, ldc-<<ldc_version>>, dub-<<dub_version>>, dtools-<<dtools_version>>)
❯❯ nix build ".#spine-overlay-dmd" --print-build-logs
❯❯ nix build ".#spine-overlay-ldc" --print-build-logs
• to build using dub on nix (get dependencies by setting your development environment):
- ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh
❯❯ dub --verbose --compiler=dmd --config=dmd
- ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh
+ ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh
❯❯ dub --verbose --compiler=ldmd2 --config=ldmd2
• for develop environment & build options
@@ -119,6 +119,9 @@ echo '
❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/*
❯❯ ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/*
+
+ ❯❯ ${SpineBIN} -v --sqlite-db-create --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db
+ ❯❯ ${SpineBIN} -v --sqlite-update --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db ./markup/pod/*
'
echo "•
❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/*
@@ -175,7 +178,7 @@ export SpineDBpath=/var/www/sqlite
#export SpineDBpath=/srv/www/spine/sqlite
#+END_SRC
-* SHARED versions
+* versions GET
** direnv
#+NAME: direnv_version
diff --git a/org/config_git.org b/org/config_git.org
index b997923..66383ad 100644
--- a/org/config_git.org
+++ b/org/config_git.org
@@ -37,8 +37,6 @@
!.envrc
!.envrc-nix
!.envrc-git-init
-!.env
-!.env/**
!nix-overlays
!nix-overlays/**
!README.md
@@ -50,6 +48,7 @@
!configuration.txt
!*.json
!*.sdl
+!*.md
!meson.build
!tangle
!*.org
diff --git a/org/config_nix.org b/org/config_nix.org
index 54ec0ec..3f101a0 100644
--- a/org/config_nix.org
+++ b/org/config_nix.org
@@ -44,9 +44,10 @@
runHook postCheck
'';
localOverlay = (final: prev: {
- ldc = prev.callPackage ./nix-overlays/ldc { };
- dmd = prev.callPackage ./nix-overlays/dmd { };
- dub = prev.callPackage ./nix-overlays/dub { };
+ ldc = prev.callPackage ./nix-overlays/ldc { }; # -> ok <<ldc_version>>
+ dmd = prev.callPackage ./nix-overlays/dmd { }; # -> ok <<dmd_version>>
+ dub = prev.callPackage ./nix-overlays/dub { }; # -> ? <<dub_version>>
+ dtools = prev.callPackage ./nix-overlays/dtools { }; # -> ok <<dtools_version>>
#gdc = prev.callPackage ./nix-overlays/gdc { };
});
pkgsForSystem = system: import nixpkgs {
@@ -237,61 +238,66 @@
in
with pkgs-nix; {
dsh-overlay = mkShell {
- name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>>";
+ name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = with pkgs-ovl; [
ldc
#dmd
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-nixpkgs-dmd-dub = mkShell {
+ dsh-nixpkgs-dmd = mkShell {
name = "spine-<<spine_version>> base dev shell";
inherit shell;
inherit devEnv;
packages = [
dmd
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-nixpkgs-ldc-dub = mkShell {
+ dsh-nixpkgs-ldc = mkShell {
name = "spine-<<spine_version>> base dev shell";
inherit shell;
inherit devEnv;
packages = [
ldc
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-overlay-dmd-dub = mkShell {
- name = "spine-<<spine_version>> base dev shell, dmd-<<dmd_version>>, dub-<<dub_version>>";
+ dsh-overlay-dmd = mkShell {
+ name = "spine-<<spine_version>> base dev shell, dmd-<<dmd_version>>, dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = with pkgs-ovl; [
dmd
dub
+ dtools
gnumake
sqlite
];
inherit shellHook;
};
- dsh-overlay-ldc-dub = mkShell {
- name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>>";
+ dsh-overlay-ldc = mkShell {
+ name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = with pkgs-ovl; [
ldc
dub
+ dtools
gnumake
sqlite
];
@@ -305,6 +311,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
libxml2
@@ -333,6 +340,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
# ❯❯ text-mode web browsers
@@ -353,6 +361,7 @@
ldc
#dmd
dub
+ dtools
gnumake
source-sans-pro
source-serif-pro
@@ -369,6 +378,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
];
@@ -382,6 +392,7 @@
ldc
#dmd
dub
+ dtools
gnumake
sqlite
perl538Packages.Po4a
@@ -499,6 +510,7 @@ with pkgs;
# ❯❯❯ dev
gnumake
ps
+ dtools
# ❯❯❯ d_build_related
# ❯❯ package manager
dub
@@ -705,7 +717,7 @@ github:nixos/nixpkgs
** .env/echo-nixNote CHECK MODIFY
*** notes on nix commands
-#+HEADER: :tangle ../.env/nix-commands
+#+HEADER: :tangle-NO ../.env/nix-commands
#+BEGIN_SRC text
- nix flake update && nix flake check --show-trace && nix flake show && nix develop .#devShell
@@ -730,7 +742,7 @@ nix-shell '<nixpkgs>' -A nix --pure
*** echo-nixNote
-#+HEADER: :tangle ../.env/echo-nixNote
+#+HEADER: :tangle-NO ../.env/echo-nixNote
#+BEGIN_SRC shell
echo '-*- mode: org -*-
@@ -880,13 +892,13 @@ $SpineBIN/spine --show-config --output="$SpineOUTversioned" $SpinePOD
,#+BEGIN_SRC shell
$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUT" $SpinePOD/*
-$SpineBIN/spine -v --cgi-search-form-codegen --output=$SpineOUT $SpinePOD/*
+# CGI search form is built separately in sisudoc-spine-search-cgi/
$SpineBIN/spine -v --show-config --config=$SpinePOD/.dr
$SpineBIN/spine --html $SpinePOD/*
-$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
+# See sisudoc-spine-search-cgi/README.md for CGI search form build instructions
,#+END_SRC
,*** generate html linked to search form
@@ -955,7 +967,7 @@ webserv:
,*** make search form
,#+BEGIN_SRC shell
-$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
+# CGI search form is built separately - see sisudoc-spine-search-cgi/README.md
,#+END_SRC
,*** latex
@@ -1020,9 +1032,8 @@ postInstall:
echo `ls -la $${out}/bin/spine`
#+END_SRC
-* SHARED
-** versions
-*** spine project VERSION :version:set:project:
+* versions GET
+** spine project VERSION :version:set:project:
#+NAME: spine_version
#+HEADER: :noweb yes
@@ -1030,8 +1041,8 @@ postInstall:
<<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:spine_project_version()>>
#+END_SRC
-*** dlang overlays
-**** ldc
+** dlang overlays
+*** ldc
#+NAME: ldc_version
#+HEADER: :noweb yes
@@ -1039,7 +1050,7 @@ postInstall:
<<./nix-develop-dlang-shared.org:ldc-version()>>
#+END_SRC
-**** dmd
+*** dmd
#+NAME: dmd_version
#+HEADER: :noweb yes
@@ -1047,7 +1058,7 @@ postInstall:
<<./nix-develop-dlang-shared.org:dmd-version()>>
#+END_SRC
-**** dub
+*** dub
#+NAME: dub_version
#+HEADER: :noweb yes
@@ -1055,7 +1066,7 @@ postInstall:
<<./nix-develop-dlang-shared.org:dub-version()>>
#+END_SRC
-**** dtools
+*** dtools
#+NAME: dtools_version
#+HEADER: :noweb yes
@@ -1063,15 +1074,14 @@ postInstall:
<<./nix-develop-dlang-shared.org:dtools-version()>>
#+END_SRC
-*** empty sha56 hash
+** sha256 blank hash
-#+NAME: blank_hash
+#+NAME: sha256-blank
#+BEGIN_SRC nix
-sha256-0000000000000000000000000000000000000000000=
+<<./nix-develop-dlang-shared.org:sha256-blank()>>
#+END_SRC
-#+NAME: assumed_hash
+#+NAME: blank_hash
#+BEGIN_SRC nix
-sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+<<./nix-develop-dlang-shared.org:sha256-blank()>>
#+END_SRC
-
diff --git a/org/default_regex.org b/org/default_regex.org
index dc70056..cea0146 100644
--- a/org/default_regex.org
+++ b/org/default_regex.org
@@ -711,7 +711,7 @@ static src_formalised_file_path_parts = ctRegex!(`(?P<pth>(?:[/a-zA-Z0
** _module template yaml tags
-#+HEADER: :tangle "../src/sisudoc/meta/rgx_yaml_tags.d"
+#+HEADER: :tangle "../src/sisudoc/meta/rgx_yaml.d"
#+HEADER: :noweb yes
#+BEGIN_SRC d
<<doc_header_including_copyright_and_license>>
diff --git a/org/in_source_files.org b/org/in_source_files.org
index cdd220f..e83729f 100644
--- a/org/in_source_files.org
+++ b/org/in_source_files.org
@@ -374,7 +374,7 @@ template spineRawMarkupContent() {
sourcefile_body_content = _cii.contents;
insert_file_list_get = _cii.insert_files.dup;
images_list_get = _cii.images.dup;
- } else if (_opt_action.source || _opt_action.pod) {
+ } else if (_opt_action.source_or_pod) {
auto ins = Inserts();
ST_contents_inserts_images _cii
= ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src);
@@ -630,7 +630,7 @@ if (code_block_status == codeBlock.curly) {
markup_sourcesubfile_insert_content.length
);
}
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
_images ~= _extract_images(markup_sourcesubfile_insert_content);
}
auto ins = Inserts();
@@ -646,7 +646,7 @@ if (code_block_status == codeBlock.curly) {
+/
} else {
contents_insert ~= line; // images to extract for image list?
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
string[] _image_linelist = _extract_images(line);
if (_image_linelist.length > 0) {
_images ~= _image_linelist;
@@ -735,7 +735,7 @@ if (code_block_status == codeBlock.curly) {
fn_src_insert.to!string
);
contents ~= contents_insert_st.insert_contents;
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
string[] _image_linelist = _extract_images(contents_insert_st.images);
if (_image_linelist.length > 0) {
_images ~= _image_linelist;
@@ -753,7 +753,7 @@ if (code_block_status == codeBlock.curly) {
+/
} else {
contents ~= line;
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
string[] _image_linelist = _extract_images(line);
if (_image_linelist.length > 0) {
_images ~= _image_linelist;
diff --git a/org/nix-develop-dlang-shared.org b/org/nix-develop-dlang-shared.org
index 5623f63..2a2f66d 100644
--- a/org/nix-develop-dlang-shared.org
+++ b/org/nix-develop-dlang-shared.org
@@ -17,20 +17,51 @@
* nix
** direnv
+*** NOTES to update direnv in .envrc-nix
+
+- https://github.com/nix-community/nix-direnv
+
+check for latest version:
+
+- https://github.com/nix-community/nix-direnv/releases
+
+update direnv version and sha hash:
+- emacs org/nix-develop-dlang-shared.org
+
+re-tangle file:
+
+- emacs org/config_env.org
+ updates: .envrc-nix
+
+update flake.lock:
+- nix flake update && nix flake check && nix flake show
+
*** version SET
#+NAME: direnv-version
#+BEGIN_SRC org
-<<direnv_version_3_0_6>>
+<<direnv_version_3_0_7>>
#+END_SRC
#+NAME: direnv-hash
#+BEGIN_SRC org
-<<direnv_hash_3_0_6>>
+<<direnv_hash_3_0_7>>
#+END_SRC
*** versions
+**** 3.0.7
+
+#+NAME: direnv_version_3_0_7
+#+BEGIN_SRC org
+3.0.7
+#+END_SRC
+
+#+NAME: direnv_hash_3_0_7
+#+BEGIN_SRC org
+sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc=
+#+END_SRC
+
**** 3.0.6
#+NAME: direnv_version_3_0_6
@@ -81,6 +112,36 @@ sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=
* dlang
** ldc
+*** NOTES to update ldc
+
+check for latest version:
+
+update ldc version and sha hash:
+- emacs ./org/nix-develop-dlang-shared.org
+
+re-tangle files:
+- emacs ./org/nixpkgs_overlays_d_related.org
+ updates: nix-overlays/ldc/package.nix
+- emacs ./org/config_nix.org
+ updates: flake.nix
+- emacs ./org/config_env.org
+ updates: .envrc-nix
+
+update flake.lock:
+- nix flake update && nix flake check && nix flake show
+
+build:
+- nix build ".#spine-overlay-ldc" --print-build-logs
+
+adjust nix overlay if required (to get started):
+- git clone --depth 1 https://github.com/NixOS/nixpkgs
+- find ./nixpkgs/pkgs/ -type d -name "ldc"
+ ./nixpkgs/pkgs/by-name/ld/ldc
+- compare with overlay:
+ ./nix-overlays/ldc
+- overlay is tangled from:
+ emacs ./org/nixpkgs_overlays_d_related.org
+
*** version SET
**** version & sha256 nix composite
@@ -94,24 +155,65 @@ sha256 = "<<ldc-hash>>";
#+NAME: ldc-version
#+BEGIN_SRC org
-<<ldc_version_1_40_0>>
+<<ldc_version_1_41_0>>
#+END_SRC
#+NAME: ldc-hash
#+BEGIN_SRC org
-<<ldc_hash_1_40_0>>
+<<ldc_hash_1_41_0>>
#+END_SRC
#+NAME: ldc-llvm-set
#+BEGIN_SRC org
-<<ldc_llvm_set_1_40_0>>
+<<ldc_llvm_set_1_41_0>>
#+END_SRC
*** versions
+**** 1.41 OK ✓
+***** 1.41.0 OK ✓
+
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.41.0.tar.gz
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz
+
+#+NAME: ldc_version_1_41_0
+#+BEGIN_SRC nix
+1.41.0
+#+END_SRC
+
+#+NAME: ldc_hash_1_41_0
+#+BEGIN_SRC nix
+sha256-6LcpY3LSFK4KgEiGrFp/LONu5Vr+/+vI04wEEpF3s+s=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_41_0
+#+BEGIN_SRC nix
+llvm_20
+#+END_SRC
+
**** 1.40 OK ✓
+***** 1.40.1 OK ✓
+
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.1.tar.gz
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz
+
+#+NAME: ldc_version_1_40_1
+#+BEGIN_SRC nix
+1.40.1
+#+END_SRC
+
+#+NAME: ldc_hash_1_40_1
+#+BEGIN_SRC nix
+sha256-WdnwdH25A5oMNNY3uWG2hxnaAT+S1hNuP7LElH3uuuk=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_40_1
+#+BEGIN_SRC nix
+llvm_19
+#+END_SRC
+
***** 1.40.0 OK ✓
- - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0-beta6.tar.gz
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.0.tar.gz
- nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz
#+NAME: ldc_version_1_40_0
@@ -222,24 +324,67 @@ sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0=
#+END_SRC
** dmd
+
+- https://github.com/dlang/dmd/tags
+
*** version SET
#+NAME: dmd-version
#+BEGIN_SRC org
-<<dmd_version_2_109_1>>
+<<dmd_version_2_111_0>>
#+END_SRC
#+NAME: dmd-hash
#+BEGIN_SRC org
-<<dmd_hash_2_109_1>>
+<<dmd_hash_2_111_0>>
#+END_SRC
#+NAME: phobos-hash
#+BEGIN_SRC org
-<<phobos_hash_2_109_1>>
+<<phobos_hash_2_111_0>>
#+END_SRC
*** versions
+**** 2.111.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.111.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.111.0.tar.gz
+
+#+NAME: dmd_version_2_111_0
+#+BEGIN_SRC nix
+2.111.0
+#+END_SRC
+
+#+NAME: phobos_hash_2_111_0
+#+BEGIN_SRC nix
+sha256-9jySZbODoL8sULhYKj/l4+c/uiG5xY2dO240k9XQtPk=
+#+END_SRC
+
+#+NAME: dmd_hash_2_111_0
+#+BEGIN_SRC nix
+sha256-2bjsGa9nTny818dLRV6LKkes+Ycq8W+PFjwhGVrD5TM=
+#+END_SRC
+
+**** 2.110.0 OK ✓
+
+- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.110.0.tar.gz
+- nix-prefetch-url --unpack https://github.com/dlang/phobos/archive/refs/tags/v2.110.0.tar.gz
+
+#+NAME: dmd_version_2_110_0
+#+BEGIN_SRC nix
+2.110.0
+#+END_SRC
+
+#+NAME: phobos_hash_2_110_0
+#+BEGIN_SRC nix
+sha256-CmJpcHM+sIsaYBlpALCFoQFG+93s8gUyWmM0tYqjXkk=
+#+END_SRC
+
+#+NAME: dmd_hash_2_110_0
+#+BEGIN_SRC nix
+sha256-icXp9xWF2AI2gp7z/lQFAChmXfQePe9b5pbpQ9Mn19Y=
+#+END_SRC
+
**** 2.109.1 OK ✓
- nix-prefetch-url --unpack https://github.com/dlang/dmd/archive/refs/tags/v2.109.1.tar.gz
@@ -361,15 +506,30 @@ sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s=
#+NAME: dub-version
#+HEADER: :noweb yes
#+BEGIN_SRC org
-<<dub_version_1_38_1>>
+<<dub_version_1_39_0>>
#+END_SRC
#+NAME: dub-hash
#+BEGIN_SRC org
-<<dub_hash_1_38_1>>
+<<dub_hash_1_39_0>>
#+END_SRC
*** versions
+**** 1.39 OK ✓
+***** 1.39.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.39.0.tar.gz
+
+#+NAME: dub_version_1_39_0
+#+BEGIN_SRC nix
+1.39.0
+#+END_SRC
+
+#+NAME: dub_hash_1_39_0
+#+BEGIN_SRC nix
+sha256-73b15A9+hClD6IbuxTy9QZKpTKjUFYBuqGOclUyhrnM=
+#+END_SRC
+
**** 1.38 OK ✓
***** 1.38.1
@@ -482,61 +642,66 @@ sha256-5pW3Fu3PQ1ZLJnsuh7fPpEBNbVQgGfFyiuMrAVOJKQA=
#+NAME: dtools-version
#+BEGIN_SRC org
-<<dtools_version_2_103_1>>
+<<dtools_version_2_110_0>>
#+END_SRC
#+NAME: dtools-hash
#+BEGIN_SRC org
-<<dtools_hash_2_103_1>>
+<<dtools_hash_2_110_0>>
#+END_SRC
*** versions
-**** 2.103.1 OK ✓
+**** 2.110.0 OK ✓
-- https://github.com/dlang/tools/releases/tag/v2.103.1
+- https://github.com/dlang/tools/releases/tag/v2.110.0
-#+NAME: dtools_version_2_103_1
+#+NAME: dtools_version_2_110_0
#+BEGIN_SRC nix
-2.103.1
+2.110.0
#+END_SRC
-#+NAME: dtools_hash_2_103_1
+#+NAME: dtools_hash_2_110_0
#+BEGIN_SRC nix
-sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=
+sha256-xMEHnrstL5hAkhp8+/z1I2KZWZ7eztWZnUGLTKCfbBI=
#+END_SRC
-**** 2.102.2
+**** 2.109.1 OK ✓
-- https://github.com/dlang/tools/releases/tag/v2.102.2
+- https://github.com/dlang/tools/releases/tag/v2.109.1
-#+NAME: dtools_version_2_102_2
+#+NAME: dtools_version_2_109_1
#+BEGIN_SRC nix
-2.102.2
+2.109.1
#+END_SRC
-#+NAME: dtools_hash_2_102_2
+#+NAME: dtools_hash_2_109_1
#+BEGIN_SRC nix
-sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=
+sha256-Pfj8Kwf5AlcrHhLs5A/0vIFWLZaNR3ro+esbs7oWN9I=
#+END_SRC
-**** 2.095.1
+**** 2.104.1 OK ✓
-- https://github.com/dlang/tools/releases/tag/v2.095.1
+- https://github.com/dlang/tools/releases/tag/v2.104.2
-#+NAME: dtools_version_2_095_1
+#+NAME: dtools_version_2_104_2
#+BEGIN_SRC nix
-2.095.1
+2.104.2
#+END_SRC
-#+NAME: dtools_hash_2_095_1
+#+NAME: dtools_hash_2_104_2
#+BEGIN_SRC nix
-sha256:0rdfk3mh3fjrb0h8pr8skwlq6ac9hdl1fkrkdl7n1fa2806b740b
+sha256-Pfj8Kwf5AlcrHhLs5A/0vIFWLZaNR3ro+esbs7oWN9I=
#+END_SRC
** sha256 blank_hash
#+NAME: blank_hash
#+BEGIN_SRC nix
+<<sha256-blank>>
+#+END_SRC
+
+#+NAME: sha256-blank
+#+BEGIN_SRC nix
sha256-0000000000000000000000000000000000000000000=
#+END_SRC
diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org
index 665c448..1b89d89 100644
--- a/org/nixpkgs_overlays_d_related.org
+++ b/org/nixpkgs_overlays_d_related.org
@@ -291,12 +291,6 @@ use flake .
#use flake .#default
#+END_SRC
-#+BEGIN_SRC shell
-- https://github.com/nix-community/nix-direnv
-NixDirEnvSHA="sha256-0000000000000000000000000000000000000000000="
-direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc
-#+END_SRC
-
** .nix
*** flake.nix
@@ -356,32 +350,34 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
inherit shell;
inherit devEnv;
packages = [
- gnumake
ldc
dub
dtools
+ gnumake
];
inherit shellHook;
};
dsh-overlay-ldc-dub = mkShell {
- name = "overlay - ldc-<<ldc_version>> - dub-<<dub_version>>";
+ name = "overlay - ldc-<<ldc_version>> - dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = [
- gnumake
ldc
dub
+ dtools
+ gnumake
];
inherit shellHook;
};
dsh-overlay-dmd-dub = mkShell {
- name = "overlay - dmd-<<dmd_version>> - dub-<<dub_version>>";
+ name = "overlay - dmd-<<dmd_version>> - dub-<<dub_version>> - dtools-<<dtools_version>>";
inherit shell;
inherit devEnv;
packages = [
- gnumake
dmd
dub
+ dtools
+ gnumake
];
inherit shellHook;
};
@@ -390,11 +386,12 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
inherit shell;
inherit devEnv;
packages = [
- gnumake
ldc
gtkd
tilix
dub
+ dtools
+ gnumake
];
inherit shellHook;
};
@@ -403,9 +400,10 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
# inherit shell;
# inherit devEnv;
# packages = [
- # gnumake
# gdc
# dub
+ # dtools
+ # gnumake
# ];
# inherit shellHook;
#};
@@ -416,6 +414,7 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
packages = with pkgs-nix; [
ldc
dub
+ dtools
gnumake
];
inherit shellHook;
@@ -427,6 +426,7 @@ direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${Nix
packages = with pkgs-nix; [
dmd
dub
+ dtools
gnumake
];
inherit shellHook;
@@ -507,41 +507,42 @@ pkgs.callPackage ./shell.nix {}
- OK ldc 1.32.2 tested
-*** overlays
-**** default.nix OK ✓
+*** overlays OK ✓
+**** default.nix
#+HEADER: :tangle "../nix-overlays/ldc/default.nix"
#+BEGIN_SRC nix
import ./package.nix
#+END_SRC
-**** package.nix OK ✓ (unaltered)
+**** package.nix OK ✓
#+HEADER: :tangle "../nix-overlays/ldc/package.nix"
#+BEGIN_SRC nix
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, ninja
-, <<ldc_llvm_set>>
-, curl
-, tzdata
-, lit
-, gdb
-, unzip
-, darwin
-, callPackage
-, makeWrapper
-, runCommand
-, writeText
-, targetPackages
-
-, ldcBootstrap ? callPackage ./bootstrap.nix { }
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ ninja,
+ <<ldc_llvm_set>>,
+ curl,
+ tzdata,
+ lit,
+ gdb,
+ unzip,
+ darwin,
+ callPackage,
+ makeWrapper,
+ runCommand,
+ writeText,
+ targetPackages,
+
+ ldcBootstrap ? callPackage ./bootstrap.nix { },
}:
let
- pathConfig = runCommand "ldc-lib-paths" {} ''
+ pathConfig = runCommand "ldc-lib-paths" { } ''
mkdir $out
echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile
echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile
@@ -627,8 +628,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
# https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746
- additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin
- "|druntime-test-shared";
+ additionalExceptions = lib.optionalString stdenv.hostPlatform.isDarwin "|druntime-test-shared";
checkPhase = ''
# Build default lib test runners
@@ -668,34 +668,35 @@ stdenv.mkDerivation (finalAttrs: {
};
passthru.ldcBootstrap = ldcBootstrap;
- passthru.tests = let
- ldc = finalAttrs.finalPackage;
- helloWorld = stdenv.mkDerivation (finalAttrs: {
- name = "ldc-hello-world";
- src = writeText "hello_world.d" ''
- module hello_world;
- import std.stdio;
- void main() {
- writeln("Hello, world!");
- }
- '';
- dontUnpack = true;
- buildInputs = [ ldc ];
- dFlags = [];
- buildPhase = ''
- ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src
- '';
- installPhase = ''
- mkdir -p $out/bin
- mv test $out/bin
- '';
- });
- in {
- # Without -shared, built binaries should not contain
- # references to the compiler binaries.
- no-references-to-compiler = helloWorld.overrideAttrs {
- disallowedReferences = [ ldc ];
- dFlags = ["-g"];
+ passthru.tests =
+ let
+ ldc = finalAttrs.finalPackage;
+ helloWorld = stdenv.mkDerivation (finalAttrs: {
+ name = "ldc-hello-world";
+ src = writeText "hello_world.d" ''
+ module hello_world;
+ import std.stdio;
+ void main() {
+ writeln("Hello, world!");
+ }
+ '';
+ dontUnpack = true;
+ buildInputs = [ ldc ];
+ dFlags = [ ];
+ buildPhase = ''
+ ldc2 ${lib.escapeShellArgs finalAttrs.dFlags} -of=test $src
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ mv test $out/bin
+ '';
+ });
+ in {
+ # Without -shared, built binaries should not contain
+ # references to the compiler binaries.
+ no-references-to-compiler = helloWorld.overrideAttrs {
+ disallowedReferences = [ ldc ];
+ dFlags = ["-g"];
};
};
})
@@ -707,7 +708,16 @@ stdenv.mkDerivation (finalAttrs: {
#+HEADER: :tangle "../nix-overlays/ldc/bootstrap.nix"
#+BEGIN_SRC nix
-{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }:
+{
+ lib,
+ stdenv,
+ fetchurl,
+ curl,
+ tzdata,
+ autoPatchelfHook,
+ fixDarwinDylibNames,
+ libxml2,
+}:
let
inherit (stdenv) hostPlatform;
@@ -803,10 +813,17 @@ hashes = {
*** overlays
**** default.nix
-***** default.nix >=2.108.0)
#+HEADER: :tangle "../nix-overlays/dmd/default.nix"
#+BEGIN_SRC nix
+import ./package.nix
+#+END_SRC
+
+**** package.nix OK ✓
+***** package.nix >=2.108.0)
+
+#+HEADER: :tangle "../nix-overlays/dmd/package.nix"
+#+BEGIN_SRC nix
import ./generic.nix {
version = "<<dmd_version>>";
dmdHash = "<<dmd_hash>>";
@@ -814,10 +831,9 @@ import ./generic.nix {
}
#+END_SRC
-***** default.nix < 2.108.0)
+***** package.nix < 2.108.0)
-
-#+HEADER: :tangle-NO "../nix-overlays/dmd/default.nix"
+#+HEADER: :tangle-NO "../nix-overlays/dmd/package.nix"
#+BEGIN_SRC nix
import ./generic.nix {
version = "<<dmd_version>>";
@@ -830,31 +846,33 @@ import ./generic.nix {
#+HEADER: :tangle "../nix-overlays/dmd/generic.nix"
#+BEGIN_SRC nix
-{ version
-, dmdHash
-, phobosHash
+{
+ version,
+ dmdHash,
+ phobosHash,
}:
-{ stdenv
-, lib
-, fetchFromGitHub
-, removeReferencesTo
-, makeWrapper
-, which
-, writeTextFile
-, curl
-, tzdata
-, gdb
-#, Foundation
-, callPackage
-, targetPackages
-, fetchpatch
-, bash
-, installShellFiles
-, git
-, unzip
-, dmdBootstrap ? callPackage ./bootstrap.nix { }
-, dmdBin ? "${dmdBootstrap}/bin"
+{
+ stdenv,
+ lib,
+ fetchFromGitHub,
+ removeReferencesTo,
+ makeWrapper,
+ which,
+ writeTextFile,
+ curl,
+ tzdata,
+ gdb,
+ # Foundation,
+ callPackage,
+ targetPackages,
+ fetchpatch,
+ bash,
+ installShellFiles,
+ git,
+ unzip,
+ dmdBootstrap ? callPackage ./bootstrap.nix { },
+ dmdBin ? "${dmdBootstrap}/bin",
}:
let
@@ -868,11 +886,8 @@ let
};
bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits;
- osname =
- if stdenv.hostPlatform.isDarwin then
- "osx"
- else
- stdenv.hostPlatform.parsed.kernel.name;
+ osname = if stdenv.hostPlatform.isDarwin then "osx"
+ else stdenv.hostPlatform.parsed.kernel.name;
pathToDmd = "\${NIX_BUILD_TOP}/dmd/generated/${osname}/release/${bits}/dmd";
in
@@ -929,7 +944,9 @@ stdenv.mkDerivation (finalAttrs: {
rm dmd/compiler/test/runnable/gdb4149.d
rm dmd/compiler/test/runnable/gdb4181.d
rm dmd/compiler/test/compilable/ddocYear.d
- rm dmd/compiler/test/fail_compilation/needspkgmod.d
+ rm dmd/compiler/test/compilable/sarif_success_test.d
+ rm dmd/compiler/test/fail_compilation/sarif_test.d
+ rm dmd/compiler/test/fail_compilation/sarifmultiple_test.d
# Disable tests that rely on objdump whitespace until fixed upstream:
# https://issues.dlang.org/show_bug.cgi?id=23317
@@ -941,9 +958,9 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace dmd/compiler/test/dshell/test6952.d --replace-fail "/usr/bin/env bash" "${bash}/bin/bash"
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace phobos/std/socket.d --replace-fail "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
- '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
- substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
- '';
+ ''; # + lib.optionalString stdenv.hostPlatform.isDarwin ''
+ # substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
+ #'';
nativeBuildInputs = [
makeWrapper
@@ -1187,23 +1204,26 @@ stdenv.mkDerivation {
- OK dub == 1.30.0 OK ✓
*** overlays
-**** default.nix OK ✓
+**** default.nix
#+HEADER: :tangle "../nix-overlays/dub/default.nix"
#+BEGIN_SRC nix
import ./package.nix
#+END_SRC
+**** package.nix OK ✓
+
#+HEADER: :tangle "../nix-overlays/dub/package.nix"
#+BEGIN_SRC nix
-{ lib
-, stdenv
-, fetchFromGitHub
-, curl
-, <<dcompiler>>
-, dcompiler ? <<dcompiler>>
-, libevent
-, rsync
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ curl,
+ <<dcompiler>>,
+ dcompiler ? <<dcompiler>>,
+ libevent,
+ rsync,
}:
assert dcompiler != null;
@@ -1289,7 +1309,7 @@ stdenv.mkDerivation (finalAttrs: {
})
#+END_SRC
-*** dcompiler SET
+*** dcompiler
#+NAME: dcompiler
#+BEGIN_SRC nix
@@ -1323,62 +1343,188 @@ dmd
#+HEADER: :tangle "../nix-overlays/dtools/default.nix"
#+BEGIN_SRC nix
-{ stdenv, lib, fetchFromGitHub, fetchpatch, ldc, curl, gnumake42 }:
+import ./package.nix
+#+END_SRC
+
+**** package.nix
+
+#+HEADER: :tangle "../nix-overlays/dtools/package.nix"
+#+BEGIN_SRC nix
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ ldc,
+ curl,
+}:
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
pname = "dtools";
version = "<<dtools_version>>";
src = fetchFromGitHub {
owner = "dlang";
repo = "tools";
- rev = "v${version}";
- sha256 = "<<dtools_hash>>";
+ rev = "v${finalAttrs.version}";
+ hash = "<<dtools_hash>>";
name = "dtools";
};
patches = [
- (fetchpatch {
- # part of https://github.com/dlang/tools/pull/441
- url = "https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch"; # Fix LDC arm64 build
- sha256 = "sha256-x6EclTYN1Y5FG57KLhbBK0BZicSYcZoWO7MTVcP4T18=";
- })
+ # Disable failing tests
+ ./disabled-tests.diff
+ # Fix LDC arm64 build
+ ./fix-ldc-arm64.diff
];
- nativeBuildInputs = [ ldc gnumake42 ]; # fails with make 4.4
+ nativeBuildInputs = [ ldc ];
buildInputs = [ curl ];
- makeCmd = ''
- make -f posix.mak all DMD_DIR=dmd DMD=${ldc.out}/bin/ldmd2 CC=${stdenv.cc}/bin/cc
- '';
+ makeFlags = [
+ "CC=${stdenv.cc}/bin/cc"
+ "DMD=${ldc.out}/bin/ldmd2"
+ "INSTALL_DIR=$(out)"
+ ];
- buildPhase = ''
- $makeCmd
- '';
+ enableParallelBuilding = true;
doCheck = true;
-
- checkPhase = ''
- $makeCmd test_rdmd
- '';
-
- installPhase = ''
- $makeCmd INSTALL_DIR=$out install
- '';
+ checkTarget = "test_rdmd";
meta = with lib; {
- description = "Ancillary tools for the D programming language compiler";
+ description = "Ancillary tools for the D programming language";
homepage = "https://github.com/dlang/tools";
- license = lib.licenses.boost;
- maintainers = with maintainers; [ ThomasMader ];
- platforms = lib.platforms.unix;
+ license = licenses.boost;
+ maintainers = with maintainers; [ jtbx ];
+ platforms = platforms.unix;
};
-}
+})
+#+END_SRC
+
+#+HEADER: :tangle "../nix-overlays/dtools/disabled-tests.diff"
+#+BEGIN_SRC diff
+--- a/rdmd_test.d
++++ b/rdmd_test.d
+@@ -616,7 +616,7 @@ void runTests(string rdmdApp, string compiler, string model)
+ enforce(res.status == 1, res.output);
+ }
+
+- version (Posix)
++ version (none)
+ {
+ import std.conv : to;
+ auto makeVersion = execute(["make", "--version"]).output.splitLines()[0];
+#+END_SRC
+
+#+HEADER: :tangle "../nix-overlays/dtools/fix-ldc-arm64.diff"
+#+BEGIN_SRC diff
+Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch
+--- /dev/null
++++ b/osmodel.mak
+@@ -0,0 +1,75 @@
++# osmodel.mak
++#
++# Detects and sets the macros:
++#
++# OS = one of {osx,linux,freebsd,openbsd,netbsd,dragonflybsd,solaris}
++# MODEL = one of { 32, 64 }
++# MODEL_FLAG = one of { -m32, -m64 }
++# ARCH = one of { x86, x86_64, aarch64 }
++#
++# Note:
++# Keep this file in sync between druntime, phobos, and dmd repositories!
++# Source: https://github.com/dlang/dmd/blob/master/src/osmodel.mak
++
++
++ifeq (,$(OS))
++ uname_S:=$(shell uname -s)
++ ifeq (Darwin,$(uname_S))
++ OS:=osx
++ endif
++ ifeq (Linux,$(uname_S))
++ OS:=linux
++ endif
++ ifeq (FreeBSD,$(uname_S))
++ OS:=freebsd
++ endif
++ ifeq (OpenBSD,$(uname_S))
++ OS:=openbsd
++ endif
++ ifeq (NetBSD,$(uname_S))
++ OS:=netbsd
++ endif
++ ifeq (DragonFly,$(uname_S))
++ OS:=dragonflybsd
++ endif
++ ifeq (Solaris,$(uname_S))
++ OS:=solaris
++ endif
++ ifeq (SunOS,$(uname_S))
++ OS:=solaris
++ endif
++ ifeq (,$(OS))
++ $(error Unrecognized or unsupported OS for uname: $(uname_S))
++ endif
++endif
++
++# When running make from XCode it may set environment var OS=MACOS.
++# Adjust it here:
++ifeq (MACOS,$(OS))
++ OS:=osx
++endif
++
++ifeq (,$(MODEL))
++ ifeq ($(OS), solaris)
++ uname_M:=$(shell isainfo -n)
++ else
++ uname_M:=$(shell uname -m)
++ endif
++ ifneq (,$(findstring $(uname_M),x86_64 amd64))
++ MODEL:=64
++ ARCH:=x86_64
++ endif
++ ifneq (,$(findstring $(uname_M),aarch64 arm64))
++ MODEL:=64
++ ARCH:=aarch64
++ endif
++ ifneq (,$(findstring $(uname_M),i386 i586 i686))
++ MODEL:=32
++ ARCH:=x86
++ endif
++ ifeq (,$(MODEL))
++ $(error Cannot figure 32/64 model and arch from uname -m: $(uname_M))
++ endif
++endif
++
++MODEL_FLAG:=-m$(MODEL)
+--- a/Makefile
++++ b/Makefile
+@@ -9,9 +9,8 @@ DUB=dub
+ WITH_DOC = no
+ DOC = ../dlang.org
+
+-# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile from dmd
+-$(shell [ ! -d $(DMD_DIR) ] && git clone --depth=1 https://github.com/dlang/dmd $(DMD_DIR))
+-include $(DMD_DIR)/compiler/src/osmodel.mak
++# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile
++include osmodel.mak
+
+ ifeq (windows,$(OS))
+ DOTEXE:=.exe
+@@ -30,7 +29,7 @@ DFLAGS = $(MODEL_FLAG) $(if $(findstring windows,$(OS)),,-fPIC) -preview=dip1000
+ DFLAGS += $(WARNINGS)
+
+ # Default DUB flags (DUB uses a different architecture format)
+-DUBFLAGS = --arch=$(subst 32,x86,$(subst 64,x86_64,$(MODEL)))
++DUBFLAGS = --arch=$(ARCH)
+
+ TOOLS = \
+ $(ROOT)/catdoc$(DOTEXE) \
#+END_SRC
-** versions SET
+** versions GET
*** direnv
-***** select version SET OK ✓
+***** select version
#+NAME: direnv_version
#+HEADER: :noweb yes
@@ -1399,7 +1545,7 @@ stdenv.mkDerivation rec {
<<./nix-develop-dlang-shared.org:ldc-version-info()>>
#+END_SRC
-***** select version SET OK ✓
+***** selected version
#+NAME: ldc_version
#+HEADER: :noweb yes
@@ -1418,6 +1564,7 @@ stdenv.mkDerivation rec {
#+END_SRC
*** dmd
+**** selected version
#+NAME: dmd_version
#+HEADER: :noweb yes
@@ -1436,6 +1583,7 @@ stdenv.mkDerivation rec {
#+END_SRC
*** dub
+**** selected version
#+NAME: dub_version
#+HEADER: :noweb yes
@@ -1449,6 +1597,7 @@ stdenv.mkDerivation rec {
#+END_SRC
*** dtools
+**** selected version
#+NAME: dtools_version
#+HEADER: :noweb yes
@@ -1461,4 +1610,16 @@ stdenv.mkDerivation rec {
<<./nix-develop-dlang-shared.org:dtools-hash()>>
#+END_SRC
+** sha256 blank_hash
+
+#+NAME: sha256-blank
+#+BEGIN_SRC nix
+<<./nix-develop-dlang-shared.org:sha256-blank()>>
+#+END_SRC
+
+#+NAME: blank_hash
+#+BEGIN_SRC nix
+<<./nix-develop-dlang-shared.org:sha256-blank()>>
+#+END_SRC
+
* __END__
diff --git a/org/ocda.org b/org/ocda.org
index 148edf8..2509725 100644
--- a/org/ocda.org
+++ b/org/ocda.org
@@ -1,6 +1,7 @@
-*- mode: org -*-
#+TITLE: sisudoc spine (doc_reform) object-centric document abstraction
#+DESCRIPTION: documents - structuring, publishing in multiple formats & search
+#+SUMMARY: process markup document, create document abstraction
#+FILETAGS: :spine:abstraction:
#+AUTHOR: Ralph Amissah
#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
@@ -18,7 +19,8 @@
- [[./doc-reform.org][doc-reform.org]] [[./][org/]]
* (Object-Centric) Document Abstraction
-Process markup document, create document abstraction.
+
+- Process markup document, create document abstraction
** _module template_ :module:metadoc_from_src:
@@ -69,7 +71,7 @@ mixin docAbstractionFunctions;
#+END_SRC
** docAbstraction
-*** abstraction summary
+*** _toc_ abstraction summary
#+NAME: docAbstraction
#+HEADER: :noweb yes
@@ -219,7 +221,7 @@ int cnt1 = 1; int cnt2 = 1; int cnt3 = 1;
// abstraction init ↑
#+END_SRC
-*** abstraction init substitutions
+*** debug abstraction init substitutions
#+NAME: docAbstractionInitSubstitutionsDebug
#+HEADER: :noweb yes
@@ -231,8 +233,8 @@ debug (substitutions) {
}
if (conf_make_meta.make.substitute) {
foreach(substitution_pair; conf_make_meta.make.substitute) {
- writeln("regex to match: ", substitution_pair[Substitute.match]);
- writeln("substitution to make: ", substitution_pair[Substitute.markup]);
+ writeln("regex to match: ", substitution_pair[Substitute.match]);
+ writeln("substitution to make: ", substitution_pair[Substitute.markup]);
}
}
if (conf_make_meta.make.bold) {
@@ -250,7 +252,7 @@ debug (substitutions) {
}
#+END_SRC
-*** loop source by line (large block)
+*** _loop_ source by line (large block)
#+NAME: docAbstractionMainLoopSrcByLine
#+HEADER: :noweb yes
@@ -883,7 +885,7 @@ _loopMarkupSrcByLineStruct loopMarkupSrcByLine(
}
#+END_SRC
-*** post loop (consider and segment/break up further in code & org)
+*** _post loop_ (consider and segment/break up further in code & org)
#+NAME: docAbstractionPostMainLoop
#+HEADER: :noweb yes
@@ -1456,7 +1458,7 @@ debug(segnames) {
}
#+END_SRC
-*** return structure
+*** _return structure_
#+NAME: docAbstractionReturnsStruct
#+HEADER: :noweb yes
diff --git a/org/out_sqlite.org b/org/out_sqlite.org
index b9ab903..2d10d87 100644
--- a/org/out_sqlite.org
+++ b/org/out_sqlite.org
@@ -565,6 +565,7 @@ import
sisudoc.io_out.rgx,
sisudoc.io_out.rgx_xhtml;
import
+ // std.digest.sha,
std.file,
std.uri;
import std.conv : to;
diff --git a/org/out_src_pod.org b/org/out_src_pod.org
index e72d332..a8a35ad 100644
--- a/org/out_src_pod.org
+++ b/org/out_src_pod.org
@@ -31,7 +31,7 @@ template spinePod() {
<<output_imports>>
void spinePod(T)(T doc_matters) {
<<source_pod_init>>
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
try {
{
podArchive_directory_tree(doc_matters, pths_pod);
@@ -105,8 +105,8 @@ assert (doc_matters.src.filename.match(rgx_files.src_fn));
#+BEGIN_SRC d
auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
auto pth_dr_doc_src = doc_matters.src_path_info;
- if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) {
- writeln(__LINE__, ": ",
+ if (doc_matters.opt.action.vox_gt2) { // correct
+ writeln(__LINE__, ":", __FILE__, ":\n",
doc_matters.src.filename, " -> ",
pths_pod.fn_doc(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod
);
@@ -116,7 +116,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
string[string][string] _digests;
{ // bundle images - get digest
foreach (image; doc_matters.srcs.image_list) {
- debug(podimages) {
+ if (doc_matters.opt.action.vox_gt2) {
writeln(
pth_dr_doc_src.image_root.to!string, "/", image, " -> ",
pths_pod.image_root(doc_matters.src.filename).zpod, "/", image
@@ -139,7 +139,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
if (doc_matters.opt.action.source_or_pod) {
fn_src_in.copy(fn_src_out_filesystem);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_bin", fn_src_in, fn_src_out_pod_zip_base, zip);
}
} else {
@@ -163,7 +163,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
if (doc_matters.opt.action.source_or_pod) {
fn_src_in.copy(fn_src_out_filesystem);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip);
}
} else {
@@ -208,7 +208,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
if (doc_matters.opt.action.source_or_pod) {
pod_filelist_yaml_string.writeln(_pm);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("string", _pm, fn_src_out_pod_zip_base, zip);
}
}
@@ -228,11 +228,14 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
string fn_src_out_filesystem_lng
= pths_pod.fn_doc(doc_matters.src.filename, _lang).filesystem_open_zpod.to!string;
string _sstm = (doc_matters.pod.manifest_path ~ "/media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename);
- // writeln(_sstm);
- if (exists(_sstm)) { // what of language?
- debug(io) { writeln("(io debug) src in found: ", _sstm); }
+ string _pth_file_sstm;
+ if (exists(_sstm)) { _pth_file_sstm = _sstm;
+ } else if (exists(fn_src_in)) { _pth_file_sstm = fn_src_in;
+ }
+ if (exists(_pth_file_sstm)) { // what of language?
+ debug(io) { writeln("(io debug) src in found: ", _pth_file_sstm); }
{ // take DIGEST write to pod file digests.txt
- auto data = (cast(byte[]) (_sstm).read);
+ auto data = (cast(byte[]) (_pth_file_sstm).read);
_digests[_lang]["sstm"] ~= data.sha256Of.toHexString ~ "::" ~ data.length.to!string ~ " - " ~ doc_matters.src.filename ~ " - [" ~ _lang ~ "]";
// writeln(data.sha256Of.toHexString, "::", data.length, " - ", doc_matters.src.filename);
}
@@ -240,11 +243,11 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
filelist_src_zpod_arr ~= fn_src_out_inside_pod;
string _pod_to_markup_file = doc_matters.src.pod_name ~ "/" ~ "media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename;
if (doc_matters.opt.action.source_or_pod) {
- _sstm.copy(fn_src_out_filesystem_lng);
+ _pth_file_sstm.copy(fn_src_out_filesystem_lng);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
auto _rgx_sstm = regex(r"(?P<path_to_pod>\S+?)(?P<podname>[a-z_-]+)/(?P<from_root>media/text/)(?P<language>\S+?)/(?P<filename>\S+?\.ss[mt])");
- if (auto _x = _sstm.match(_rgx_sstm)){
+ if (auto _x = _pth_file_sstm.match(_rgx_sstm)){
if (doc_matters.src.lng == doc_matters.pod.manifest_list_of_languages[$-1]) { // again wait until all language versions of .ssm parsed
string _path_to_pod = _x.captures["path_to_pod"];
string _podname = _x.captures["podname"];
@@ -259,12 +262,12 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
}
}
} else {
- zip = podArchive("file_path_text", _sstm, fn_src_out_pod_zip_base, zip);
+ zip = podArchive("file_path_text", _pth_file_sstm, fn_src_out_pod_zip_base, zip);
}
}
} else {
if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) {
- writeln("WARNING (io) src in NOT found (markup source): ", _sstm);
+ writeln("WARNING (io) src in NOT found (markup source): \n", _sstm, "or in", fn_src_in);
}
}
}
@@ -308,7 +311,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
).filesystem_open_zpod.to!string;
_pth_mkup_src_in.copy(fn_src_out_filesystem); // check why here, thought dealt with elsewhere
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_text", _pth_mkup_src_in, _pth_mkup_src_out, zip);
}
} else {
@@ -342,7 +345,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
if (doc_matters.opt.action.source_or_pod) {
fn_src_in.copy(fn_src_out_filesystem);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip);
}
} else {
diff --git a/org/spine.org b/org/spine.org
index 51c649c..05245f7 100644
--- a/org/spine.org
+++ b/org/spine.org
@@ -37,7 +37,6 @@
- by zip filename
#+HEADER: :tangle "../src/sisudoc/spine.d"
-#+HEADER: :shebang "#!/usr/bin/env rdmd"
#+HEADER: :noweb yes
#+BEGIN_SRC d
<<doc_header_including_copyright_and_license>>
diff --git a/org/spine_info.org b/org/spine_info.org
index a2078fe..2d61c20 100644
--- a/org/spine_info.org
+++ b/org/spine_info.org
@@ -77,7 +77,7 @@
<<sisudoc_spine_README_command_examples_populate_db_text>>
-,*** generate a cgi search form in d
+,*** generate a cgi search form
<<sisudoc_spine_README_command_examples_search_db_cgi_text>>
@@ -85,7 +85,7 @@
<<sisudoc_spine_README_command_examples_compile_search_db_cgi_text>>
-,*** create db & search form
+,*** create db
<<sisudoc_spine_README_command_examples_create_db_and_search_form_text>>
@@ -196,7 +196,7 @@
<<sisudoc_spine_README_command_examples_compile_search_db_cgi_text>>
-### create db & search form
+### create db
<<sisudoc_spine_README_command_examples_create_db_and_search_form_text>>
@@ -624,23 +624,16 @@ for a document collection you can point to the document collection:
#+NAME: sisudoc_spine_README_command_examples_search_db_cgi_text
#+BEGIN_SRC text
-spine -v --cgi-search-form-codegen \
- --output=/var/www/html \
- ~spineMarkupSamples/pod
-
-spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod
+The CGI search form is built separately in the sisudoc-spine-search-cgi/ directory.
-spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod/.dr/config_local_site
+Steps:
+1. Clone the sisudoc-spine-search-cgi repository
+2. Configure views/configuration.txt with your web server settings
+3. Build the CGI binary using Nix or dub
+4. Deploy the CGI binary to your web server's cgi-bin directory
-spine --cgi-search-form-codegen --output=`echo ~webDocRoot` ~spineMarkupSamples/pod
-
-spine --cgi-search-form-codegen --cgi-sqlite-search-filename="spine_search" --output=`echo ~webDocRoot`
-
-spine -v --cgi-search-form-codegen \
- --sqlite-db-filename="spine.search.db" \
- --cgi-sqlite-search-filename="spine-search" \
- --output=/var/www/html \
- ~spineMarkupSamples/pod
+For detailed instructions, see:
+ sisudoc-spine-search-cgi/README.md
#+END_SRC
#+NAME: sisudoc_spine_README_command_examples_compile_search_db_cgi_text
@@ -676,9 +669,10 @@ cgi-bin directory
#+BEGIN_SRC text
spine -v \
--sqlite-db-create --sqlite-db-filename="spine.search.db" \
- --cgi-search-form-codegen --cgi-sqlite-search-filename="spine-search" \
--output=/var/www/html \
~spineMarkupSamples/pod/*
+
+Note: The CGI search form is built separately in sisudoc-spine-search-cgi/
#+END_SRC
#+NAME: sisudoc_spine_README_command_examples_html_with_links_to_search_form_text
diff --git a/src/sisudoc/io_in/read_source_files.d b/src/sisudoc/io_in/read_source_files.d
index c683d1e..7ee0fb1 100644
--- a/src/sisudoc/io_in/read_source_files.d
+++ b/src/sisudoc/io_in/read_source_files.d
@@ -132,7 +132,7 @@ template spineRawMarkupContent() {
sourcefile_body_content = _cii.contents;
insert_file_list_get = _cii.insert_files.dup;
images_list_get = _cii.images.dup;
- } else if (_opt_action.source || _opt_action.pod) {
+ } else if (_opt_action.source_or_pod) {
auto ins = Inserts();
ST_contents_inserts_images _cii
= ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src);
@@ -297,7 +297,7 @@ template spineRawMarkupContent() {
markup_sourcesubfile_insert_content.length
);
}
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
_images ~= _extract_images(markup_sourcesubfile_insert_content);
}
auto ins = Inserts();
@@ -313,7 +313,7 @@ template spineRawMarkupContent() {
+/
} else {
contents_insert ~= line; // images to extract for image list?
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
string[] _image_linelist = _extract_images(line);
if (_image_linelist.length > 0) {
_images ~= _image_linelist;
@@ -392,7 +392,7 @@ template spineRawMarkupContent() {
fn_src_insert.to!string
);
contents ~= contents_insert_st.insert_contents;
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
string[] _image_linelist = _extract_images(contents_insert_st.images);
if (_image_linelist.length > 0) {
_images ~= _image_linelist;
@@ -410,7 +410,7 @@ template spineRawMarkupContent() {
+/
} else {
contents ~= line;
- if (_opt_action.source || _opt_action.pod) {
+ if (_opt_action.source_or_pod) {
string[] _image_linelist = _extract_images(line);
if (_image_linelist.length > 0) {
_images ~= _image_linelist;
diff --git a/src/sisudoc/io_out/source_pod.d b/src/sisudoc/io_out/source_pod.d
index a6253ab..640e7d2 100644
--- a/src/sisudoc/io_out/source_pod.d
+++ b/src/sisudoc/io_out/source_pod.d
@@ -73,7 +73,7 @@ template spinePod() {
auto lang = Lang();
static auto rgx_files = RgxFiles();
assert (doc_matters.src.filename.match(rgx_files.src_fn));
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
try {
{
podArchive_directory_tree(doc_matters, pths_pod);
@@ -139,8 +139,8 @@ template spinePod() {
}
auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) {
auto pth_dr_doc_src = doc_matters.src_path_info;
- if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) {
- writeln(__LINE__, ": ",
+ if (doc_matters.opt.action.vox_gt2) { // correct
+ writeln(__LINE__, ":", __FILE__, ":\n",
doc_matters.src.filename, " -> ",
pths_pod.fn_doc(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod
);
@@ -150,7 +150,7 @@ template spinePod() {
string[string][string] _digests;
{ // bundle images - get digest
foreach (image; doc_matters.srcs.image_list) {
- debug(podimages) {
+ if (doc_matters.opt.action.vox_gt2) {
writeln(
pth_dr_doc_src.image_root.to!string, "/", image, " -> ",
pths_pod.image_root(doc_matters.src.filename).zpod, "/", image
@@ -173,7 +173,7 @@ template spinePod() {
if (doc_matters.opt.action.source_or_pod) {
fn_src_in.copy(fn_src_out_filesystem);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_bin", fn_src_in, fn_src_out_pod_zip_base, zip);
}
} else {
@@ -197,7 +197,7 @@ template spinePod() {
if (doc_matters.opt.action.source_or_pod) {
fn_src_in.copy(fn_src_out_filesystem);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip);
}
} else {
@@ -242,7 +242,7 @@ template spinePod() {
if (doc_matters.opt.action.source_or_pod) {
pod_filelist_yaml_string.writeln(_pm);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("string", _pm, fn_src_out_pod_zip_base, zip);
}
}
@@ -262,11 +262,14 @@ template spinePod() {
string fn_src_out_filesystem_lng
= pths_pod.fn_doc(doc_matters.src.filename, _lang).filesystem_open_zpod.to!string;
string _sstm = (doc_matters.pod.manifest_path ~ "/media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename);
- // writeln(_sstm);
- if (exists(_sstm)) { // what of language?
- debug(io) { writeln("(io debug) src in found: ", _sstm); }
+ string _pth_file_sstm;
+ if (exists(_sstm)) { _pth_file_sstm = _sstm;
+ } else if (exists(fn_src_in)) { _pth_file_sstm = fn_src_in;
+ }
+ if (exists(_pth_file_sstm)) { // what of language?
+ debug(io) { writeln("(io debug) src in found: ", _pth_file_sstm); }
{ // take DIGEST write to pod file digests.txt
- auto data = (cast(byte[]) (_sstm).read);
+ auto data = (cast(byte[]) (_pth_file_sstm).read);
_digests[_lang]["sstm"] ~= data.sha256Of.toHexString ~ "::" ~ data.length.to!string ~ " - " ~ doc_matters.src.filename ~ " - [" ~ _lang ~ "]";
// writeln(data.sha256Of.toHexString, "::", data.length, " - ", doc_matters.src.filename);
}
@@ -274,11 +277,11 @@ template spinePod() {
filelist_src_zpod_arr ~= fn_src_out_inside_pod;
string _pod_to_markup_file = doc_matters.src.pod_name ~ "/" ~ "media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename;
if (doc_matters.opt.action.source_or_pod) {
- _sstm.copy(fn_src_out_filesystem_lng);
+ _pth_file_sstm.copy(fn_src_out_filesystem_lng);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
auto _rgx_sstm = regex(r"(?P<path_to_pod>\S+?)(?P<podname>[a-z_-]+)/(?P<from_root>media/text/)(?P<language>\S+?)/(?P<filename>\S+?\.ss[mt])");
- if (auto _x = _sstm.match(_rgx_sstm)){
+ if (auto _x = _pth_file_sstm.match(_rgx_sstm)){
if (doc_matters.src.lng == doc_matters.pod.manifest_list_of_languages[$-1]) { // again wait until all language versions of .ssm parsed
string _path_to_pod = _x.captures["path_to_pod"];
string _podname = _x.captures["podname"];
@@ -293,12 +296,12 @@ template spinePod() {
}
}
} else {
- zip = podArchive("file_path_text", _sstm, fn_src_out_pod_zip_base, zip);
+ zip = podArchive("file_path_text", _pth_file_sstm, fn_src_out_pod_zip_base, zip);
}
}
} else {
if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) {
- writeln("WARNING (io) src in NOT found (markup source): ", _sstm);
+ writeln("WARNING (io) src in NOT found (markup source): \n", _sstm, "or in", fn_src_in);
}
}
}
@@ -342,7 +345,7 @@ template spinePod() {
).filesystem_open_zpod.to!string;
_pth_mkup_src_in.copy(fn_src_out_filesystem); // check why here, thought dealt with elsewhere
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_text", _pth_mkup_src_in, _pth_mkup_src_out, zip);
}
} else {
@@ -376,7 +379,7 @@ template spinePod() {
if (doc_matters.opt.action.source_or_pod) {
fn_src_in.copy(fn_src_out_filesystem);
}
- if (doc_matters.opt.action.pod) {
+ if (doc_matters.opt.action.source_or_pod) {
zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip);
}
} else {
diff --git a/src/sisudoc/io_out/sqlite.d b/src/sisudoc/io_out/sqlite.d
index 8776c9f..ded6e9a 100644
--- a/src/sisudoc/io_out/sqlite.d
+++ b/src/sisudoc/io_out/sqlite.d
@@ -53,6 +53,7 @@ import
sisudoc.io_out.rgx,
sisudoc.io_out.rgx_xhtml;
import
+ // std.digest.sha,
std.file,
std.uri;
import std.conv : to;
diff --git a/src/sisudoc/meta/metadoc_from_src.d b/src/sisudoc/meta/metadoc_from_src.d
index 4aa49dc..b5b4f6d 100644
--- a/src/sisudoc/meta/metadoc_from_src.d
+++ b/src/sisudoc/meta/metadoc_from_src.d
@@ -214,8 +214,8 @@ template docAbstraction() {
}
if (conf_make_meta.make.substitute) {
foreach(substitution_pair; conf_make_meta.make.substitute) {
- writeln("regex to match: ", substitution_pair[Substitute.match]);
- writeln("substitution to make: ", substitution_pair[Substitute.markup]);
+ writeln("regex to match: ", substitution_pair[Substitute.match]);
+ writeln("substitution to make: ", substitution_pair[Substitute.markup]);
}
}
if (conf_make_meta.make.bold) {
diff --git a/src/sisudoc/meta/rgx_yaml_tags.d b/src/sisudoc/meta/rgx_yaml.d
index ee57469..ee57469 100644
--- a/src/sisudoc/meta/rgx_yaml_tags.d
+++ b/src/sisudoc/meta/rgx_yaml.d
diff --git a/src/sisudoc/spine.d b/src/sisudoc/spine.d
index e6e163d..59789f6 100755
--- a/src/sisudoc/spine.d
+++ b/src/sisudoc/spine.d
@@ -1,4 +1,3 @@
-#!/usr/bin/env rdmd
/+
- Name: SisuDoc Spine, Doc Reform [a part of]
- Description: documents, structuring, processing, publishing, search