Change:
This issue tracks the conversion of from Docbook to CommonMark per . If you intend to work on this conversion, please comment below! here that you intend to work on it. (Please also post if you stop working on it.) a new branch of nixpkgs master. : change to . to . the contents from Docbook to . Follow . Use existing sections for inspiration. from the folder to build the manual. the manual on your computer at after running from folder: it looks good, submit a PR and reference this issue.
Done!

Discussion:
<xi:include href="locales.xml" /> <xi:include href="nginx.xml" /> <xi:include href="opengl.section.xml" /> <del> <xi:include href="shell-helpers.xml" /> </del> <ins> <xi:include href="shell-helpers.section.xml" /> </ins> <xi:include href="steam.xml" /> <xi:include href="cataclysm-dda.section.xml" /> <xi:include href="urxvt.xml" />

<ins> # Interactive shell helpers {#sec-shell-helpers} Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard `share` directory location. This is why a bunch `PACKAGE-share` scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: - `fzf` : `fzf-share` E.g. `fzf` can then used in the `.bashrc` like this: ```bash source "$(fzf-share)/completion.bash" source "$(fzf-share)/key-bindings.bash" ``` </ins>

<del> <section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-shell-helpers"> <title>Interactive shell helpers</title> <para> Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard share directory location. This is why a bunch <command>PACKAGE-share</command> scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: <itemizedlist> <listitem> <para> <literal>fzf</literal>: <command>fzf-share</command> </para> </listitem> </itemizedlist> E.g. <literal>fzf</literal> can then used in the .bashrc like this: <screen> source "$(fzf-share)/completion.bash" source "$(fzf-share)/key-bindings.bash" </screen> </para> </section> </del>

<xi:include href="lua.section.xml" /> <xi:include href="maven.section.xml" /> <xi:include href="node.section.xml" /> <del> <xi:include href="ocaml.xml" /> </del> <ins> <xi:include href="ocaml.section.xml" /> </ins> <xi:include href="perl.xml" /> <xi:include href="php.section.xml" /> <xi:include href="python.section.xml" />

<ins> # OCaml {#sec-language-ocaml} OCaml libraries should be installed in `$(out)/lib/ocaml/${ocaml.version}/site-lib/`. Such directories are automatically added to the `$OCAMLPATH` environment variable when building another package that depends on them or when opening a `nix-shell`. Given that most of the OCaml ecosystem is now built with dune, nixpkgs includes a convenience build support function called `buildDunePackage` that will build an OCaml package using dune, OCaml and findlib and any additional dependencies provided as `buildInputs` or `propagatedBuildInputs`. Here is a simple package example. It defines an (optional) attribute `minimumOCamlVersion` that will be used to throw a descriptive evaluation error if building with an older OCaml is attempted. It uses the `fetchFromGitHub` fetcher to get its source. It sets the `doCheck` (optional) attribute to `true` which means that tests will be run with `dune runtest -p angstrom` after the build (`dune build -p angstrom`) is complete. It uses `alcotest` as a build input (because it is needed to run the tests) and `bigstringaf` and `result` as propagated build inputs (thus they will also be available to libraries depending on this library). The library will be installed using the `angstrom.install` file that dune generates. ```nix { stdenv , fetchFromGitHub , buildDunePackage , alcotest , result , bigstringaf }: buildDunePackage rec { pname = "angstrom"; version = "0.10.0"; minimumOCamlVersion = "4.03"; src = fetchFromGitHub { owner  = "inhabitedtype"; repo   = pname; rev    = version; sha256 = "0lh6024yf9ds0nh9i93r9m6p5psi8nvrqxl5x7jwl13zb0r9xfpw"; }; buildInputs = [ alcotest ]; propagatedBuildInputs = [ bigstringaf result ]; doCheck = true; meta = { homepage = "https://github.com/inhabitedtype/angstrom"; description = "OCaml parser combinators built for speed and memory efficiency"; license = stdenv.lib.licenses.bsd3; maintainers = with stdenv.lib.maintainers; [ sternenseemann ]; }; } ``` Here is a second example, this time using a source archive generated with `dune-release`. It is a good idea to use this archive when it is available as it will usually contain substituted variables such as a `%%VERSION%%` field. This library does not depend on any other OCaml library and no tests are run after building it. ```nix { stdenv , fetchurl , buildDunePackage }: buildDunePackage rec { pname = "wtf8"; version = "1.0.1"; minimumOCamlVersion = "4.01"; src = fetchurl { url = "https://github.com/flowtype/ocaml-${pname}/releases/download/v${version}/${pname}-${version}.tbz"; sha256 = "1msg3vycd3k8qqj61sc23qks541cxpb97vrnrvrhjnqxsqnh6ygq"; }; meta = with stdenv.lib; { homepage = "https://github.com/flowtype/ocaml-wtf8"; description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates."; license = licenses.mit; maintainers = [ maintainers.eqyiel ]; }; } ``` </ins>

<del> <section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-language-ocaml"> <title>OCaml</title> <para> OCaml libraries should be installed in <literal>$(out)/lib/ocaml/${ocaml.version}/site-lib/</literal>. Such directories are automatically added to the <literal>$OCAMLPATH</literal> environment variable when building another package that depends on them or when opening a <literal>nix-shell</literal>. </para> <para> Given that most of the OCaml ecosystem is now built with dune, nixpkgs includes a convenience build support function called <literal>buildDunePackage</literal> that will build an OCaml package using dune, OCaml and findlib and any additional dependencies provided as <literal>buildInputs</literal> or <literal>propagatedBuildInputs</literal>. </para> <para> Here is a simple package example. It defines an (optional) attribute <literal>minimumOCamlVersion</literal> that will be used to throw a descriptive evaluation error if building with an older OCaml is attempted. It uses the <literal>fetchFromGitHub</literal> fetcher to get its source. It sets the <literal>doCheck</literal> (optional) attribute to <literal>true</literal> which means that tests will be run with <literal>dune runtest -p angstrom</literal> after the build (<literal>dune build -p angstrom</literal>) is complete. It uses <literal>alcotest</literal> as a build input (because it is needed to run the tests) and <literal>bigstringaf</literal> and <literal>result</literal> as propagated build inputs (thus they will also be available to libraries depending on this library). The library will be installed using the <literal>angstrom.install</literal> file that dune generates. </para> <programlisting> { stdenv, fetchFromGitHub, buildDunePackage, alcotest, result, bigstringaf }: buildDunePackage rec { pname = "angstrom"; version = "0.10.0"; minimumOCamlVersion = "4.03"; src = fetchFromGitHub { owner  = "inhabitedtype"; repo   = pname; rev    = version; sha256 = "0lh6024yf9ds0nh9i93r9m6p5psi8nvrqxl5x7jwl13zb0r9xfpw"; }; buildInputs = [ alcotest ]; propagatedBuildInputs = [ bigstringaf result ]; doCheck = true; meta = { homepage = "https://github.com/inhabitedtype/angstrom"; description = "OCaml parser combinators built for speed and memory efficiency"; license = stdenv.lib.licenses.bsd3; maintainers = with stdenv.lib.maintainers; [ sternenseemann ]; }; } </programlisting> <para> Here is a second example, this time using a source archive generated with <literal>dune-release</literal>. It is a good idea to use this archive when it is available as it will usually contain substituted variables such as a <literal>%%VERSION%%</literal> field. This library does not depend on any other OCaml library and no tests are run after building it. </para> <programlisting> { stdenv, fetchurl, buildDunePackage }: buildDunePackage rec { pname = "wtf8"; version = "1.0.1"; minimumOCamlVersion = "4.01"; src = fetchurl { url = "https://github.com/flowtype/ocaml-${pname}/releases/download/v${version}/${pname}-${version}.tbz"; sha256 = "1msg3vycd3k8qqj61sc23qks541cxpb97vrnrvrhjnqxsqnh6ygq"; }; meta = with stdenv.lib; { homepage = "https://github.com/flowtype/ocaml-wtf8"; description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates."; license = licenses.mit; maintainers = [ maintainers.eqyiel ]; }; } </programlisting> </section> </del>