diff options
Diffstat (limited to 'org/config_nix.org')
-rw-r--r-- | org/config_nix.org | 257 |
1 files changed, 127 insertions, 130 deletions
diff --git a/org/config_nix.org b/org/config_nix.org index 200fe7f2..b7085e73 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,39 +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 - -** 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_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 @@ -115,7 +102,7 @@ ]; inherit shellHook; }; - dsh-epub = mkShell { + rsh-epub = mkShell { name = "sisu dev shell for epub output"; inherit shell; inherit devEnv; @@ -140,12 +127,13 @@ sigil calibre #(suite includes: ebook-viewer) foliate + validatePkgConfig jq #git ]; inherit shellHook; }; - dsh-html = mkShell { + rsh-html = mkShell { name = "sisu dev shell for html output"; inherit shell; inherit devEnv; @@ -156,12 +144,13 @@ zip unzip xz + validatePkgConfig jq #git ]; inherit shellHook; }; - dsh-latex-pdf = mkShell { + rsh-latex-pdf = mkShell { name = "sisu dev shell for latex & pdf output"; inherit shell; inherit devEnv; @@ -176,15 +165,62 @@ source-serif-pro source-code-pro texlive.combined.scheme-full + # texliveFull # texliveTeTeX noto-fonts noto-fonts-cjk-sans takao + validatePkgConfig jq #git ]; inherit shellHook; }; - dsh-sqlite = mkShell { + rsh-comprehensive-shell = mkShell { + name = "comprehensive sisu dev shell (for epub & latex & pdf output)"; + inherit shell; + inherit devEnv; + packages = [ + ruby + rubyPackages.rake + rubyPackages.sqlite3 + rubyPackages.thor + sqlite + graphicsmagick + zip + unzip + xz + openssl + libxml2 + html-tidy + xmlstarlet + epubcheck + ebook_tools + libxml2 + html-tidy + xmlstarlet + epubcheck + ebook_tools + epr + sigil + calibre #(suite includes: ebook-viewer) + foliate + validatePkgConfig + jq + 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 + ]; + inherit shellHook; + }; + rsh-sqlite = mkShell { name = "sisu dev shell for sqlite3 output"; inherit shell; inherit devEnv; @@ -195,12 +231,13 @@ zip unzip xz + validatePkgConfig jq #git ]; inherit shellHook; }; - dsh-i18n = mkShell { + rsh-i18n = mkShell { name = "sisu dev shell internationalization, po4a"; inherit shell; inherit devEnv; @@ -209,24 +246,26 @@ 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 = [ @@ -239,112 +278,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 @@ -354,27 +364,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 @@ -383,7 +374,7 @@ bundler bundix #+END_SRC -*** project relevant packages +**** project relevant packages #+NAME: packages_project_relevant #+BEGIN_SRC nix @@ -393,10 +384,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 @@ -413,10 +404,16 @@ git #starship #+END_SRC -** variables -** sisu 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 + +* nix :nix: + +#+NAME: nixpkgs_local +#+BEGIN_SRC sh +/srv/nix/nixpkgs +#+END_SRC |