summaryrefslogtreecommitdiff
path: root/COPLAND.org
diff options
context:
space:
mode:
authorcashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
committercashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
commit4f49b16079b27d7ce633619e4cddfdf2bffbc952 (patch)
treec296c1e7f3c3e2f6859c6d3a1b1b208779b89679 /COPLAND.org
downloadrelic-master.tar.gz
initial commitHEADmaster
Diffstat (limited to 'COPLAND.org')
-rw-r--r--COPLAND.org141
1 files changed, 141 insertions, 0 deletions
diff --git a/COPLAND.org b/COPLAND.org
new file mode 100644
index 0000000..c6b1180
--- /dev/null
+++ b/COPLAND.org
@@ -0,0 +1,141 @@
+#+title: Copland Fossil
+
+Copland is a Fossil SCM fork with a compact built-in skin and native, safe
+Org rendering for repository documentation and wiki pages.
+
+* Fork layout
+
+This directory is a checkout of the official Fossil repository. The fork is
+developed on the =copland= branch from upstream commit =7a40eb9748=. The local
+repository database is intentionally kept inside the ignored workspace path
+=.repository/copland.fossil=; no project repository is stored elsewhere in the
+user's home directory.
+
+The official remote is retained as the named remote =upstream= while the
+default remote is disabled. To inspect the configuration:
+
+#+begin_src sh
+fossil status
+fossil remote list
+#+end_src
+
+Upstream updates are pulled explicitly and merged into =copland= only after
+review. No upstream submission or publishing remote is configured.
+
+* Development shell and build
+
+#+begin_src sh
+nix-shell
+make fossil
+#+end_src
+
+The npins-backed shell provides Fossil's C dependencies, Tcl, OpenSSL, zlib,
+Node.js, and Playwright browsers. It prepends =$PWD/.build/fossil= to =PATH=
+and sets =FOSSIL=fossil=. It does not overwrite an installed system binary:
+inside the shell =command -v fossil= resolves to the local build after
+=make fossil=; outside the shell the system selection is unchanged.
+
+The binary is built directly from the current checkout as
+=.build/fossil/fossil=. There is no downloaded source tarball and no patch
+application step.
+
+* Copland skin
+
+Copland lives in =skins/copland/= and is compiled into the binary. It is the
+fallback skin for repositories without an explicit skin configuration.
+Repository-specific custom skins and explicit =--skin= arguments still win,
+and Fossil's original skin remains available as =--skin default=.
+
+The editable SCSS, standalone skin export, demo scripts, and browser tests are
+under =tools/copland/=. Rebuild the generated CSS and export with:
+
+#+begin_src sh
+make build
+#+end_src
+
+Start the local repository-list preview with:
+
+#+begin_src sh
+make start
+#+end_src
+
+The migrated Nix documentation is available at
+=http://127.0.0.1:8080/nix/wiki=. The preview exposes the local Copland
+repository under the =nix= URL slug and always uses the built-in Copland skin.
+
+* Nix packages
+
+All external Nix inputs come from =npins/=. Build the Copland Fossil fork,
+including its built-in default skin, with:
+
+#+begin_src sh
+nix-build -A packages.default
+#+end_src
+
+The resulting binary is =result/bin/fossil=. A standalone theme package is
+available separately:
+
+#+begin_src sh
+nix-build -A packages.theme
+#+end_src
+
+It installs the individual skin files and the combined Fossil skin
+configuration below =share/fossil/skins/copland/=. The development shell reuses
+the fork package's native and linked build dependencies through =inputsFrom=.
+
+For a single, self-contained Linux binary that can be copied to another
+machine without a Nix installation or Nix store dependencies, build the static
+package:
+
+#+begin_src sh
+nix-build -A packages.fossil-static -o result-static
+cp result-static/bin/fossil ./fossil
+#+end_src
+
+The target machine must use the same CPU architecture as the build machine.
+The Copland files are embedded in this executable and Copland is selected for
+repositories which do not explicitly configure another skin. Existing custom
+skins, =default-skin= settings, and explicit =--skin= options remain respected.
+
+* Native Org support
+
+=text/x-org= is supported for =README.org=, =/doc=, =/file=, document search,
+and Fossil wiki pages. New wiki pages use Org by default; existing pages keep
+their stored Fossil-Wiki, Markdown, Org, or plain-text MIME type.
+
+The wiki page name is its visible and searchable title. A =#+TITLE= directive
+inside an Org wiki page is recognized but not rendered as a duplicate heading.
+Metadata, linked =toc:N= tables of contents, headings, paragraphs, nested lists,
+tables, source/example blocks, inline emphasis, and safe links are supported.
+
+Wiki and repository links are explicit:
+
+#+begin_example
+[[wiki:Deployment Guide][Deployment]]
+[[wiki:Deployment Guide#Install][Installation]]
+[[file:docs/deployment.org][Versioned repository document]]
+[[*Local heading][This page's section]]
+#+end_example
+
+In a wiki page, =file:= paths are rooted at =/doc/tip/= and reject absolute or
+parent-traversal paths. In repository documents they remain relative to the
+current document. HTTP(S) links are allowed. JavaScript schemes, raw HTML,
+Babel, dynamic blocks, and external runtimes are never executed.
+
+Org is deliberately not offered for technotes, forum posts, tickets, or report
+fields in this phase.
+
+* Tests
+
+#+begin_src sh
+make test
+make test-upstream
+#+end_src
+
+=make test= runs Org golden/security checks and Copland HTTP, accessibility,
+desktop, mobile, light, and dark browser tests. =make test-upstream= runs the
+complete Fossil Tcl suite, including the added Org wiki cases.
+
+The imported =/home/cashmere/nix= repository and its documentation are not
+modified by this fork work. Moving those documents into independently
+versioned Org wiki pages is a separate, explicitly reviewed migration.