diff options
Diffstat (limited to 'org/config_nix.org')
-rw-r--r-- | org/config_nix.org | 314 |
1 files changed, 80 insertions, 234 deletions
diff --git a/org/config_nix.org b/org/config_nix.org index ca7bfc12..33014ad3 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -1,10 +1,10 @@ -*- mode: org -*- #+TITLE: configuration nix -#+DESCRIPTION: makefile for spine +#+DESCRIPTION: configuration nix #+FILETAGS: :sisu:build:tools: #+AUTHOR: Ralph Amissah #+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT: Copyright (C) 2015 - 2023 Ralph Amissah +#+COPYRIGHT: Copyright (C) 2015 - 2025 Ralph Amissah #+LANGUAGE: en #+STARTUP: content hideblocks hidestars noindent entitiespretty #+PROPERTY: header-args :exports code @@ -15,144 +15,26 @@ #+PROPERTY: header-args+ :mkdirp yes #+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t -* nix :nix: - -#+NAME: nixpkgs_local -#+BEGIN_SRC sh -/srv/nix/nixpkgs -#+END_SRC - -- default.nix -- shell.nix - -** envrc :envrc: -*** .envrc - -- https://github.com/nix-community/nix-direnv - - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" - -#+HEADER: :tangle ../.envrc -#+BEGIN_SRC sh -if [ -f .envrc-local ]; then - source_env_if_exists .envrc-local || source .envrc-local -fi -if [ -f .envrc-nix ]; then - source_env_if_exists .envrc-nix || source .envrc-nix -fi -#+END_SRC - -*** .envrc-nix - -#+HEADER: :tangle ../.envrc-nix -#+BEGIN_SRC sh -NIX_ENFORCE_PURITY=1 -# - https://github.com/nix-community/nix-direnv -#NixDirEnvSHA="sha256-0000000000000000000000000000000000000000000=" -#direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc -NixDirEnvVersion="2.4.0" -NixDirEnvSHA="sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" -if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}" -fi -watch_file flake.lock -watch_file flake.nix -watch_file shell.nix -watch_file makefile -watch_file .envrc -watch_file .envrc-local -watch_file .envrc-nix -nix_direnv_watch_file flake.nix -nix_direnv_watch_file shell.nix -nix_direnv_watch_file .envrc -nix_direnv_watch_file .envrc-local -nix_direnv_watch_file .envrc-nix -#nix flake update -#nix flake check -echo "" -PATH_add result/bin -nix flake show -#use flake . -#+END_SRC - -*** .envrc-local CHECK MODIFY - -- bespoke modify appropriately and generate if needed - -#+HEADER: :tangle ../.envrc-local_ -#+HEADER: :noweb yes -#+BEGIN_SRC sh -export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos -#export NIX_PATH=nixpkgs=/nixpkgs-ra/nixpkgs -## reload when these files change -use flake -watch_file flake.nix -#eval "$(nix print-dev-env)" -export sisuVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') -#export sisuBIN=bin -export sisuSRC=~/grotto/repo/git.repo/projects/project-sisu/sisu -export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/susu-markup/sisu-markup-samples/data/samples/current -export sisuOUT=/var/www -export sisuOUTver=/tmp/sisu/$sisuVER/www -export RUBYLIB+=`pwd`/lib -#+END_SRC - -#+BEGIN_SRC sh - export Date=`date "+%Y%m%d"` - export sisuver=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') - ### set local values in .envrc-local (or modify here if you must) - # export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu - # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/doc-reform-markup/sisu-markup-samples - # export sisuSRC=~/grotto/repo/git.repo/projects/project-sisu/sisu - # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/susu-markup/sisu-markup-samples/data/samples/current - # export sisuOUT=/srv/www/sisu - # export sisuOUTver=/srv/www/sisu/$sisuVER/www - # export sisu=/srv/www/sisu - # export sisu=/var/www/sqlite - # export sisu=/srv/www/sisu/sqlite - export sisu=$sisuPROJ/src - export sisu=$sisuPROJ/result/lib - export sisu=$sisuDOC/markup/pod - export sisu=$sisuOUT/$sisuVER - export sisu='http://localhost/sisu_search' - # export sisuSearchActionRemote='https://sisudoc.org/sisu_search' - export sisuCGIform='sisu_search' - export sisuSQLdb='sisusearch.db' - export PROG_VER_GIT="`git describe --long --tags | sed -e 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'`" - #export PROG_VER_DECLARED="`cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`" - export sisuNixHelp="cat ./.env/nix-commands" - export sisuTest="nix shell .#default --print-build-logs --command sisu --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuHtml="sisu --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"sisu.search.db\" --cgi-sqlite-search-filename=\"sisu_search\" --sqlite-db-path=\"\$sisuDBpath\" --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuEpub="sisu --very-verbose --epub --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuLatex="sisu --very-verbose --latex --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuPdf="sisu --very-verbose --pdf --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuSqliteCreateDB="sisu --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\"" - export sisuSqlite="sisu --very-verbose --sqlite-discrete --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*" - #export sisuSqlite="sisu --very-verbose --sqlite-update --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*" -#+END_SRC - -** flake :flake: -*** flake -**** flake.nix +* sisu +** flake.nix :flake: #+HEADER: :tangle ../flake.nix #+HEADER: :noweb yes #+BEGIN_SRC nix { description = "sisu parser & document generator"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs"; "github:NixOS/nixpkgs/nixpkgs-unstable"; "nixpkgs/nixos-unstable"; "nixpkgs/nixos-21.11"; - inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.nixpkgs.url = "<<nixpkgs_url>>"; outputs = { self, nixpkgs, - flake-utils, } @ inputs: let pname = "sisu"; - version = "<<sisu_version_set>>"; + version = "<<sisu_project_version>>"; shell = ./shell.nix; # ./default.nix; - devEnv = ./shell.nix; # ./.envrc; # ./shell.nix; # ./default.nix; - supportedSystems = ["x86_64-linux"]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + devEnv = ./.envrc; # ./.envrc; # ./shell.nix; # ./default.nix; + supportedSystems = [ "x86_64-linux" ]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; - nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); # nixpkgs instantiated for supported system types + nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); # nixpkgs instantiated for supported system types checkPhase = '' runHook preCheck runHook postCheck @@ -245,6 +127,7 @@ export RUBYLIB+=`pwd`/lib sigil calibre #(suite includes: ebook-viewer) foliate + validatePkgConfig jq #git ]; @@ -261,6 +144,7 @@ export RUBYLIB+=`pwd`/lib zip unzip xz + validatePkgConfig jq #git ]; @@ -280,10 +164,11 @@ export RUBYLIB+=`pwd`/lib source-sans-pro source-serif-pro source-code-pro - texlive.combined.scheme-full + texliveFull # texliveTeTeX noto-fonts noto-fonts-cjk-sans takao + validatePkgConfig jq #git ]; @@ -300,6 +185,7 @@ export RUBYLIB+=`pwd`/lib zip unzip xz + validatePkgConfig jq #git ]; @@ -314,24 +200,26 @@ export RUBYLIB+=`pwd`/lib sqlite graphicsmagick perl538Packages.Po4a + validatePkgConfig jq #git ]; inherit shellHook; }; - #default = import ./shell.nix {inherit pkgs;}; - }); + #default = import ./shell.nix { inherit pkgs; }; + }); }; } #+END_SRC -** shell.nix TODO +** shell.nix :shell: +*** tangle #+HEADER: :tangle ../shell.nix -#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --impure\n#!nix-shell -i bash" #+HEADER: :tangle-mode (identity #o755) +#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --impure\n#!nix-shell -i bash" #+BEGIN_SRC nix -{pkgs ? import <nixpkgs> {}}: +{ pkgs ? import <nixpkgs> {} }: with pkgs; mkShell { buildInputs = [ @@ -344,112 +232,83 @@ with pkgs; ''; } #+END_SRC -{ pkgs ? import <nixpkgs> {} }: -with pkgs; -mkShell { - buildInputs = [ - <<ruby_current>> - sqlite - graphicsmagick - unzip - xz - zip - openssl - #texlive-combined-full - nixFlakes - validatePkgConfig - nix-output-monitor - nix-tree - jq - git - #starship - ]; - shellHook = '' - ''; -} -#+END_SRC -** packages.nix -*** default +** shared parts +*** nixpkgs url -#+HEADER: :NO-tangle ../packages.nix +#+NAME: nixpkgs_url #+BEGIN_SRC nix -{ pkgs ? import <nixpkgs> {} }: -with pkgs; [ - <<ruby_current>> - <<packages_project_relevant>> - <<packages_build>> -] +github:NixOS/nixpkgs/nixpkgs-unstable #+END_SRC -*** ruby 3.2 +*** ruby versions +**** ruby package selection +***** ruby next -#+HEADER: :tangle-NO ../nix/pkglst/packages_ruby_3_2.nix +#+NAME: ruby_next #+BEGIN_SRC nix -{ pkgs ? import <nixpkgs> {} }: -with pkgs; [ - <<ruby_version_3_2>> - <<packages_project_relevant>> - <<packages_build>> -] +ruby<<ruby_version_next>> +rubyPackages<<ruby_version_next>>.rake +rubyPackages<<ruby_version_next>>.sqlite3 +rubyPackages<<ruby_version_next>>.thor #+END_SRC -*** ruby 3.1 +***** ruby current -#+HEADER: :tangle-NO ../nix/pkglst/packages_ruby_3_1.nix +#+NAME: ruby_current #+BEGIN_SRC nix -{ pkgs ? import <nixpkgs> {} }: -with pkgs; [ - <<ruby_version_3_1>> - <<packages_project_relevant>> - <<packages_build>> -] +ruby<<ruby_version_current>> +rubyPackages<<ruby_version_current>>.rake +rubyPackages<<ruby_version_current>>.sqlite3 +rubyPackages<<ruby_version_current>>.thor #+END_SRC -*** ruby 3.0 +***** ruby legacy -#+HEADER: :tangle-NO ../nix/pkglst/packages_ruby_3_0.nix +#+NAME: ruby_legacy #+BEGIN_SRC nix -{ pkgs ? import <nixpkgs> {} }: -with pkgs; [ - <<ruby_version_3_0>> - <<packages_project_relevant>> - <<packages_build>> -] +ruby<<ruby_version_legacy>> +rubyPackages<<ruby_version_legacy>>.rake +rubyPackages<<ruby_version_legacy>>.sqlite3 +rubyPackages<<ruby_version_legacy>>.thor #+END_SRC -*** ruby legacy +**** SET ruby nix package versions (current, next) +***** SET ruby version next -#+NAME: ruby_legacy +#+NAME: ruby_version_next #+BEGIN_SRC nix -<<ruby_version_3_1>> +_3_4 #+END_SRC -*** ruby current +***** SET ruby version current -#+NAME: ruby_current +- default to current nix version, which is ruby 3.3 but not provided as a fixed lable/tag, so leave blank and will + follow nix current nix + +#+NAME: ruby_version_current #+BEGIN_SRC nix -<<ruby_version_3_3>> #+END_SRC -*** ruby next +***** SET ruby version legacy -#+NAME: ruby_next +#+NAME: ruby_version_legacy #+BEGIN_SRC nix -<<ruby_version_3_3>> +_3_2 #+END_SRC -*** ruby 3.3 - ruby_version_3_3 +**** ruby fixed versions +***** ruby 3.4 - ruby_version_3_4 -#+NAME: ruby_version_3_3 +#+NAME: ruby_version_3_4 #+BEGIN_SRC nix -ruby_3_3 -rubyPackages_3_3.rake -rubyPackages_3_3.sqlite3 -rubyPackages_3_3.thor +ruby_3_4 +rubyPackages_3_4.rake +rubyPackages_3_4.sqlite3 +rubyPackages_3_4.thor #+END_SRC -*** ruby 3.2 - ruby_version_3_2 +***** ruby 3.2 - ruby_version_3_2 #+NAME: ruby_version_3_2 #+BEGIN_SRC nix @@ -459,27 +318,8 @@ rubyPackages_3_2.sqlite3 rubyPackages_3_2.thor #+END_SRC -*** ruby 3.1 - ruby_version_3_1 - -#+NAME: ruby_version_3_1 -#+BEGIN_SRC nix -ruby_3_1 -rubyPackages_3_1.rake -rubyPackages_3_1.sqlite3 -rubyPackages_3_1.thor -#+END_SRC - -*** ruby 3.0 - ruby_version_3_0 - -#+NAME: ruby_version_3_0 -#+BEGIN_SRC nix -ruby_3_0 -rubyPackages_3_0.rake -rubyPackages_3_0.sqlite3 -rubyPackages_3_0.thor -#+END_SRC - -*** nix related packages +*** packages.nix +**** nix related packages #+NAME: nix_packages #+BEGIN_SRC nix @@ -488,7 +328,7 @@ bundler bundix #+END_SRC -*** project relevant packages +**** project relevant packages #+NAME: packages_project_relevant #+BEGIN_SRC nix @@ -498,10 +338,10 @@ unzip xz zip openssl -#texlive-combined-full +#texliveFull # texliveTeTeX #+END_SRC -*** project misc build packages +**** project misc build packages #+NAME: packages_build #+BEGIN_SRC nix @@ -518,10 +358,16 @@ git #starship #+END_SRC -** variables -** spine version SET VERSION :version:set:project: +*** sisu version SET VERSION :version:set:project: + +#+NAME: sisu_project_version +#+BEGIN_SRC emacs-lisp +<<./sisu_version_info_and_doc_header_including_copyright_and_license.org:sisu_project_version()>> +#+END_SRC -#+NAME: sisu_version_set +* nix :nix: + +#+NAME: nixpkgs_local #+BEGIN_SRC sh -7.3.1 +/srv/nix/nixpkgs #+END_SRC |