diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2021-10-23 19:49:43 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2021-11-27 19:51:25 -0500 | 
| commit | c4f6c86999ec8fe3b610ac269a121c9fa424daf5 (patch) | |
| tree | 9251611c030c29af99bfa59bda94521c3500ad94 | |
| parent | nix .envrc related (diff) | |
dlang dub & nix build related, includes dep update
- nix-shell --pure
  - nix-build
  - dub build --compiler=ldc2 --build=release --force
22 files changed, 1092 insertions, 2543 deletions
| diff --git a/default.nix b/default.nix index 8ecf67a..72f4f02 100755 --- a/default.nix +++ b/default.nix @@ -1,105 +1,3 @@  #!/usr/bin/env -S nix-build -{ pkgs ? import <nixpkgs> {}, -  stdenv ? pkgs.stdenv, -  lib ? pkgs.lib, -  ldc ? null, -  dcompiler ? pkgs.ldc, -  dub ? pkgs.dub -}: -assert dcompiler != null; -with ( -  assert dcompiler != null; -  with lib; -  let -    # Filter function to remove the .dub package folder from src -    filterDub = name: type: let baseName = baseNameOf (toString name); in ! ( -      type == "directory" && baseName == ".dub" -    ); -    targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; -    # Remove reference to build tools and library sources -    disallowedReferences = deps: [ dcompiler dub ]; -    removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}''; -  in { -    mkDubDerivation = lib.makeOverridable ({ -      src, -      nativeBuildInputs ? [], -      dubJSON ? src + "/dub.json", -      passthru ? {}, -      package ? lib.importJSON dubJSON, -      ... -    } @ attrs: stdenv.mkDerivation (attrs // { -      pname = package.name; -      nativeBuildInputs = [ dcompiler dub pkgs.removeReferencesTo ] ++ nativeBuildInputs; -      disallowedReferences = disallowedReferences deps; -      passthru = passthru // { -        inherit dub dcompiler pkgs; -      }; -      src = lib.cleanSourceWith { -        filter = filterDub; -        src = lib.cleanSource src; -      }; -      preFixup = '' -        find $out/bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true -      ''; -      buildPhase = '' -        runHook preBuild -        export HOME=$PWD -        for dc_ in dmd ldmd2 gdmd; do -          echo "- check for D compiler $dc_" -          dc=$(type -P $dc_ || echo "") -          if [ ! "$dc" == "" ]; then -            break -          fi -        done -        if [ "$dc" == "" ]; then -          exit "Error: could not find D compiler" -        fi -        echo "$dc_ used as D compiler to build $pname" -        dub build --compiler=$dc --build=release --combined --skip-registry=all -        runHook postBuild -      ''; -      checkPhase = '' -        runHook preCheck -        export HOME=$PWD -        dub test --combined --skip-registry=all -        runHook postCheck -      ''; -      installPhase = '' -        runHook preInstall -        mkdir -p $out/bin -        cp -r "${targetOf package}" $out/bin -        runHook postInstall -      ''; -      meta = lib.optionalAttrs (package ? description) { -        description = package.description; -      } // attrs.meta or {}; -    } // lib.optionalAttrs (!(attrs ? version)) { -      # Use name from dub.json, unless pname and version are specified -      name = package.name; -    })); -  } -); -mkDubDerivation rec { -  name = "spine-${version}"; -  version = "0.11.3"; -  src = ./.; -  buildInputs = with pkgs; [ -    nixFlakes -    rund -    dub -    ldc -    sqlite -  ]; -  # buildPhase = [ ]; -  installPhase = '' -    install -m755 -D spine $out/bin/spine -    echo "built $out/bin/spine" -  ''; -  meta = with pkgs.lib; { -    homepage    = https://sisudoc.org; -    description = "a sisu like document parser"; -    license     = licenses.agpl3Plus; -    platforms   = platforms.linux; -    maintainers = [ RalphAmissah ]; -  }; -} +{ pkgs ? import <nixpkgs> {} }: +pkgs.callPackage ./derivation.nix {} diff --git a/derivation.nix b/derivation.nix new file mode 100644 index 0000000..8244612 --- /dev/null +++ b/derivation.nix @@ -0,0 +1,99 @@ +{ pkgs ? import <nixpkgs> {}, +  stdenv ? pkgs.stdenv, +  lib ? pkgs.lib, +  ldc ? null, +  dcompiler ? pkgs.ldc, +  dub ? pkgs.dub +}: +assert dcompiler != null; +with ( +  assert dcompiler != null; +  with lib; +  let +    # Filter function to remove the .dub package folder from src +    filterDub = name: type: let baseName = baseNameOf (toString name); in ! ( +      type == "directory" && baseName == ".dub" +    ); +    targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; +    # Remove reference to build tools and library sources +    disallowedReferences = deps: [ dcompiler dub ]; +    removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}''; +  in { +    mkDubDerivation = lib.makeOverridable ({ +      src, +      nativeBuildInputs ? [], +      dubJSON ? src + "/dub.json", +      passthru ? {}, +      package ? lib.importJSON dubJSON, +      ... +    } @ attrs: stdenv.mkDerivation (attrs // { +      pname = package.name; +      nativeBuildInputs = [ dcompiler dub pkgs.removeReferencesTo ] ++ nativeBuildInputs; +      disallowedReferences = disallowedReferences deps; +      passthru = passthru // { +        inherit dub dcompiler pkgs; +      }; +      src = lib.cleanSourceWith { +        filter = filterDub; +        src = lib.cleanSource src; +      }; +      preFixup = '' +        find $out/bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true +      ''; +      buildPhase = '' +        runHook preBuild +        export HOME=$PWD +        for dc_ in dmd ldmd2 gdmd; do +          echo "- check for D compiler $dc_" +          dc=$(type -P $dc_ || echo "") +          if [ ! "$dc" == "" ]; then +            break +          fi +        done +        if [ "$dc" == "" ]; then +          exit "Error: could not find D compiler" +        fi +        echo "$dc_ used as D compiler to build $pname" +        dub build --compiler=$dc --build=release --combined --skip-registry=all +        runHook postBuild +      ''; +      checkPhase = '' +        runHook preCheck +        export HOME=$PWD +        dub test --combined --skip-registry=all +        runHook postCheck +      ''; +      installPhase = '' +        runHook preInstall +        mkdir -p $out/bin +        cp -r "${targetOf package}" $out/bin +        runHook postInstall +      ''; +      meta = lib.optionalAttrs (package ? description) { +        description = package.description; +      } // attrs.meta or {}; +    } // lib.optionalAttrs (!(attrs ? version)) { +      # Use name from dub.json, unless pname and version are specified +      name = package.name; +    })); +  } +); +mkDubDerivation rec { +  name = "spine-${version}"; +  version = "0.11.3"; +  src = ./.; +  buildInputs = with pkgs; [ +    nixFlakes +    rund +    dub +    ldc +    sqlite +  ]; +  meta = with pkgs.lib; { +    homepage    = https://sisudoc.org; +    description = "a sisu like document parser"; +    license     = licenses.agpl3Plus; +    platforms   = platforms.linux; +    maintainers = [ RalphAmissah ]; +  }; +} @@ -39,7 +39,8 @@        "authors":    [ "Nicolas Sicard", "Other contributors: see Github repo" ],        "copyright":   "Copyright 2011-18 Nicolas Sicard",        "license":     "BSL-1.0", -  	  "sourcePaths": [ "./src/ext_depends/d2sqlite3/source" ], +      "sourcePaths": [ "./src/ext_depends/d2sqlite3/source" ], +      "importPaths": [ "./src/ext_depends/d2sqlite3/source" ],        "configurations": [          {            "name":                "d2sqlite3", @@ -56,7 +57,8 @@        "description": "Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.",        "authors":     [ "Tero Hänninen" ],        "license":     "BSL-1.0", -  	  "sourcePaths": [ "./src/ext_depends/imageformats/imageformats" ] +      "sourcePaths": [ "./src/ext_depends/imageformats" ], +      "importPaths": [ "./src/ext_depends/imageformats" ]      },      {        "name": "dyaml", @@ -68,12 +70,12 @@        "license": "BSL-1.0",        "homepage": "https://github.com/dlang-community/D-YAML",        "copyright": "Copyright © 2011-2018, Ferdinand Majerech", -  	  "sourcePaths": [ -        "./src/ext_depends/D-YAML/source/dyaml", +      "sourcePaths": [ +        "./src/ext_depends/D-YAML/source",          "./src/ext_depends/tinyendian/source"        ], -  	  "importPaths": [ -        "./src/ext_depends/D-YAML/source/dyaml", +      "importPaths": [ +        "./src/ext_depends/D-YAML/source",          "./src/ext_depends/tinyendian/source"        ],        "preGenerateCommands": [ diff --git a/dub.sdl b/dub.sdl deleted file mode 100644 index 9d379d9..0000000 --- a/dub.sdl +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env dub -name                "spine" -description         "sisu document parser" -homepage            "http://sisudoc.org" -authors             "Ralph Amissah" -copyright           "Copyright (C) 2016 - 2020 Ralph Amissah" -license             "AGPL-3.0+" -targetPath          "./bin" -#sourcePath          "./src/doc_reform" -stringImportPaths   "./views" -buildRequirements   "allowWarnings" -targetType          "executable" -platforms           "posix" -dependency          "d2sqlite3"      version="~>0.19.1"      # https://code.dlang.org/packages/d2sqlite3     http://biozic.github.io/d2sqlite3/d2sqlite3 -  subconfiguration  "d2sqlite3"      "all-included" -dependency          "imageformats"   version="~>7.0.2"       # https://code.dlang.org/packages/imageformats  https://github.com/lgvz/imageformats -dependency          "dyaml"          version="~>0.8.0"       # https://code.dlang.org/packages/dyaml         https://github.com/dlang-community/D-YAML -dependency          "tinyendian"     version="~>0.2.0"       # http://code.dlang.org/packages/tinyendian     https://github.com/dlang-community/tinyendian // dyaml dependency -configuration "default" { -  targetName           "spine" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine'" -} -configuration "dmd" { -  targetName           "spine-dmd" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-dmd'" -} -buildType     "dmd" { -  dflags               "-J=views" "-I=src/doc_reform" -  buildOptions         "verbose" "inline" -  buildRequirements    "allowWarnings" -} -buildType     "dmd-release" { -  dflags               "-J=views" "-I=src/doc_reform" -  buildOptions         "verbose" "releaseMode" "optimize" "inline" -} -configuration "dmd-version" { -  dflags               "-J=views" "-I=src/doc_reform" -  buildOptions         "verbose" "optimize" -  targetName           "spine-dmd-ver" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-dmd-ver'" -} -configuration "ldc" { -  targetName           "spine-ldc" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-ldc'" -} -buildType     "ldc" { -  dflags            "-O2" "-J=views" "-I=src/doc_reform" -  buildOptions      "verbose" "optimize" "inline" -  buildRequirements "allowWarnings" -} -buildType     "ldc-local" { -  dflags            "-O2" "-J=views" "-I=src/doc_reform" "-mcpu=native" -  buildOptions      "verbose" "optimize" "inline" -  buildRequirements "allowWarnings" -} -buildType     "ldc-release" { -  dflags               "-O2" "-J=views" "-I=src/doc_reform" -  buildOptions         "verbose" "optimize" "inline" "releaseMode" -} -configuration "ldc-version" { -  dflags               "-O2" "-J=views" "-I=src/doc_reform" -  buildOptions         "verbose" "optimize" "inline" "releaseMode" -  targetName           "spine-ldc-ver" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-ldc-ver'" -} -configuration "gdc" { -  targetName           "spine-gdc" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-gdc'" -} -buildType     "gdc" { -  dflags               "-O" "-J=views" "-I=src/doc_reform" -  lflags               "-lz" -  buildOptions         "inline" -  buildRequirements    "allowWarnings" -} -buildType     "gdc-release" { -  dflags               "-O2" "-J=views" "-I=src/doc_reform" -  lflags               "-lz" -  buildOptions         "verbose" "optimize" "inline" "releaseMode" -} -configuration "gdc-version" { -  dflags               "-O2" "-J=views" "-I=src/doc_reform" -  lflags               "-lz" -  buildOptions         "verbose" "optimize" "inline" "releaseMode" -  targetName           "spine-gdc-ver" -  #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-gdc-ver'" -} diff --git a/dub_describe.json b/dub_describe.json index fbe162d..598e7cd 100644 --- a/dub_describe.json +++ b/dub_describe.json @@ -12,7 +12,7 @@  	],  	"packages": [  		{ -			"path": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/", +			"path": "./",  			"name": "spine",  			"version": "0.11.3",  			"description": "a sisu like document parser", @@ -634,6 +634,38 @@  				},  				{  					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/constructor/main.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/getting_started/main.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/representer/main.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/resolver/main.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/tojson/source/app.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/yaml_bench/yaml_bench.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/yaml_gen/yaml_gen.d" +				}, +				{ +					"role": "import_", +					"path": "src/ext_depends/D-YAML/examples/yaml_stats/yaml_stats.d" +				}, +				{ +					"role": "import_",  					"path": "src/ext_depends/D-YAML/source/dyaml/composer.d"  				},  				{ @@ -762,6 +794,10 @@  				},  				{  					"role": "import_", +					"path": "src/ext_depends/D-YAML/testsuite/source/app.d" +				}, +				{ +					"role": "import_",  					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/database.d"  				},  				{ @@ -826,7 +862,7 @@  				},  				{  					"role": "stringImport", -					"path": "views/configuration_suggested.txt" +					"path": "views/configuration_example.txt"  				},  				{  					"role": "stringImport", @@ -839,7 +875,7 @@  			]  		},  		{ -			"path": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/", +			"path": "./",  			"name": "spine:d2sqlite3",  			"version": "0.11.3",  			"description": "A thin wrapper around SQLite 3", @@ -869,8 +905,7 @@  			"versions": [],  			"debugVersions": [],  			"importPaths": [ -				"source/", -				"src/" +				"./src/ext_depends/d2sqlite3/source"  			],  			"stringImportPaths": [  				"views" @@ -885,706 +920,6 @@  			"options": [],  			"files": [  				{ -					"role": "import_", -					"path": "source/src/doc_reform/conf/compile_time_info.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_in/paths_source.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_in/read_config_files.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_in/read_source_files.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/cgi_sqlite_search_form.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/create_zip_file.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/epub3.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/html.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/hub.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/latex.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/metadata.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/odt.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/paths_output.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/source_pod.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/sqlite.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/xmls.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/xmls_css.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/conf_make_meta_json.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/conf_make_meta_structs.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/conf_make_meta_yaml.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/doc_debugs.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_curate.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_curate_authors.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_curate_topics.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_from_src.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_object_setter.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_config.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_make.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_metadata.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_summary.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/share/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/spine.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/composer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/dumper.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/encoding.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/escapes.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/event.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/exception.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/linebreak.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/loader.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/node.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/parser.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/queue.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/reader.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/representer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/scanner.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/serializer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/style.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/tagdirective.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/common.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/compare.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/errors.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/reader.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/representer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/tokens.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/token.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/tests.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/bmp.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/jpeg.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/png.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/tga.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/tinyendian/source/tinyendian.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/ext_lib/src/arsd/cgi.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/markup_changes.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/spine_scaffold.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/memory.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/util.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/library.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/results.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/sqlite3.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/tests.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/spine_search.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/conf/compile_time_info.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_in/paths_source.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_in/read_config_files.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_in/read_source_files.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/cgi_sqlite_search_form.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/create_zip_file.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/epub3.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/html.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/hub.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/latex.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/metadata.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/odt.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/paths_output.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/source_pod.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/sqlite.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/xmls.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/xmls_css.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/conf_make_meta_json.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/conf_make_meta_structs.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/conf_make_meta_yaml.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/doc_debugs.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_curate.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_curate_authors.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_curate_topics.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_from_src.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_object_setter.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_config.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_make.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_metadata.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_summary.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/share/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/spine.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/composer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/dumper.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/encoding.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/escapes.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/event.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/exception.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/linebreak.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/loader.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/node.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/parser.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/queue.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/reader.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/representer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/scanner.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/serializer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/style.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/tagdirective.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/common.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/compare.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/errors.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/reader.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/representer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/tokens.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/token.d" -				}, -				{  					"role": "source",  					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/database.d"  				}, @@ -1621,36 +956,12 @@  					"path": "src/ext_depends/d2sqlite3/source/tests.d"  				},  				{ -					"role": "import_", -					"path": "src/ext_depends/imageformats/imageformats/bmp.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/imageformats/imageformats/jpeg.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/imageformats/imageformats/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/imageformats/imageformats/png.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/imageformats/imageformats/tga.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/tinyendian/source/tinyendian.d" -				}, -				{  					"role": "stringImport",  					"path": "views/configuration.txt"  				},  				{  					"role": "stringImport", -					"path": "views/configuration_suggested.txt" +					"path": "views/configuration_example.txt"  				},  				{  					"role": "stringImport", @@ -1663,7 +974,7 @@  			]  		},  		{ -			"path": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/", +			"path": "./",  			"name": "spine:dyaml",  			"version": "0.11.3",  			"description": "YAML parser and emitter", @@ -1691,7 +1002,7 @@  			"versions": [],  			"debugVersions": [],  			"importPaths": [ -				"./src/ext_depends/D-YAML/source/dyaml", +				"./src/ext_depends/D-YAML/source",  				"./src/ext_depends/tinyendian/source"  			],  			"stringImportPaths": [ @@ -1847,7 +1158,7 @@  				},  				{  					"role": "stringImport", -					"path": "views/configuration_suggested.txt" +					"path": "views/configuration_example.txt"  				},  				{  					"role": "stringImport", @@ -1860,7 +1171,7 @@  			]  		},  		{ -			"path": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/", +			"path": "./",  			"name": "spine:imageformats",  			"version": "0.11.3",  			"description": "Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.", @@ -1887,8 +1198,7 @@  			"versions": [],  			"debugVersions": [],  			"importPaths": [ -				"source/", -				"src/" +				"./src/ext_depends/imageformats"  			],  			"stringImportPaths": [  				"views" @@ -1903,742 +1213,6 @@  			"options": [],  			"files": [  				{ -					"role": "import_", -					"path": "source/src/doc_reform/conf/compile_time_info.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_in/paths_source.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_in/read_config_files.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_in/read_source_files.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/cgi_sqlite_search_form.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/create_zip_file.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/epub3.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/html.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/hub.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/latex.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/metadata.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/odt.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/paths_output.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/source_pod.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/sqlite.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/xmls.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/io_out/xmls_css.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/conf_make_meta_json.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/conf_make_meta_structs.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/conf_make_meta_yaml.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/doc_debugs.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_curate.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_curate_authors.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_curate_topics.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_from_src.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_object_setter.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_config.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_make.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_metadata.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/metadoc_show_summary.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/meta/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/share/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/doc_reform/spine.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/composer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/dumper.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/encoding.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/escapes.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/event.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/exception.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/linebreak.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/loader.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/node.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/parser.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/queue.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/reader.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/representer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/scanner.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/serializer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/style.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/tagdirective.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/common.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/compare.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/errors.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/reader.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/representer.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/test/tokens.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/D-YAML/source/dyaml/token.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/d2sqlite3/source/tests.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/bmp.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/jpeg.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/png.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/imageformats/imageformats/tga.d" -				}, -				{ -					"role": "import_", -					"path": "source/src/ext_depends/tinyendian/source/tinyendian.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/ext_lib/src/arsd/cgi.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/markup_changes.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/misc/util/d/tools/spine_scaffold.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/memory.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/util.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/library.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/package.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/results.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/sqlite3.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/tests.d" -				}, -				{ -					"role": "import_", -					"path": "source/sundry/spine_search_cgi/src/spine_search.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/conf/compile_time_info.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_in/paths_source.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_in/read_config_files.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_in/read_source_files.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/cgi_sqlite_search_form.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/create_zip_file.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/epub3.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/html.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/hub.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/latex.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/metadata.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/odt.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/paths_output.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/source_pod.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/sqlite.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/xmls.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/io_out/xmls_css.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/conf_make_meta_json.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/conf_make_meta_structs.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/conf_make_meta_yaml.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/doc_debugs.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_curate.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_curate_authors.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_curate_topics.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_from_src.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_object_setter.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_config.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_make.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_metadata.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/metadoc_show_summary.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/meta/rgx.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/share/defaults.d" -				}, -				{ -					"role": "import_", -					"path": "src/doc_reform/spine.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/composer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/dumper.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/encoding.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/escapes.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/event.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/exception.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/linebreak.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/loader.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/node.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/parser.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/queue.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/reader.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/representer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/scanner.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/serializer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/style.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/tagdirective.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/common.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/compare.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/constructor.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/emitter.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/errors.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/reader.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/representer.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/resolver.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/test/tokens.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/D-YAML/source/dyaml/token.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/database.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/library.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/package.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/results.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d" -				}, -				{ -					"role": "import_", -					"path": "src/ext_depends/d2sqlite3/source/tests.d" -				}, -				{  					"role": "source",  					"path": "src/ext_depends/imageformats/imageformats/bmp.d"  				}, @@ -2659,16 +1233,12 @@  					"path": "src/ext_depends/imageformats/imageformats/tga.d"  				},  				{ -					"role": "import_", -					"path": "src/ext_depends/tinyendian/source/tinyendian.d" -				}, -				{  					"role": "stringImport",  					"path": "views/configuration.txt"  				},  				{  					"role": "stringImport", -					"path": "views/configuration_suggested.txt" +					"path": "views/configuration_example.txt"  				},  				{  					"role": "stringImport", @@ -2690,7 +1260,7 @@  			"rootConfiguration": "default",  			"buildSettings": {  				"targetType": 2, -				"targetPath": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/bin", +				"targetPath": "./bin",  				"targetName": "spine",  				"workingDirectory": "",  				"mainSourceFile": "", @@ -2700,50 +1270,50 @@  					"sqlite3"  				],  				"linkerFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/libspine_d2sqlite3.a", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/libspine_dyaml.a", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/libspine_imageformats.a" +					"./libspine_d2sqlite3.a", +					"./libspine_dyaml.a", +					"./libspine_imageformats.a"  				],  				"sourceFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/conf/compile_time_info.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/paths_source.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/read_config_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/read_source_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/cgi_sqlite_search_form.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/create_zip_file.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/epub3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/html.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/hub.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/latex.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/odt.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/paths_output.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/source_pod.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/sqlite.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/xmls.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/xmls_css.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_json.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_structs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_yaml.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/doc_debugs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate_authors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate_topics.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_from_src.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_object_setter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_config.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_make.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_summary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/share/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/spine.d" +					"./src/doc_reform/conf/compile_time_info.d", +					"./src/doc_reform/io_in/paths_source.d", +					"./src/doc_reform/io_in/read_config_files.d", +					"./src/doc_reform/io_in/read_source_files.d", +					"./src/doc_reform/io_out/cgi_sqlite_search_form.d", +					"./src/doc_reform/io_out/create_zip_file.d", +					"./src/doc_reform/io_out/defaults.d", +					"./src/doc_reform/io_out/epub3.d", +					"./src/doc_reform/io_out/html.d", +					"./src/doc_reform/io_out/hub.d", +					"./src/doc_reform/io_out/latex.d", +					"./src/doc_reform/io_out/metadata.d", +					"./src/doc_reform/io_out/odt.d", +					"./src/doc_reform/io_out/package.d", +					"./src/doc_reform/io_out/paths_output.d", +					"./src/doc_reform/io_out/rgx.d", +					"./src/doc_reform/io_out/source_pod.d", +					"./src/doc_reform/io_out/sqlite.d", +					"./src/doc_reform/io_out/xmls.d", +					"./src/doc_reform/io_out/xmls_css.d", +					"./src/doc_reform/meta/conf_make_meta_json.d", +					"./src/doc_reform/meta/conf_make_meta_structs.d", +					"./src/doc_reform/meta/conf_make_meta_yaml.d", +					"./src/doc_reform/meta/defaults.d", +					"./src/doc_reform/meta/doc_debugs.d", +					"./src/doc_reform/meta/metadoc.d", +					"./src/doc_reform/meta/metadoc_curate.d", +					"./src/doc_reform/meta/metadoc_curate_authors.d", +					"./src/doc_reform/meta/metadoc_curate_topics.d", +					"./src/doc_reform/meta/metadoc_from_src.d", +					"./src/doc_reform/meta/metadoc_object_setter.d", +					"./src/doc_reform/meta/metadoc_show_config.d", +					"./src/doc_reform/meta/metadoc_show_make.d", +					"./src/doc_reform/meta/metadoc_show_metadata.d", +					"./src/doc_reform/meta/metadoc_show_summary.d", +					"./src/doc_reform/meta/package.d", +					"./src/doc_reform/meta/rgx.d", +					"./src/doc_reform/share/defaults.d", +					"./src/doc_reform/spine.d"  				],  				"copyFiles": [],  				"extraDependencyFiles": [], @@ -2757,172 +1327,174 @@  				"versionFilters": [],  				"debugVersionFilters": [],  				"importPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/tinyendian/source" +					"./source/", +					"./src/", +					"./src/ext_depends/d2sqlite3/source", +					"./src/ext_depends/D-YAML/source", +					"./src/ext_depends/tinyendian/source", +					"./src/ext_depends/imageformats"  				],  				"stringImportPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views" +					"./views"  				],  				"importFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/conf/compile_time_info.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/paths_source.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/read_config_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/read_source_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/cgi_sqlite_search_form.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/create_zip_file.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/epub3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/html.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/hub.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/latex.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/odt.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/paths_output.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/source_pod.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/sqlite.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/xmls.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/xmls_css.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_json.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_structs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_yaml.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/doc_debugs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate_authors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate_topics.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_from_src.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_object_setter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_config.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_make.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_summary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/share/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/bmp.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/jpeg.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/png.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/tga.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/tinyendian/source/tinyendian.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/ext_lib/src/arsd/cgi.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_changes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/spine_scaffold.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/spine_search.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/bmp.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/jpeg.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/png.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/tga.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/tinyendian/source/tinyendian.d" +					"./source/src/doc_reform/conf/compile_time_info.d", +					"./source/src/doc_reform/io_in/paths_source.d", +					"./source/src/doc_reform/io_in/read_config_files.d", +					"./source/src/doc_reform/io_in/read_source_files.d", +					"./source/src/doc_reform/io_out/cgi_sqlite_search_form.d", +					"./source/src/doc_reform/io_out/create_zip_file.d", +					"./source/src/doc_reform/io_out/defaults.d", +					"./source/src/doc_reform/io_out/epub3.d", +					"./source/src/doc_reform/io_out/html.d", +					"./source/src/doc_reform/io_out/hub.d", +					"./source/src/doc_reform/io_out/latex.d", +					"./source/src/doc_reform/io_out/metadata.d", +					"./source/src/doc_reform/io_out/odt.d", +					"./source/src/doc_reform/io_out/package.d", +					"./source/src/doc_reform/io_out/paths_output.d", +					"./source/src/doc_reform/io_out/rgx.d", +					"./source/src/doc_reform/io_out/source_pod.d", +					"./source/src/doc_reform/io_out/sqlite.d", +					"./source/src/doc_reform/io_out/xmls.d", +					"./source/src/doc_reform/io_out/xmls_css.d", +					"./source/src/doc_reform/meta/conf_make_meta_json.d", +					"./source/src/doc_reform/meta/conf_make_meta_structs.d", +					"./source/src/doc_reform/meta/conf_make_meta_yaml.d", +					"./source/src/doc_reform/meta/defaults.d", +					"./source/src/doc_reform/meta/doc_debugs.d", +					"./source/src/doc_reform/meta/metadoc.d", +					"./source/src/doc_reform/meta/metadoc_curate.d", +					"./source/src/doc_reform/meta/metadoc_curate_authors.d", +					"./source/src/doc_reform/meta/metadoc_curate_topics.d", +					"./source/src/doc_reform/meta/metadoc_from_src.d", +					"./source/src/doc_reform/meta/metadoc_object_setter.d", +					"./source/src/doc_reform/meta/metadoc_show_config.d", +					"./source/src/doc_reform/meta/metadoc_show_make.d", +					"./source/src/doc_reform/meta/metadoc_show_metadata.d", +					"./source/src/doc_reform/meta/metadoc_show_summary.d", +					"./source/src/doc_reform/meta/package.d", +					"./source/src/doc_reform/meta/rgx.d", +					"./source/src/doc_reform/share/defaults.d", +					"./source/src/doc_reform/spine.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/composer.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/constructor.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/dumper.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/emitter.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/encoding.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/escapes.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/event.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/exception.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/linebreak.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/loader.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/node.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/package.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/parser.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/queue.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/reader.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/representer.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/resolver.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/scanner.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/serializer.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/style.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/common.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/compare.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/errors.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/reader.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/representer.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", +					"./source/src/ext_depends/D-YAML/source/dyaml/token.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", +					"./source/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", +					"./source/src/ext_depends/d2sqlite3/source/tests.d", +					"./source/src/ext_depends/imageformats/imageformats/bmp.d", +					"./source/src/ext_depends/imageformats/imageformats/jpeg.d", +					"./source/src/ext_depends/imageformats/imageformats/package.d", +					"./source/src/ext_depends/imageformats/imageformats/png.d", +					"./source/src/ext_depends/imageformats/imageformats/tga.d", +					"./source/src/ext_depends/tinyendian/source/tinyendian.d", +					"./source/sundry/misc/ext_lib/src/arsd/cgi.d", +					"./source/sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d", +					"./source/sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d", +					"./source/sundry/misc/util/d/tools/markup_conversion/markup_changes.d", +					"./source/sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d", +					"./source/sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d", +					"./source/sundry/misc/util/d/tools/spine_scaffold.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/memory.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/util.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/library.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/package.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/results.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/sqlite3.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d", +					"./source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/tests.d", +					"./source/sundry/spine_search_cgi/src/spine_search.d", +					"./src/ext_depends/D-YAML/source/dyaml/composer.d", +					"./src/ext_depends/D-YAML/source/dyaml/constructor.d", +					"./src/ext_depends/D-YAML/source/dyaml/dumper.d", +					"./src/ext_depends/D-YAML/source/dyaml/emitter.d", +					"./src/ext_depends/D-YAML/source/dyaml/encoding.d", +					"./src/ext_depends/D-YAML/source/dyaml/escapes.d", +					"./src/ext_depends/D-YAML/source/dyaml/event.d", +					"./src/ext_depends/D-YAML/source/dyaml/exception.d", +					"./src/ext_depends/D-YAML/source/dyaml/linebreak.d", +					"./src/ext_depends/D-YAML/source/dyaml/loader.d", +					"./src/ext_depends/D-YAML/source/dyaml/node.d", +					"./src/ext_depends/D-YAML/source/dyaml/package.d", +					"./src/ext_depends/D-YAML/source/dyaml/parser.d", +					"./src/ext_depends/D-YAML/source/dyaml/queue.d", +					"./src/ext_depends/D-YAML/source/dyaml/reader.d", +					"./src/ext_depends/D-YAML/source/dyaml/representer.d", +					"./src/ext_depends/D-YAML/source/dyaml/resolver.d", +					"./src/ext_depends/D-YAML/source/dyaml/scanner.d", +					"./src/ext_depends/D-YAML/source/dyaml/serializer.d", +					"./src/ext_depends/D-YAML/source/dyaml/style.d", +					"./src/ext_depends/D-YAML/source/dyaml/tagdirective.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/common.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/compare.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/constructor.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/emitter.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/errors.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/reader.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/representer.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/resolver.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/tokens.d", +					"./src/ext_depends/D-YAML/source/dyaml/token.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", +					"./src/ext_depends/d2sqlite3/source/tests.d", +					"./src/ext_depends/imageformats/imageformats/bmp.d", +					"./src/ext_depends/imageformats/imageformats/jpeg.d", +					"./src/ext_depends/imageformats/imageformats/package.d", +					"./src/ext_depends/imageformats/imageformats/png.d", +					"./src/ext_depends/imageformats/imageformats/tga.d", +					"./src/ext_depends/tinyendian/source/tinyendian.d"  				],  				"stringImportFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt__", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/version.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt" +					"./views/configuration.txt", +					"./views/configuration_suggested.txt__", +					"./views/configuration_example.txt", +					"./views/version.txt"  				],  				"preGenerateCommands": [],  				"postGenerateCommands": [], @@ -2952,7 +1524,7 @@  			"rootConfiguration": "d2sqlite3",  			"buildSettings": {  				"targetType": 6, -				"targetPath": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform", +				"targetPath": ".",  				"targetName": "spine_d2sqlite3",  				"workingDirectory": "",  				"mainSourceFile": "", @@ -2963,15 +1535,15 @@  				],  				"linkerFiles": [],  				"sourceFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/tests.d" +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", +					"./src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", +					"./src/ext_depends/d2sqlite3/source/tests.d"  				],  				"copyFiles": [],  				"extraDependencyFiles": [], @@ -2982,200 +1554,17 @@  				"versionFilters": [],  				"debugVersionFilters": [],  				"importPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/" +					"./src/ext_depends/d2sqlite3/source"  				],  				"stringImportPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views" -				], -				"importFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/conf/compile_time_info.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/paths_source.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/read_config_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/read_source_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/cgi_sqlite_search_form.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/create_zip_file.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/epub3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/html.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/hub.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/latex.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/odt.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/paths_output.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/source_pod.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/sqlite.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/xmls.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/xmls_css.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_json.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_structs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_yaml.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/doc_debugs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate_authors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate_topics.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_from_src.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_object_setter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_config.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_make.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_summary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/share/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/bmp.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/jpeg.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/png.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/tga.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/tinyendian/source/tinyendian.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/ext_lib/src/arsd/cgi.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_changes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/spine_scaffold.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/spine_search.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/conf/compile_time_info.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/paths_source.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/read_config_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/read_source_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/cgi_sqlite_search_form.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/create_zip_file.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/epub3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/html.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/hub.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/latex.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/odt.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/paths_output.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/source_pod.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/sqlite.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/xmls.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/xmls_css.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_json.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_structs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_yaml.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/doc_debugs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate_authors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate_topics.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_from_src.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_object_setter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_config.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_make.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_summary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/share/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/bmp.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/jpeg.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/png.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/tga.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/tinyendian/source/tinyendian.d" +					"./views"  				], +				"importFiles": [],  				"stringImportFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt__", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/version.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt" +					"./views/configuration.txt", +					"./views/configuration_suggested.txt__", +					"./views/configuration_example.txt", +					"./views/version.txt"  				],  				"preGenerateCommands": [],  				"postGenerateCommands": [], @@ -3197,7 +1586,7 @@  			"rootConfiguration": "library",  			"buildSettings": {  				"targetType": 6, -				"targetPath": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform", +				"targetPath": ".",  				"targetName": "spine_dyaml",  				"workingDirectory": "",  				"mainSourceFile": "", @@ -3206,39 +1595,39 @@  				"libs": [],  				"linkerFiles": [],  				"sourceFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/tinyendian/source/tinyendian.d" +					"./src/ext_depends/D-YAML/source/dyaml/composer.d", +					"./src/ext_depends/D-YAML/source/dyaml/constructor.d", +					"./src/ext_depends/D-YAML/source/dyaml/dumper.d", +					"./src/ext_depends/D-YAML/source/dyaml/emitter.d", +					"./src/ext_depends/D-YAML/source/dyaml/encoding.d", +					"./src/ext_depends/D-YAML/source/dyaml/escapes.d", +					"./src/ext_depends/D-YAML/source/dyaml/event.d", +					"./src/ext_depends/D-YAML/source/dyaml/exception.d", +					"./src/ext_depends/D-YAML/source/dyaml/linebreak.d", +					"./src/ext_depends/D-YAML/source/dyaml/loader.d", +					"./src/ext_depends/D-YAML/source/dyaml/node.d", +					"./src/ext_depends/D-YAML/source/dyaml/package.d", +					"./src/ext_depends/D-YAML/source/dyaml/parser.d", +					"./src/ext_depends/D-YAML/source/dyaml/queue.d", +					"./src/ext_depends/D-YAML/source/dyaml/reader.d", +					"./src/ext_depends/D-YAML/source/dyaml/representer.d", +					"./src/ext_depends/D-YAML/source/dyaml/resolver.d", +					"./src/ext_depends/D-YAML/source/dyaml/scanner.d", +					"./src/ext_depends/D-YAML/source/dyaml/serializer.d", +					"./src/ext_depends/D-YAML/source/dyaml/style.d", +					"./src/ext_depends/D-YAML/source/dyaml/tagdirective.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/common.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/compare.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/constructor.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/emitter.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/errors.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/reader.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/representer.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/resolver.d", +					"./src/ext_depends/D-YAML/source/dyaml/test/tokens.d", +					"./src/ext_depends/D-YAML/source/dyaml/token.d", +					"./src/ext_depends/tinyendian/source/tinyendian.d"  				],  				"copyFiles": [],  				"extraDependencyFiles": [], @@ -3249,18 +1638,18 @@  				"versionFilters": [],  				"debugVersionFilters": [],  				"importPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/tinyendian/source" +					"./src/ext_depends/D-YAML/source", +					"./src/ext_depends/tinyendian/source"  				],  				"stringImportPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views" +					"./views"  				],  				"importFiles": [],  				"stringImportFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt__", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/version.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt" +					"./views/configuration.txt", +					"./views/configuration_suggested.txt__", +					"./views/configuration_example.txt", +					"./views/version.txt"  				],  				"preGenerateCommands": [  					"rm -rf ./src/ext_depends/D-YAML/examples", @@ -3285,7 +1674,7 @@  			"rootConfiguration": "library",  			"buildSettings": {  				"targetType": 6, -				"targetPath": "/grotto-ra/repo/git.repo/projects/project-spine/doc-reform", +				"targetPath": ".",  				"targetName": "spine_imageformats",  				"workingDirectory": "",  				"mainSourceFile": "", @@ -3294,11 +1683,11 @@  				"libs": [],  				"linkerFiles": [],  				"sourceFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/bmp.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/jpeg.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/png.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/imageformats/imageformats/tga.d" +					"./src/ext_depends/imageformats/imageformats/bmp.d", +					"./src/ext_depends/imageformats/imageformats/jpeg.d", +					"./src/ext_depends/imageformats/imageformats/package.d", +					"./src/ext_depends/imageformats/imageformats/png.d", +					"./src/ext_depends/imageformats/imageformats/tga.d"  				],  				"copyFiles": [],  				"extraDependencyFiles": [], @@ -3309,204 +1698,17 @@  				"versionFilters": [],  				"debugVersionFilters": [],  				"importPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/" +					"./src/ext_depends/imageformats"  				],  				"stringImportPaths": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views" -				], -				"importFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/conf/compile_time_info.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/paths_source.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/read_config_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_in/read_source_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/cgi_sqlite_search_form.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/create_zip_file.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/epub3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/html.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/hub.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/latex.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/odt.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/paths_output.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/source_pod.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/sqlite.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/xmls.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/io_out/xmls_css.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_json.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_structs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/conf_make_meta_yaml.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/doc_debugs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate_authors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_curate_topics.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_from_src.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_object_setter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_config.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_make.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/metadoc_show_summary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/meta/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/share/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/doc_reform/spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/bmp.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/jpeg.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/png.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/imageformats/imageformats/tga.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/src/ext_depends/tinyendian/source/tinyendian.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/ext_lib/src/arsd/cgi.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_changes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/misc/util/d/tools/spine_scaffold.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/source/sundry/spine_search_cgi/src/spine_search.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/conf/compile_time_info.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/paths_source.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/read_config_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_in/read_source_files.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/cgi_sqlite_search_form.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/create_zip_file.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/epub3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/html.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/hub.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/latex.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/odt.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/paths_output.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/source_pod.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/sqlite.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/xmls.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/io_out/xmls_css.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_json.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_structs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/conf_make_meta_yaml.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/doc_debugs.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate_authors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_curate_topics.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_from_src.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_object_setter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_config.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_make.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_metadata.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/metadoc_show_summary.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/meta/rgx.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/share/defaults.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/doc_reform/spine.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/composer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/dumper.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/encoding.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/escapes.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/event.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/exception.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/linebreak.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/loader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/node.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/parser.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/queue.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/scanner.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/serializer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/style.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/tagdirective.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/common.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/compare.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/constructor.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/emitter.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/errors.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/inputoutput.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/reader.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/representer.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/resolver.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/test/tokens.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/D-YAML/source/dyaml/token.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/database.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/util.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/library.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/package.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/results.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/sqlite3.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/d2sqlite3/statement.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/d2sqlite3/source/tests.d", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/src/ext_depends/tinyendian/source/tinyendian.d" +					"./views"  				], +				"importFiles": [],  				"stringImportFiles": [ -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt__", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/version.txt", -					"/grotto-ra/repo/git.repo/projects/project-spine/doc-reform/views/configuration_suggested.txt" +					"./views/configuration.txt", +					"./views/configuration_suggested.txt__", +					"./views/configuration_example.txt", +					"./views/version.txt"  				],  				"preGenerateCommands": [],  				"postGenerateCommands": [], diff --git a/org/config_dub.org b/org/config_dub.org index bb0091f..da65bfc 100644 --- a/org/config_dub.org +++ b/org/config_dub.org @@ -86,7 +86,8 @@        "authors":    [ "Nicolas Sicard", "Other contributors: see Github repo" ],        "copyright":   "Copyright 2011-18 Nicolas Sicard",        "license":     "BSL-1.0", -  	  "sourcePaths": [ "./src/ext_depends/d2sqlite3/source" ], +      "sourcePaths": [ "./src/ext_depends/d2sqlite3/source" ], +      "importPaths": [ "./src/ext_depends/d2sqlite3/source" ],        "configurations": [          {            "name":                "d2sqlite3", @@ -103,7 +104,8 @@        "description": "Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.",        "authors":     [ "Tero Hänninen" ],        "license":     "BSL-1.0", -  	  "sourcePaths": [ "./src/ext_depends/imageformats/imageformats" ] +      "sourcePaths": [ "./src/ext_depends/imageformats" ], +      "importPaths": [ "./src/ext_depends/imageformats" ]      },      {        "name": "dyaml", @@ -115,12 +117,12 @@        "license": "BSL-1.0",        "homepage": "https://github.com/dlang-community/D-YAML",        "copyright": "Copyright © 2011-2018, Ferdinand Majerech", -  	  "sourcePaths": [ -        "./src/ext_depends/D-YAML/source/dyaml", +      "sourcePaths": [ +        "./src/ext_depends/D-YAML/source",          "./src/ext_depends/tinyendian/source"        ], -  	  "importPaths": [ -        "./src/ext_depends/D-YAML/source/dyaml", +      "importPaths": [ +        "./src/ext_depends/D-YAML/source",          "./src/ext_depends/tinyendian/source"        ],        "preGenerateCommands": [ @@ -190,7 +192,8 @@        "authors":    [ "Nicolas Sicard", "Other contributors: see Github repo" ],        "copyright":   "Copyright 2011-18 Nicolas Sicard",        "license":     "BSL-1.0", -  	  "sourcePaths": [ "./src/ext_depends/d2sqlite3/source" ], +      "sourcePaths": [ "./src/ext_depends/d2sqlite3/source" ], +      "importPaths": [ "./src/ext_depends/d2sqlite3/source" ],        "configurations": [          {            "name": "with-lib", @@ -206,7 +209,8 @@        "description": "Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.",        "authors": [ "Tero Hänninen" ],        "license": "BSL-1.0", -  	  "sourcePaths": [ "./src/ext_depends/imageformats/imageformats" ] +      "sourcePaths": [ "./src/ext_depends/imageformats" ], +      "importPaths": [ "./src/ext_depends/imageformats" ]      },      {        "name": "dyaml", @@ -218,9 +222,9 @@        "license": "BSL-1.0",        "homepage": "https://github.com/dlang-community/D-YAML",        "copyright": "Copyright © 2011-2018, Ferdinand Majerech", -  	  "sourcePaths": [ "./src/ext_depends/D-YAML/source/dyaml" ], -  	  "importPaths": [ -        "./src/ext_depends/D-YAML/source/dyaml", +      "sourcePaths": [ "./src/ext_depends/D-YAML/source" ], +      "importPaths": [ +        "./src/ext_depends/D-YAML/source",          "./src/ext_depends/tinyendian/source"        ],        "dependencies": { @@ -238,7 +242,8 @@        "license": "Boost 1.0",        "copyright": "Copyright © 2014, Ferdinand Majerech",        "homepage": "https://github.com/kiith-sa/tinyendian", -  	  "importPaths": [ "./src/ext_depends/tinyendian/source" ] +      "sourcePaths": [ "./src/ext_depends/tinyendian/source" ], +      "importPaths": [ "./src/ext_depends/tinyendian/source" ]      }    ],    "configurations": [ @@ -569,7 +574,8 @@ configuration "build" {        "authors":        [ "Adam Ruppee" ],        "copyright":      "Copyright 2011-18 Adam Ruppee",        "license":        "BSL-1.0", -  	  "sourcePaths":    [ "./src/ext_depends_cgi/arsd" ], +      "sourcePaths":    [ "./src/ext_depends_cgi/arsd" ], +      "importPaths":    [ "./src/ext_depends_cgi/arsd" ],        "configurations": [          {            "name":                "cgi", @@ -586,7 +592,8 @@ configuration "build" {        "authors":        [ "Nicolas Sicard", "Other contributors: see Github repo" ],        "copyright":      "Copyright 2011-18 Nicolas Sicard",        "license":        "BSL-1.0", -  	  "sourcePaths":    [ "./src/ext_depends_cgi/d2sqlite3/source" ], +      "sourcePaths":    [ "./src/ext_depends_cgi/d2sqlite3/source" ], +      "importPaths":    [ "./src/ext_depends_cgi/d2sqlite3/source" ],        "configurations": [          {            "name":                "d2sqlite3", diff --git a/org/config_nix.org b/org/config_nix.org index c5bd8dd..9763c57 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -555,14 +555,15 @@ nix flake update  #+HEADER: :shebang "#!/usr/bin/env -S nix-shell --pure"  #+BEGIN_SRC nix  { pkgs ? import <nixpkgs> {} }: -pkgs.mkShell { -  buildInputs = with pkgs; [ +with pkgs; +mkShell { +  buildInputs = [      <<shell_packages_nix_related>>      <<shell_packages_d_build_related>> -    <<shell_packages_candy>> -    # <<shell_packages_search_related_sqlite>> +    <<shell_packages_search_related_sqlite>>      # <<shell_packages_pdf_latex_related>>      # <<shell_packages_xml_and_epub_related>> +    <<shell_packages_candy>>    ];    shellHook = ''      if [[ -e ".envrc" ]]; then @@ -609,7 +610,6 @@ starship  #+NAME: shell_packages_search_related_sqlite  #+BEGIN_SRC nix -# search_sqlite_related  # search related  sqlite  #+END_SRC @@ -688,6 +688,15 @@ nix build -f spine.nix  #+HEADER: :tangle-mode (identity #o755)  #+HEADER: :shebang "#!/usr/bin/env -S nix-build"  #+BEGIN_SRC nix +{ pkgs ? import <nixpkgs> {} }: +pkgs.callPackage ./derivation.nix {} +#+END_SRC + +*** derivation.nix :default: + +#+HEADER: :tangle ../derivation.nix +#+HEADER: :tangle-mode (identity #o644) +#+BEGIN_SRC nix  { pkgs ? import <nixpkgs> {},    stdenv ? pkgs.stdenv,    lib ? pkgs.lib, @@ -779,11 +788,6 @@ mkDubDerivation rec {      ldc      sqlite    ]; -  # buildPhase = [ ]; -  installPhase = '' -    install -m755 -D spine $out/bin/spine -    echo "built $out/bin/spine" -  '';    <<nix_project_meta>>  }  #+END_SRC @@ -1109,8 +1113,9 @@ nix flake update  #+HEADER: :shebang "#!/usr/bin/env -S nix-shell --pure"  #+BEGIN_SRC nix  { pkgs ? import <nixpkgs> {} }: -pkgs.mkShell { -  buildInputs = with pkgs; [ +with pkgs; +mkShell { +  buildInputs = [      <<shell_packages_nix_related>>      <<shell_packages_d_build_related>>      <<shell_packages_search_related_sqlite>> @@ -1131,6 +1136,15 @@ pkgs.mkShell {  #+HEADER: :tangle-mode (identity #o755)  #+HEADER: :shebang "#!/usr/bin/env -S nix-build"  #+BEGIN_SRC nix +{ pkgs ? import <nixpkgs> {} }: +pkgs.callPackage ./derivation.nix {} +#+END_SRC + +*** derivation.nix :derivation: + +#+HEADER: :tangle "../sundry/spine_search_cgi/derivation.nix" +#+HEADER: :tangle-mode (identity #o644) +#+BEGIN_SRC nix  { pkgs ? import <nixpkgs> {},    stdenv ? pkgs.stdenv,    lib ? pkgs.lib, @@ -1231,11 +1245,6 @@ mkDubDerivation rec {        ]      )    ]; -  # # buildPhase = [ ]; -  # installPhase = '' -  #   install -m755 -D spine_search $out/bin/spine-search -  #   echo "built $out/bin/spine-search" -  # '';    meta = with pkgs.lib; {      homepage    = https://sisudoc.org;      description = "a sisu like document parser"; @@ -1429,4 +1438,3 @@ fc-query DejaVuSans.ttf | grep '^\s\+family:' | cut -d'"' -f2  $XDG_DATA_HOME/fonts  ~/.local/share/fonts  #+END_SRC - @@ -1,7 +1,8 @@  #!/usr/bin/env -S nix-shell --pure  { pkgs ? import <nixpkgs> {} }: -pkgs.mkShell { -  buildInputs = with pkgs; [ +with pkgs; +mkShell { +  buildInputs = [      # nix_related      nixFlakes      nix-prefetch-git @@ -13,11 +14,8 @@ pkgs.mkShell {      dub      ldc      #meson -    # candy -    starship -    # # search_sqlite_related -    # # search related -    # sqlite +    # search related +    sqlite      # # pdf_latex_related      # source-sans-pro      # source-serif-pro @@ -33,6 +31,8 @@ pkgs.mkShell {      # sigil      # calibre # (ebook-viewer)      # foliate +    # candy +    starship    ];    shellHook = ''      if [[ -e ".envrc" ]]; then diff --git a/src/ext_depends/D-YAML.meta b/src/ext_depends/D-YAML.meta index acad016..2f596f2 100644 --- a/src/ext_depends/D-YAML.meta +++ b/src/ext_depends/D-YAML.meta @@ -1,3 +1,3 @@ -D-YAML ff5ec445 +D-YAML a6805551  https://github.com/dlang-community/D-YAML  Boost Software License 1.0 (BSL-1.0) diff --git a/src/ext_depends/D-YAML/.github/workflows/d.yml b/src/ext_depends/D-YAML/.github/workflows/d.yml new file mode 100644 index 0000000..08f583f --- /dev/null +++ b/src/ext_depends/D-YAML/.github/workflows/d.yml @@ -0,0 +1,73 @@ +name: D + +on: +  push: +    branches: [ master ] +  pull_request: +    branches: [ master ] + +jobs: +  build: +    strategy: +      matrix: +        dc: +          - dmd-latest +          - ldc-latest +          - dmd-beta +    runs-on: ubuntu-latest +    steps: +    - uses: actions/checkout@v2 +    - uses: dlang-community/setup-dlang@4c99aa991ce7d19dd3064de0a4f2f6b2f152e2d7 +      with: +        compiler: ${{ matrix.dc }} +    - name: 'Test' +      run: | +        dub test --build=unittest-cov +        bash <(curl -s https://codecov.io/bash) +  examples: +    runs-on: ubuntu-latest +    needs: build +    steps: +    - uses: actions/checkout@v2 +    - uses: dlang-community/setup-dlang@4c99aa991ce7d19dd3064de0a4f2f6b2f152e2d7 +      with: +        compiler: dmd-latest +    - name: 'Build Examples' +      run: | +        dub build dyaml:benchmark +        dub build dyaml:constructor +        dub build dyaml:getting-started +        dub build dyaml:representer +        dub build dyaml:resolver +        dub build dyaml:testsuite +        dub build dyaml:tojson +        dub build dyaml:yaml_gen +        dub build dyaml:yaml_stats +  ninja: +    runs-on: ubuntu-latest +    steps: +    - uses: actions/checkout@v2 +    - uses: dlang-community/setup-dlang@4c99aa991ce7d19dd3064de0a4f2f6b2f152e2d7 +      with: +        compiler: dmd-latest +    - name: 'Install dependencies' +      run: | +        sudo apt-get install python3-pip python3-setuptools python3-wheel ninja-build +        sudo pip3 install meson +    - name: 'Build' +      run: | +        export PATH=$PATH:$PWD/.ntmp +        meson build && ninja -j8 -C build +        ninja -j8 -C build test -v +  yaml-test-suite: +    runs-on: ubuntu-latest +    needs: build +    steps: +    - uses: actions/checkout@v2 +    - uses: dlang-community/setup-dlang@4c99aa991ce7d19dd3064de0a4f2f6b2f152e2d7 +      with: +        compiler: dmd-latest +    - name: 'Run YAML test suite' +      run: | +        git clone https://github.com/yaml/yaml-test-suite +        dub run dyaml:testsuite diff --git a/src/ext_depends/D-YAML/docs/logo.svg b/src/ext_depends/D-YAML/docs/logo.svg new file mode 100644 index 0000000..0683284 --- /dev/null +++ b/src/ext_depends/D-YAML/docs/logo.svg @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg +   width="72.081085mm" +   height="23.683783mm" +   viewBox="0 0 72.081085 23.683783" +   version="1.1" +   id="svg5" +   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" +   sodipodi:docname="logo.svg" +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" +   xmlns="http://www.w3.org/2000/svg" +   xmlns:svg="http://www.w3.org/2000/svg"> +  <sodipodi:namedview +     id="namedview7" +     pagecolor="#ffffff" +     bordercolor="#666666" +     borderopacity="1.0" +     inkscape:pageshadow="2" +     inkscape:pageopacity="0.0" +     inkscape:pagecheckerboard="false" +     inkscape:document-units="mm" +     showgrid="false" +     inkscape:zoom="3.1090604" +     inkscape:cx="96.170536" +     inkscape:cy="-1.7690232" +     inkscape:window-width="1920" +     inkscape:window-height="1037" +     inkscape:window-x="0" +     inkscape:window-y="0" +     inkscape:window-maximized="1" +     inkscape:current-layer="layer3" +     fit-margin-top="0" +     fit-margin-left="0" +     fit-margin-right="0" +     fit-margin-bottom="0" +     inkscape:snap-intersection-paths="false" +     inkscape:object-paths="false" +     inkscape:snap-smooth-nodes="false" +     inkscape:snap-others="true" +     inkscape:snap-text-baseline="false" +     inkscape:snap-bbox="false" /> +  <g +     inkscape:groupmode="layer" +     id="layer3" +     inkscape:label="Background" +     style="display:inline;opacity:1"> +    <rect +       id="rect27931" +       width="69.767754" +       height="21.35491" +       x="1.1663953" +       y="1.1795517" +       style="fill:#a02010;fill-opacity:1;stroke:#800000;stroke-width:2.31061;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" +       ry="2.0646694" /> +  </g> +  <g +     inkscape:groupmode="layer" +     id="layer1" +     inkscape:label="Redraw" +     style="display:inline"> +    <path +       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" +       d="m 3.3596127,11.588522 -0.00167,1.215397 h 3.7208859 v -1.216451 z" +       id="path366" /> +    <path +       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" +       d="m 7.9491328,11.587597 -0.00167,1.215397 h 3.7208852 v -1.216451 z" +       id="path366-3" /> +    <path +       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" +       d="m 12.542085,11.587383 -0.0017,1.215397 h 3.720885 v -1.216451 z" +       id="path366-3-6" /> +    <path +       style="fill:none;fill-opacity:1;stroke:#ffaaaa;stroke-width:1.50865;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +       d="m 18.208542,6.5772319 0.0019,9.9235361 2.984365,-0.0015 c 2.257131,-0.0011 4.028957,-1.841084 4.028957,-4.960275 0,-3.7743035 -1.988594,-4.95213 -4.148338,-4.95213 z" +       id="path1429" +       sodipodi:nodetypes="ccsscc" /> +    <rect +       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.08054;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" +       id="rect33186" +       width="1.318697" +       height="1.4490472" +       x="27.402775" +       y="9.7524118" +       ry="0.63109142" /> +    <rect +       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.08054;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" +       id="rect33186-7" +       width="1.318697" +       height="1.4490472" +       x="27.399069" +       y="14.282472" +       ry="0.63109142" /> +    <rect +       style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.08054;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" +       id="rect33186-7-5" +       width="1.2367439" +       height="1.3484181" +       x="62.078617" +       y="14.800523" +       ry="0.56990385" /> +    <path +       style="fill:#faf5f4;fill-opacity:1;stroke:#faf5f4;stroke-width:0.0264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +       d="m 29.435146,7.01655 1.188715,-7.54e-4 2.762109,3.95981 2.761828,-3.9591246 1.176365,-0.00139 -3.476821,4.8699456 5.08e-4,4.333336 -0.923882,0.0017 -3.04e-4,-4.321608 z" +       id="path33522" +       sodipodi:nodetypes="cccccccccc" /> +    <path +       style="fill:#faf5f4;fill-opacity:1;stroke:#faf5f4;stroke-width:0.0264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +       d="m 35.645065,16.219087 1.003538,2.79e-4 0.990773,-2.511287 4.076129,-6e-6 0.990177,2.511131 1.003729,0.0014 -4.025414,-9.821757 z" +       id="path63310" +       sodipodi:nodetypes="cccccccc" /> +    <path +       style="fill:#a02010;fill-opacity:1;stroke:#a02010;stroke-width:0.0264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +       d="m 38.020975,12.826118 3.312824,-1.75e-4 -1.649675,-4.1982801 z" +       id="path64470" +       sodipodi:nodetypes="cccc" /> +    <path +       style="fill:#faf5f4;fill-opacity:1;stroke:#faf5f4;stroke-width:0.0264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +       d="m 44.015432,16.21915 0.952875,-2.51e-4 1.430776,-6.6010501 2.785926,7.1215661 2.772621,-7.1217129 1.445932,6.6015999 0.938289,0.0031 -2.13315,-9.7860055 -3.024245,7.8909655 -3.023596,-7.8922607 z" +       id="path89584" +       sodipodi:nodetypes="ccccccccccc" /> +    <path +       style="fill:#faf5f4;fill-opacity:1;stroke:#faf5f4;stroke-width:0.0264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +       d="m 55.522331,7.0154589 0.0011,9.2051281 4.221809,-5.08e-4 v -0.92532 l -3.297426,0.0011 -3.04e-4,-8.2790775 z" +       id="path102819" +       sodipodi:nodetypes="ccccccc" /> +    <rect +       style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.08054;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" +       id="rect33186-7-5-2" +       width="1.2367439" +       height="1.3484181" +       x="64.755455" +       y="14.799554" +       ry="0.56990385" /> +    <rect +       style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.08054;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" +       id="rect33186-7-5-9" +       width="1.2367439" +       height="1.3484181" +       x="67.430305" +       y="14.800311" +       ry="0.56990385" /> +  </g> +</svg> diff --git a/src/ext_depends/D-YAML/meson.build b/src/ext_depends/D-YAML/meson.build index 68d17c7..8a09d6a 100644 --- a/src/ext_depends/D-YAML/meson.build +++ b/src/ext_depends/D-YAML/meson.build @@ -1,7 +1,7 @@  project('D-YAML', 'd',      meson_version: '>=0.40.0',      subproject_dir: 'contrib', -    version: '0.8.0' +    version: '0.8.4'  )  project_soversion    = '0' diff --git a/src/ext_depends/D-YAML/source/dyaml/emitter.d b/src/ext_depends/D-YAML/source/dyaml/emitter.d index c797eb9..a436c7c 100644 --- a/src/ext_depends/D-YAML/source/dyaml/emitter.d +++ b/src/ext_depends/D-YAML/source/dyaml/emitter.d @@ -906,7 +906,7 @@ struct Emitter(Range, CharType) if (isOutputRange!(Range, CharType))          {              string tagString = tag; -            if(tagString == "!"){return tagString;} +            if (tagString == "!") return "!";              string handle;              string suffix = tagString; diff --git a/src/ext_depends/D-YAML/source/dyaml/representer.d b/src/ext_depends/D-YAML/source/dyaml/representer.d index a7ca802..98c825b 100644 --- a/src/ext_depends/D-YAML/source/dyaml/representer.d +++ b/src/ext_depends/D-YAML/source/dyaml/representer.d @@ -142,7 +142,7 @@ Node representData(const Node data, ScalarStyle defaultScalarStyle, CollectionSt  {      // Float comparison is pretty unreliable...      auto result = representData(Node(1.0), ScalarStyle.invalid, CollectionStyle.invalid); -    assert(approxEqual(result.as!string.to!real, 1.0)); +    assert(isClose(result.as!string.to!real, 1.0));      assert(result.tag == "tag:yaml.org,2002:float");      assert(representData(Node(real.nan), ScalarStyle.invalid, CollectionStyle.invalid) == Node(".nan", "tag:yaml.org,2002:float")); diff --git a/sundry/spine_search_cgi/default.nix b/sundry/spine_search_cgi/default.nix index f9cc984..72f4f02 100755 --- a/sundry/spine_search_cgi/default.nix +++ b/sundry/spine_search_cgi/default.nix @@ -1,114 +1,3 @@  #!/usr/bin/env -S nix-build -{ pkgs ? import <nixpkgs> {}, -  stdenv ? pkgs.stdenv, -  lib ? pkgs.lib, -  ldc ? null, -  dcompiler ? pkgs.ldc, -  dub ? pkgs.dub -}: -assert dcompiler != null; -with ( -  assert dcompiler != null; -  with lib; -  let -    # Filter function to remove the .dub package folder from src -    filterDub = name: type: let baseName = baseNameOf (toString name); in ! ( -      type == "directory" && baseName == ".dub" -    ); -    targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; -    # Remove reference to build tools and library sources -    disallowedReferences = deps: [ dcompiler dub ]; -    removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}''; -  in { -    mkDubDerivation = lib.makeOverridable ({ -      src, -      nativeBuildInputs ? [], -      dubJSON ? src + "/dub.json", -      passthru ? {}, -      package ? lib.importJSON dubJSON, -      ... -    } @ attrs: stdenv.mkDerivation (attrs // { -      pname = package.name; -      nativeBuildInputs = [ dcompiler dub pkgs.removeReferencesTo ] ++ nativeBuildInputs; -      disallowedReferences = disallowedReferences deps; -      passthru = passthru // { -        inherit dub dcompiler pkgs; -      }; -      src = lib.cleanSourceWith { -        filter = filterDub; -        src = lib.cleanSource src; -      }; -      preFixup = '' -        find $out/share/cgi-bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true -      ''; -      buildPhase = '' -        runHook preBuild -        export HOME=$PWD -        for dc_ in dmd ldmd2 gdmd; do -          echo "- check for D compiler $dc_" -          dc=$(type -P $dc_ || echo "") -          if [ ! "$dc" == "" ]; then -            break -          fi -        done -        if [ "$dc" == "" ]; then -          exit "Error: could not find D compiler" -        fi -        echo "$dc_ used as D compiler to build $pname" -        dub build --compiler=$dc --build=release --combined --skip-registry=all -        runHook postBuild -      ''; -      checkPhase = '' -        runHook preCheck -        export HOME=$PWD -        dub test --combined --skip-registry=all -        runHook postCheck -      ''; -      installPhase = '' -        runHook preInstall -        mkdir -p $out/share/cgi-bin -        cp -r "${targetOf package}" $out/share/cgi-bin -        install -m755 -D $out/share/cgi-bin/spine_search spine_search -        runHook postInstall -      ''; -      postInstall = '' -        echo "HERE ${targetOf package} $out/share/cgi-bin" -        echo `ls -la $out/share/cgi-bin/spine_search` -      ''; -      meta = lib.optionalAttrs (package ? description) { -        description = package.description; -      } // attrs.meta or {}; -    } // lib.optionalAttrs (!(attrs ? version)) { -      # Use name from dub.json, unless pname and version are specified -      name = package.name; -    })); -  } -); -mkDubDerivation rec { -  name = "spine-search-${version}"; -  version = "0.11.3"; -  src = ./.; -  buildInputs = [ -    pkgs.sqlite ( -      with pkgs; [ -        nixFlakes -        rund -        dub -        ldc -        sqlite -      ] -    ) -  ]; -  # # buildPhase = [ ]; -  # installPhase = '' -  #   install -m755 -D spine_search $out/bin/spine-search -  #   echo "built $out/bin/spine-search" -  # ''; -  meta = with pkgs.lib; { -    homepage    = https://sisudoc.org; -    description = "a sisu like document parser"; -    license     = licenses.agpl3Plus; -    platforms   = platforms.linux; -    maintainers = [ RalphAmissah ]; -  }; -} +{ pkgs ? import <nixpkgs> {} }: +pkgs.callPackage ./derivation.nix {} diff --git a/sundry/spine_search_cgi/derivation.nix b/sundry/spine_search_cgi/derivation.nix new file mode 100644 index 0000000..5bde866 --- /dev/null +++ b/sundry/spine_search_cgi/derivation.nix @@ -0,0 +1,108 @@ +{ pkgs ? import <nixpkgs> {}, +  stdenv ? pkgs.stdenv, +  lib ? pkgs.lib, +  ldc ? null, +  dcompiler ? pkgs.ldc, +  dub ? pkgs.dub +}: +assert dcompiler != null; +with ( +  assert dcompiler != null; +  with lib; +  let +    # Filter function to remove the .dub package folder from src +    filterDub = name: type: let baseName = baseNameOf (toString name); in ! ( +      type == "directory" && baseName == ".dub" +    ); +    targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; +    # Remove reference to build tools and library sources +    disallowedReferences = deps: [ dcompiler dub ]; +    removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}''; +  in { +    mkDubDerivation = lib.makeOverridable ({ +      src, +      nativeBuildInputs ? [], +      dubJSON ? src + "/dub.json", +      passthru ? {}, +      package ? lib.importJSON dubJSON, +      ... +    } @ attrs: stdenv.mkDerivation (attrs // { +      pname = package.name; +      nativeBuildInputs = [ dcompiler dub pkgs.removeReferencesTo ] ++ nativeBuildInputs; +      disallowedReferences = disallowedReferences deps; +      passthru = passthru // { +        inherit dub dcompiler pkgs; +      }; +      src = lib.cleanSourceWith { +        filter = filterDub; +        src = lib.cleanSource src; +      }; +      preFixup = '' +        find $out/share/cgi-bin -type f -exec ${removeExpr (disallowedReferences deps)} '{}' + || true +      ''; +      buildPhase = '' +        runHook preBuild +        export HOME=$PWD +        for dc_ in dmd ldmd2 gdmd; do +          echo "- check for D compiler $dc_" +          dc=$(type -P $dc_ || echo "") +          if [ ! "$dc" == "" ]; then +            break +          fi +        done +        if [ "$dc" == "" ]; then +          exit "Error: could not find D compiler" +        fi +        echo "$dc_ used as D compiler to build $pname" +        dub build --compiler=$dc --build=release --combined --skip-registry=all +        runHook postBuild +      ''; +      checkPhase = '' +        runHook preCheck +        export HOME=$PWD +        dub test --combined --skip-registry=all +        runHook postCheck +      ''; +      installPhase = '' +        runHook preInstall +        mkdir -p $out/share/cgi-bin +        cp -r "${targetOf package}" $out/share/cgi-bin +        install -m755 -D $out/share/cgi-bin/spine_search spine_search +        runHook postInstall +      ''; +      postInstall = '' +        echo "HERE ${targetOf package} $out/share/cgi-bin" +        echo `ls -la $out/share/cgi-bin/spine_search` +      ''; +      meta = lib.optionalAttrs (package ? description) { +        description = package.description; +      } // attrs.meta or {}; +    } // lib.optionalAttrs (!(attrs ? version)) { +      # Use name from dub.json, unless pname and version are specified +      name = package.name; +    })); +  } +); +mkDubDerivation rec { +  name = "spine-search-${version}"; +  version = "0.11.3"; +  src = ./.; +  buildInputs = [ +    pkgs.sqlite ( +      with pkgs; [ +        nixFlakes +        rund +        dub +        ldc +        sqlite +      ] +    ) +  ]; +  meta = with pkgs.lib; { +    homepage    = https://sisudoc.org; +    description = "a sisu like document parser"; +    license     = licenses.agpl3Plus; +    platforms   = platforms.linux; +    maintainers = [ RalphAmissah ]; +  }; +} diff --git a/sundry/spine_search_cgi/dub.json b/sundry/spine_search_cgi/dub.json index 12e77e5..6e17da3 100644 --- a/sundry/spine_search_cgi/dub.json +++ b/sundry/spine_search_cgi/dub.json @@ -38,7 +38,8 @@        "authors":        [ "Adam Ruppee" ],        "copyright":      "Copyright 2011-18 Adam Ruppee",        "license":        "BSL-1.0", -  	  "sourcePaths":    [ "./src/ext_depends_cgi/arsd" ], +      "sourcePaths":    [ "./src/ext_depends_cgi/arsd" ], +      "importPaths":    [ "./src/ext_depends_cgi/arsd" ],        "configurations": [          {            "name":                "cgi", @@ -55,7 +56,8 @@        "authors":        [ "Nicolas Sicard", "Other contributors: see Github repo" ],        "copyright":      "Copyright 2011-18 Nicolas Sicard",        "license":        "BSL-1.0", -  	  "sourcePaths":    [ "./src/ext_depends_cgi/d2sqlite3/source" ], +      "sourcePaths":    [ "./src/ext_depends_cgi/d2sqlite3/source" ], +      "importPaths":    [ "./src/ext_depends_cgi/d2sqlite3/source" ],        "configurations": [          {            "name":                "d2sqlite3", diff --git a/sundry/spine_search_cgi/shell.nix b/sundry/spine_search_cgi/shell.nix index 55ca4ae..8a73316 100755 --- a/sundry/spine_search_cgi/shell.nix +++ b/sundry/spine_search_cgi/shell.nix @@ -1,7 +1,8 @@  #!/usr/bin/env -S nix-shell --pure  { pkgs ? import <nixpkgs> {} }: -pkgs.mkShell { -  buildInputs = with pkgs; [ +with pkgs; +mkShell { +  buildInputs = [      # nix_related      nixFlakes      nix-prefetch-git @@ -13,7 +14,6 @@ pkgs.mkShell {      dub      ldc      #meson -    # search_sqlite_related      # search related      sqlite      # candy diff --git a/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d b/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d index a0249ee..9ac46b9 100644 --- a/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d +++ b/sundry/spine_search_cgi/src/ext_depends_cgi/arsd/cgi.d @@ -107,6 +107,7 @@ void main() {  		* `cgi` for traditional cgi binaries.  		* `fastcgi` for FastCGI builds.  		* `scgi` for SCGI builds. +		* `stdio_http` for speaking raw http over stdin and stdout. See [RequestServer.serveSingleHttpConnectionOnStdio] for more information.  	)  	With dmd, use: @@ -131,6 +132,8 @@ void main() {  			- The embedded HTTP server will use a prefork style process pool. (use instead of plain `embedded_httpd` if you want this specific implementation)  		* - `-version=embedded_httpd_processes_accept_after_fork`  			- It will call accept() in each child process, after forking. This is currently the only option, though I am experimenting with other ideas. You probably should NOT specify this right now. +		* - `-version=stdio_http` +			- The embedded HTTP server will be spoken over stdin and stdout.  		* + Tweaks  		  + (can be used together with others) @@ -147,7 +150,7 @@ void main() {  	)  	Compile_and_run: -	 +  	For CGI, `dmd yourfile.d cgi.d` then put the executable in your cgi-bin directory.  	For FastCGI: `dmd yourfile.d cgi.d -version=fastcgi` and run it. spawn-fcgi helps on nginx. You can put the file in the directory for Apache. On IIS, run it with a port on the command line (this causes it to call FCGX_OpenSocket, which can work on nginx too). @@ -325,7 +328,7 @@ void main() {  	web applications.  	For working with json, try [arsd.jsvar]. -	 +  	[arsd.database], [arsd.mysql], [arsd.postgres], [arsd.mssql], and [arsd.sqlite] can help in  	accessing databases. @@ -529,7 +532,7 @@ class ConnectionClosedException : Exception {  	}  } -  +  version(Windows) {  // FIXME: ugly hack to solve stdin exception problems on Windows:  // reading stdin results in StdioException (Bad file descriptor) @@ -543,7 +546,7 @@ private struct stdin {  		in {  			assert(size, "size must be larger than 0");  		} -		body { +		do {  			chunk_ = new ubyte[](size);  			popFront();  		} @@ -592,6 +595,10 @@ static:  	}  	auto byChunk(size_t sz) { return ByChunk(sz); } + +	void close() { +		std.stdio.stdin.close; +	}  }  } @@ -1338,7 +1345,7 @@ class Cgi {  				}  				/* -				stderr.writeln("RECEIVED: ", pps.piece.name, "=",  +				stderr.writeln("RECEIVED: ", pps.piece.name, "=",  					pps.piece.content.length < 1000  					?  					to!string(pps.piece.content) @@ -1605,7 +1612,7 @@ class Cgi {  	/// My idea here was so you can output a progress bar or  	/// something to a cooperative client (see arsd.rtud for a potential helper)  	/// -	/// The default is to do nothing. Subclass cgi and use the  +	/// The default is to do nothing. Subclass cgi and use the  	/// CustomCgiMain mixin to do something here.  	void onRequestBodyDataReceived(size_t receivedSoFar, size_t totalExpected) const {  		// This space intentionally left blank. @@ -1638,9 +1645,9 @@ class Cgi {  		// see: https://github.com/dlang/phobos/pull/7383  		// but this might be more useful anyway tbh for this case  		version(Posix) -		this(ir, cast(UnixAddress) ira ? "unix:" : ira.toString(), port, 0, false, &rdo, null, closeConnection); +		this(ir, ira is null ? null : cast(UnixAddress) ira ? "unix:" : ira.toString(), port, 0, false, &rdo, null, closeConnection);  		else -		this(ir, ira.toString(), port, 0, false, &rdo, null, closeConnection); +		this(ir, ira is null ? null : ira.toString(), port, 0, false, &rdo, null, closeConnection);  	}  	/** @@ -1957,8 +1964,8 @@ class Cgi {  	/// application. Either use Apache's built in methods for basic authentication, or add  	/// something along these lines to your server configuration:  	/// -	///      RewriteEngine On  -	///      RewriteCond %{HTTP:Authorization} ^(.*)  +	///      RewriteEngine On +	///      RewriteCond %{HTTP:Authorization} ^(.*)  	///      RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]  	///  	/// To ensure the necessary data is available to cgi.d. @@ -2413,7 +2420,7 @@ class Cgi {  	/++  		Gets a request variable as a specific type, or the default value of it isn't there  		or isn't convertible to the request type. -		 +  		Checks both GET and POST variables, preferring the POST variable, if available.  		A nice trick is using the default value to choose the type: @@ -2548,7 +2555,7 @@ class Cgi {  	immutable(char[]) referrer;  	immutable(char[]) requestUri; 	/// The full url if the current request, excluding the protocol and host. requestUri == scriptName ~ pathInfo ~ (queryString.length ? "?" ~ queryString : ""); -	immutable(char[]) remoteAddress; /// The IP address of the user, as we see it. (Might not match the IP of the user's computer due to things like proxies and NAT.)  +	immutable(char[]) remoteAddress; /// The IP address of the user, as we see it. (Might not match the IP of the user's computer due to things like proxies and NAT.)  	immutable bool https; 	/// Was the request encrypted via https?  	immutable int port; 	/// On what TCP port number did the server receive the request? @@ -2561,7 +2568,7 @@ class Cgi {  	/**  		Represents user uploaded files. -		 +  		When making a file upload form, be sure to follow the standard: set method="POST" and enctype="multipart/form-data" in your html <form> tag attributes. The key into this array is the name attribute on your input tag, just like with other post variables. See the comments on the UploadedFile struct for more information about the data inside, including important notes on max size and content location.  	*/  	immutable(UploadedFile[][string]) filesArray; @@ -2886,7 +2893,7 @@ struct Uri {  		path_loop:  		auto path_start = idx; -		 +  		foreach(char c; uri[idx .. $]) {  			if(c == '?' || c == '#')  				break; @@ -2991,14 +2998,23 @@ struct Uri {  			if(part == ".") {  				continue;  			} else if(part == "..") { -				toKeep = toKeep[0 .. $-1]; +				//if(toKeep.length > 1) +					toKeep = toKeep[0 .. $-1]; +				//else +					//toKeep = [""];  				continue;  			} else { +				//if(toKeep.length && toKeep[$-1].length == 0 && part.length == 0) +					//continue; // skip a `//` situation  				toKeep ~= part;  			}  		} -		this.path = toKeep.join("/"); +		auto path = toKeep.join("/"); +		if(path.length && path[0] != '/') +			path = "/" ~ path; + +		this.path = path;  	}  	unittest { @@ -3081,6 +3097,9 @@ struct Uri {  		assert(Uri("./").basedOn(url) == "/test/", Uri("./").basedOn(url));  		assert(Uri("../").basedOn(url) == "/"); +		url = Uri("http://example.com/"); +		assert(Uri("../foo").basedOn(url) == "http://example.com/foo"); +  		//auto uriBefore = url;  		url = Uri("#anchor"); // everything should remain the same except the anchor  		//uriBefore.anchor = "anchor"); @@ -3258,6 +3277,37 @@ mixin template GenericMain(alias fun, long maxContentLength = defaultMaxContentL  	mixin CustomCgiMain!(Cgi, fun, maxContentLength);  } +/++ +	Boilerplate mixin for a main function that uses the [dispatcher] function. + +	You can send `typeof(null)` as the `Presenter` argument to use a generic one. + +	History: +		Added July 9, 2021 ++/ +mixin template DispatcherMain(Presenter, DispatcherArgs...) { +	/++ +		Handler to the generated presenter you can use from your objects, etc. +	+/ +	Presenter activePresenter; + +	/++ +		Request handler that creates the presenter then forwards to the [dispatcher] function. +		Renders 404 if the dispatcher did not handle the request. +	+/ +	void handler(Cgi cgi) { +		auto presenter = new Presenter; +		activePresenter = presenter; +		scope(exit) activePresenter = null; + +		if(cgi.dispatcher!DispatcherArgs(presenter)) +			return; + +		presenter.renderBasicError(cgi, 404); +	} +	mixin GenericMain!handler; +} +  private string simpleHtmlEncode(string s) {  	return s.replace("&", "&").replace("<", "<").replace(">", ">").replace("\n", "<br />\n");  } @@ -3508,6 +3558,9 @@ struct RequestServer {  		} else  		version(fastcgi) {  			serveFastCgi!(fun, CustomCgi, maxContentLength)(this); +		} else +		version(stdio_http) { +			serveSingleHttpConnectionOnStdio!(fun, CustomCgi, maxContentLength)();  		} else {  			//version=plain_cgi;  			handleCgiRequest!(fun, CustomCgi, maxContentLength)(); @@ -3523,6 +3576,18 @@ struct RequestServer {  		manager.listen();  	} +	/++ +		Serves a single "connection", but the connection is spoken on stdin and stdout instead of on a socket. + +		Intended for cases like working from systemd, like discussed here: https://forum.dlang.org/post/avmkfdiitirnrenzljwc@forum.dlang.org + +		History: +			Added May 29, 2021 +	+/ +	void serveSingleHttpConnectionOnStdio(alias fun, CustomCgi = Cgi, long maxContentLength = defaultMaxContentLength)() { +		doThreadHttpConnectionGuts!(CustomCgi, fun, true)(new FakeSocketForStdin()); +	} +  	void stop() {  		// FIXME  	} @@ -4015,7 +4080,7 @@ void handleCgiRequest(alias fun, CustomCgi = Cgi, long maxContentLength = defaul  		specify if you yield all bets are off.  		when the request is finished, if there's more data buffered, it just -		keeps going. if there is no more data buffered, it epoll ctls to  +		keeps going. if there is no more data buffered, it epoll ctls to  		get triggered when more data comes in. all one shot.  		when a connection is closed, the fiber returns and is then reset @@ -4034,6 +4099,17 @@ void handleCgiRequest(alias fun, CustomCgi = Cgi, long maxContentLength = defaul  +/ +/++ +	The stack size when a fiber is created. You can set this from your main or from a shared static constructor +	to optimize your memory use if you know you don't need this much space. Be careful though, some functions use +	more stack space than you realize and a recursive function (including ones like in dom.d) can easily grow fast! + +	History: +		Added July 10, 2021. Previously, it used the druntime default of 16 KB. ++/ +version(cgi_use_fiber) +__gshared size_t fiberStackSize = 4096 * 100; +  version(cgi_use_fiber)  class CgiFiber : Fiber {  	private void function(Socket) f_handler; @@ -4047,8 +4123,7 @@ class CgiFiber : Fiber {  	this(void delegate(Socket) handler) {  		this.handler = handler; -		// FIXME: stack size -		super(&run); +		super(&run, fiberStackSize);  	}  	Socket connection; @@ -4576,7 +4651,7 @@ class BufferedInputRange {  						// gonna treat a timeout here as a close  						sourceClosed = true;  						return; -					}  +					}  				}  				version(Posix) {  					import core.stdc.errno; @@ -4643,6 +4718,53 @@ class BufferedInputRange {  	bool sourceClosed;  } +private class FakeSocketForStdin : Socket { +	import std.stdio; + +	this() { + +	} + +	private bool closed; + +	override ptrdiff_t receive(void[] buffer, std.socket.SocketFlags) @trusted { +		if(closed) +			throw new Exception("Closed"); +		return stdin.rawRead(buffer).length; +	} + +	override ptrdiff_t send(const void[] buffer, std.socket.SocketFlags) @trusted { +		if(closed) +			throw new Exception("Closed"); +		stdout.rawWrite(buffer); +		return buffer.length; +	} + +	override void close() @trusted { +		(cast(void delegate() @nogc nothrow) &realClose)(); +	} + +	override void shutdown(SocketShutdown s) { +		// FIXME +	} + +	override void setOption(SocketOptionLevel, SocketOption, void[]) {} +	override void setOption(SocketOptionLevel, SocketOption, Duration) {} + +	override @property @trusted Address remoteAddress() { return null; } +	override @property @trusted Address localAddress() { return null; } + +	void realClose() { +		closed = true; +		try { +			stdin.close(); +			stdout.close(); +		} catch(Exception e) { + +		} +	} +} +  import core.sync.semaphore;  import core.atomic; @@ -4909,6 +5031,7 @@ void sendAll(Socket s, const(void)[] data, string file = __FILE__, size_t line =  			throw new ConnectionException(s, lastSocketError, file, line);  		}  		assert(amount > 0); +  		data = data[amount .. $];  	} while(data.length);  } @@ -5488,7 +5611,7 @@ version(cgi_with_websocket) {  			WebSocketFrame wss;  			wss.fin = true;  			wss.opcode = WebSocketOpcode.close; -			wss.data = cast(ubyte[]) reason; +			wss.data = cast(ubyte[]) reason.dup;  			wss.send(&llsend);  			readyState_ = CLOSING; @@ -5523,7 +5646,7 @@ version(cgi_with_websocket) {  			WebSocketFrame wss;  			wss.fin = true;  			wss.opcode = WebSocketOpcode.text; -			wss.data = cast(ubyte[]) textData; +			wss.data = cast(ubyte[]) textData.dup;  			wss.send(&llsend);  		} @@ -5535,7 +5658,7 @@ version(cgi_with_websocket) {  			WebSocketFrame wss;  			wss.fin = true;  			wss.opcode = WebSocketOpcode.binary; -			wss.data = cast(ubyte[]) binaryData; +			wss.data = cast(ubyte[]) binaryData.dup;  			wss.send(&llsend);  		} @@ -5773,7 +5896,7 @@ version(cgi_with_websocket) {  			WebSocketFrame msg;  			msg.fin = true;  			msg.opcode = opcode; -			msg.data = cast(ubyte[]) data; +			msg.data = cast(ubyte[]) data.dup;  			return msg;  		} @@ -5906,7 +6029,7 @@ version(cgi_with_websocket) {  				if(d.length < 8) return needsMoreData();  				foreach(i; 0 .. 8) { -					msg.realLength |= d[0] << ((7-i) * 8); +					msg.realLength |= ulong(d[0]) << ((7-i) * 8);  					d = d[1 .. $];  				}  			} else { @@ -6282,7 +6405,7 @@ https://docs.microsoft.com/en-us/windows/desktop/api/winsock2/nf-winsock2-wsaget  	You can customize your server by subclassing the appropriate server. Then, register your  	subclass at compile time with the [registerEventIoServer] template, or implement your own  	main function and call it yourself. -	 +  	$(TIP If you make your subclass a `final class`, there is a slight performance improvement.)  +/  version(with_addon_servers_connections) @@ -6691,7 +6814,7 @@ interface Session(Data) : SessionObject {  /++  	An implementation of [Session] that works on real cgi connections utilizing the  	[BasicDataServer]. -	 +  	As opposed to a [MockSession] which is made for testing purposes.  	You will not construct one of these directly. See [Cgi.getSessionObject] instead. @@ -7281,9 +7404,9 @@ final class EventSourceServerImplementation : EventSourceServer, EventIoServer {  		foreach(url, connections; eventConnectionsByUrl)  		foreach(connection; connections)  			if(connection.needsChunking) -				nonBlockingWrite(this, connection.fd, "2\r\n:\n"); +				nonBlockingWrite(this, connection.fd, "2\r\n:\n\r\n");  			else -				nonBlockingWrite(this, connection.fd, ":\n"); +				nonBlockingWrite(this, connection.fd, ":\n\r\n");  	}  	void fileClosed(int fd) { @@ -7449,18 +7572,21 @@ final class EventSourceServerImplementation : EventSourceServer, EventIoServer {  		auto len = toHex(formattedMessage.length);  		buffer[4 .. 6] = "\r\n"[];  		buffer[4 - len.length .. 4] = len[]; +		buffer[6 + formattedMessage.length] = '\r'; +		buffer[6 + formattedMessage.length + 1] = '\n'; -		auto chunkedMessage = buffer[4 - len.length .. 6 + formattedMessage.length]; +		auto chunkedMessage = buffer[4 - len.length .. 6 + formattedMessage.length +2];  		// done  		// FIXME: send back requests when needed  		// FIXME: send a single ":\n" every 15 seconds to keep alive  		foreach(connection; connections) { -			if(connection.needsChunking) +			if(connection.needsChunking) {  				nonBlockingWrite(this, connection.fd, chunkedMessage); -			else +			} else {  				nonBlockingWrite(this, connection.fd, formattedMessage); +			}  		}  	}  } @@ -8025,8 +8151,34 @@ auto callFromCgi(alias method, T)(T dg, Cgi cgi) {  				*what = T.init;  				return true;  			} else { -				// could be a child -				if(name[paramName.length] == '.') { +				// could be a child. gonna allow either obj.field OR obj[field] + +				string afterName; + +				if(name[paramName.length] == '[') { +					int count = 1; +					auto idx = paramName.length + 1; +					while(idx < name.length && count > 0) { +						if(name[idx] == '[') +							count++; +						else if(name[idx] == ']') { +							count--; +							if(count == 0) break; +						} +						idx++; +					} + +					if(idx == name.length) +						return false; // malformed + +					auto insideBrackets = name[paramName.length + 1 .. idx]; +					afterName = name[idx + 1 .. $]; + +					name = name[0 .. paramName.length]; + +					paramName = insideBrackets; + +				} else if(name[paramName.length] == '.') {  					paramName = name[paramName.length + 1 .. $];  					name = paramName;  					int p = 0; @@ -8036,17 +8188,23 @@ auto callFromCgi(alias method, T)(T dg, Cgi cgi) {  						p++;  					} -					// set the child member -					switch(paramName) { -						foreach(idx, memberName; __traits(allMembers, T)) -						static if(__traits(compiles, __traits(getMember, T, memberName).offsetof)) { -							// data member! -							case memberName: -								return setVariable(name, paramName, &(__traits(getMember, *what, memberName)), value); -						} -						default: -							// ok, not a member +					afterName = paramName[p .. $]; +					paramName = paramName[0 .. p]; +				} else { +					return false; +				} + +				if(paramName.length) +				// set the child member +				switch(paramName) { +					foreach(idx, memberName; __traits(allMembers, T)) +					static if(__traits(compiles, __traits(getMember, T, memberName).offsetof)) { +						// data member! +						case memberName: +							return setVariable(name ~ afterName, paramName, &(__traits(getMember, *what, memberName)), value);  					} +					default: +						// ok, not a member  				}  			} @@ -8458,13 +8616,13 @@ html", true, true);  	}  	/// Multiple responses deconstruct the algebraic type and forward to the appropriate handler at runtime -	void presentSuccessfulReturn(T : MultipleResponses!Types, Types...)(Cgi cgi, T ret, typeof(null) meta, string format) { +	void presentSuccessfulReturn(T : MultipleResponses!Types, Meta, Types...)(Cgi cgi, T ret, Meta meta, string format) {  		bool outputted = false;  		foreach(index, type; Types) {  			if(ret.contains == index) {  				assert(!outputted);  				outputted = true; -				(cast(CRTP) this).presentSuccessfulReturnAsHtml(cgi, ret.payload[index], meta); +				(cast(CRTP) this).presentSuccessfulReturn(cgi, ret.payload[index], meta, format);  			}  		}  		if(!outputted) @@ -8574,7 +8732,19 @@ html", true, true);  		auto div = Element.make("div");  		div.addClass("form-field"); -		static if(is(T == struct)) { +		static if(is(T == Cgi.UploadedFile)) { +			Element lbl; +			if(displayName !is null) { +				lbl = div.addChild("label"); +				lbl.addChild("span", displayName, "label-text"); +				lbl.appendText(" "); +			} else { +				lbl = div; +			} +			auto i = lbl.addChild("input", name); +			i.attrs.name = name; +			i.attrs.type = "file"; +		} else static if(is(T == struct)) {  			if(displayName !is null)  				div.addChild("span", displayName, "label-text");  			auto fieldset = div.addChild("fieldset"); @@ -9167,7 +9337,7 @@ private auto serveApiInternal(T)(string urlPrefix) {  						} else static if(__traits(isSame, AutomaticForm, attr)) {  							automaticForm = true;  						} -				 +  				/+  				int zeroArgOverload = -1;  				int overloadCount = cast(int) __traits(getOverloads, T, methodName).length; @@ -9304,7 +9474,7 @@ private auto serveApiInternal(T)(string urlPrefix) {  			default:  				return false;  		} -	 +  		assert(0);  	}  	return DispatcherDefinition!internalHandler(urlPrefix, false); @@ -9948,7 +10118,7 @@ struct DUMMY {}  struct SetOfFields(T) {  	private void[0][string] storage;  	void set(string what) { -		//storage[what] =  +		//storage[what] =  	}  	void unset(string what) {}  	void setAll() {} @@ -10255,27 +10425,58 @@ private static string getHttpCodeText(int code) pure nothrow @nogc {  		case 203: return "203 Non-Authoritative Information";  		case 204: return "204 No Content";  		case 205: return "205 Reset Content"; +		case 206: return "206 Partial Content";  		//  		case 300: return "300 Multiple Choices";  		case 301: return "301 Moved Permanently";  		case 302: return "302 Found";  		case 303: return "303 See Other"; +		case 304: return "304 Not Modified"; +		case 305: return "305 Use Proxy";  		case 307: return "307 Temporary Redirect";  		case 308: return "308 Permanent Redirect"; +  		// -		// FIXME: add more common 400 ones cgi.d might return too  		case 400: return "400 Bad Request"; +		case 401: return "401 Unauthorized"; +		case 402: return "402 Payment Required";  		case 403: return "403 Forbidden";  		case 404: return "404 Not Found";  		case 405: return "405 Method Not Allowed";  		case 406: return "406 Not Acceptable"; +		case 407: return "407 Proxy Authentication Required"; +		case 408: return "408 Request Timeout";  		case 409: return "409 Conflict";  		case 410: return "410 Gone"; -		// +		case 411: return "411 Length Required"; +		case 412: return "412 Precondition Failed"; +		case 413: return "413 Payload Too Large"; +		case 414: return "414 URI Too Long"; +		case 415: return "415 Unsupported Media Type"; +		case 416: return "416 Range Not Satisfiable"; +		case 417: return "417 Expectation Failed"; +		case 418: return "418 I'm a teapot"; +		case 421: return "421 Misdirected Request"; +		case 422: return "422 Unprocessable Entity (WebDAV)"; +		case 423: return "423 Locked (WebDAV)"; +		case 424: return "424 Failed Dependency (WebDAV)"; +		case 425: return "425 Too Early"; +		case 426: return "426 Upgrade Required"; +		case 428: return "428 Precondition Required"; +		case 431: return "431 Request Header Fields Too Large"; +		case 451: return "451 Unavailable For Legal Reasons"; +  		case 500: return "500 Internal Server Error";  		case 501: return "501 Not Implemented";  		case 502: return "502 Bad Gateway";  		case 503: return "503 Service Unavailable"; +		case 504: return "504 Gateway Timeout"; +		case 505: return "505 HTTP Version Not Supported"; +		case 506: return "506 Variant Also Negotiates"; +		case 507: return "507 Insufficient Storage (WebDAV)"; +		case 508: return "508 Loop Detected (WebDAV)"; +		case 510: return "510 Not Extended"; +		case 511: return "511 Network Authentication Required";  		//  		default: assert(0, "Unsupported http code");  	} diff --git a/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/.github/workflows/main.yaml b/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/.github/workflows/main.yaml index 28eaebe..f915693 100644 --- a/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/.github/workflows/main.yaml +++ b/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/.github/workflows/main.yaml @@ -58,12 +58,12 @@ jobs:          dub --version      # Build and run the tests -    - name: '[POSIX] Build & test Agora' +    - name: '[POSIX] Build & test'        if: runner.os != 'Windows'        #continue-on-error: matrix.dc == 'ldc-master' || matrix.dc == 'dmd-master'        run: dub test -c ci -    - name: '[Windows] Build & test Agora' +    - name: '[Windows] Build & test'        if: runner.os == 'Windows'        #continue-on-error: matrix.dc == 'ldc-master' || matrix.dc == 'dmd-master'        shell: cmd diff --git a/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d b/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d index 7aebe63..93a6509 100644 --- a/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d +++ b/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/database.d @@ -1184,7 +1184,7 @@ version (_UnlockNotify)              /// Unlocks the handler, state is one of SQLITE_LOCKED or SQLITE_OK              void emit(int res) nothrow              in { assert(res == SQLITE_LOCKED || res == SQLITE_OK); } -            body +            do              {                  try                  { @@ -1208,7 +1208,7 @@ version (_UnlockNotify)              /// Result after wait is finished              @property int result() const              out (result) { assert(result == SQLITE_OK || result == SQLITE_LOCKED); } -            body { return res; } +            do { return res; }          }      }      else @@ -1238,7 +1238,7 @@ version (_UnlockNotify)              /// Constructor              this(Duration max = 1000.msecs)              in { assert(max > Duration.zero); } -            body +            do              {                  maxDuration = max;              } @@ -1271,7 +1271,7 @@ version (_UnlockNotify)              /// Result after wait is finished              @property int result() const              out (result) { assert(result == SQLITE_OK || result == SQLITE_LOCKED); } -            body +            do              {                  return res;              } diff --git a/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d b/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d index 14fe855..8cf6a38 100644 --- a/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d +++ b/sundry/spine_search_cgi/src/ext_depends_cgi/d2sqlite3/source/d2sqlite3/statement.d @@ -162,7 +162,7 @@ public:      {          assert(index > 0 && index <= p.paramCount, "parameter index out of range");      } -    body +    do      {          assert(p.handle); @@ -239,7 +239,7 @@ public:      {          assert(name.length);      } -    body +    do      {          assert(p.handle);          auto index = sqlite3_bind_parameter_index(p.handle, name.toStringz); @@ -255,7 +255,7 @@ public:      {          assert(Args.length == this.parameterCount, "parameter count mismatch");      } -    body +    do      {          foreach (index, _; Args)              bind(index + 1, args[index]); @@ -342,7 +342,7 @@ public:          static if (__traits(compiles, obj.length))              assert(obj.length == this.parameterCount, "parameter count mismatch");      } -    body +    do      {          static if (__traits(compiles, { foreach (string k, ref v; obj) {} }))          { @@ -377,7 +377,7 @@ public:      {          assert(index > 0 && index <= p.paramCount, "parameter index out of range");      } -    body +    do      {          assert(p.handle);          return sqlite3_bind_parameter_name(p.handle, index).to!string; @@ -394,7 +394,7 @@ public:      {          assert(name.length);      } -    body +    do      {          assert(p.handle);          return sqlite3_bind_parameter_index(p.handle, name.toStringz); | 
