From 83c2ad80ca8c6087b034155e2a767c4f72a6df3f Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 18 Sep 2019 22:12:54 +0200 Subject: doc: re-format --- doc/quick-start.xml | 144 +++++++++++++--------------------------------------- 1 file changed, 36 insertions(+), 108 deletions(-) (limited to 'doc/quick-start.xml') diff --git a/doc/quick-start.xml b/doc/quick-start.xml index 39e3e7396bd..80514cba490 100644 --- a/doc/quick-start.xml +++ b/doc/quick-start.xml @@ -15,120 +15,75 @@ - Find a good place in the Nixpkgs tree to add the Nix expression for your - package. For instance, a library package typically goes into - pkgs/development/libraries/pkgname, - while a web browser goes into - pkgs/applications/networking/browsers/pkgname. - See for some hints on the tree - organisation. Create a directory for your package, e.g. + Find a good place in the Nixpkgs tree to add the Nix expression for your package. For instance, a library package typically goes into pkgs/development/libraries/pkgname, while a web browser goes into pkgs/applications/networking/browsers/pkgname. See for some hints on the tree organisation. Create a directory for your package, e.g. $ mkdir pkgs/development/libraries/libfoo - In the package directory, create a Nix expression — a piece of code that - describes how to build the package. In this case, it should be a - function that is called with the package dependencies - as arguments, and returns a build of the package in the Nix store. The - expression should usually be called default.nix. + In the package directory, create a Nix expression — a piece of code that describes how to build the package. In this case, it should be a function that is called with the package dependencies as arguments, and returns a build of the package in the Nix store. The expression should usually be called default.nix. $ emacs pkgs/development/libraries/libfoo/default.nix $ git add pkgs/development/libraries/libfoo/default.nix - You can have a look at the existing Nix expressions under - pkgs/ to see how it’s done. Here are some good - ones: + You can have a look at the existing Nix expressions under pkgs/ to see how it’s done. Here are some good ones: - GNU Hello: - pkgs/applications/misc/hello/default.nix. - Trivial package, which specifies some meta - attributes which is good practice. + GNU Hello: pkgs/applications/misc/hello/default.nix. Trivial package, which specifies some meta attributes which is good practice. - GNU cpio: - pkgs/tools/archivers/cpio/default.nix. - Also a simple package. The generic builder in stdenv - does everything for you. It has no dependencies beyond - stdenv. + GNU cpio: pkgs/tools/archivers/cpio/default.nix. Also a simple package. The generic builder in stdenv does everything for you. It has no dependencies beyond stdenv. - GNU Multiple Precision arithmetic library (GMP): - pkgs/development/libraries/gmp/5.1.x.nix. - Also done by the generic builder, but has a dependency on - m4. + GNU Multiple Precision arithmetic library (GMP): pkgs/development/libraries/gmp/5.1.x.nix. Also done by the generic builder, but has a dependency on m4. - Pan, a GTK-based newsreader: - pkgs/applications/networking/newsreaders/pan/default.nix. - Has an optional dependency on gtkspell, which is - only built if spellCheck is true. + Pan, a GTK-based newsreader: pkgs/applications/networking/newsreaders/pan/default.nix. Has an optional dependency on gtkspell, which is only built if spellCheck is true. - Apache HTTPD: - pkgs/servers/http/apache-httpd/2.4.nix. - A bunch of optional features, variable substitutions in the configure - flags, a post-install hook, and miscellaneous hackery. + Apache HTTPD: pkgs/servers/http/apache-httpd/2.4.nix. A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery. - Thunderbird: - pkgs/applications/networking/mailreaders/thunderbird/default.nix. - Lots of dependencies. + Thunderbird: pkgs/applications/networking/mailreaders/thunderbird/default.nix. Lots of dependencies. - JDiskReport, a Java utility: - pkgs/tools/misc/jdiskreport/default.nix - (and the - builder). - Nixpkgs doesn’t have a decent stdenv for Java yet - so this is pretty ad-hoc. + JDiskReport, a Java utility: pkgs/tools/misc/jdiskreport/default.nix (and the builder). Nixpkgs doesn’t have a decent stdenv for Java yet so this is pretty ad-hoc. - XML::Simple, a Perl module: - pkgs/top-level/perl-packages.nix - (search for the XMLSimple attribute). Most Perl - modules are so simple to build that they are defined directly in - perl-packages.nix; no need to make a separate file - for them. + XML::Simple, a Perl module: pkgs/top-level/perl-packages.nix (search for the XMLSimple attribute). Most Perl modules are so simple to build that they are defined directly in perl-packages.nix; no need to make a separate file for them. - Adobe Reader: - pkgs/applications/misc/adobe-reader/default.nix. - Shows how binary-only packages can be supported. In particular the - builder - uses patchelf to set the RUNPATH and ELF interpreter - of the executables so that the right libraries are found at runtime. + Adobe Reader: pkgs/applications/misc/adobe-reader/default.nix. Shows how binary-only packages can be supported. In particular the builder uses patchelf to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime. @@ -138,67 +93,45 @@ - All meta attributes are - optional, but it’s still a good idea to provide at least the - description, homepage and - meta attributes are optional, but it’s still a good idea to provide at least the description, homepage and license. - You can use nix-prefetch-url - url to get the SHA-256 hash of source - distributions. There are similar commands as - nix-prefetch-git and - nix-prefetch-hg available in - nix-prefetch-scripts package. + You can use nix-prefetch-url url to get the SHA-256 hash of source distributions. There are similar commands as nix-prefetch-git and nix-prefetch-hg available in nix-prefetch-scripts package. - A list of schemes for mirror:// URLs can be found in - mirror:// URLs can be found in pkgs/build-support/fetchurl/mirrors.nix. - The exact syntax and semantics of the Nix expression language, including - the built-in function, are described in the Nix manual in the - chapter - on writing Nix expressions. + The exact syntax and semantics of the Nix expression language, including the built-in function, are described in the Nix manual in the chapter on writing Nix expressions. - Add a call to the function defined in the previous step to - pkgs/top-level/all-packages.nix - with some descriptive name for the variable, e.g. - libfoo. + Add a call to the function defined in the previous step to pkgs/top-level/all-packages.nix with some descriptive name for the variable, e.g. libfoo. $ emacs pkgs/top-level/all-packages.nix - The attributes in that file are sorted by category (like “Development / - Libraries”) that more-or-less correspond to the directory structure of - Nixpkgs, and then by attribute name. + The attributes in that file are sorted by category (like “Development / Libraries”) that more-or-less correspond to the directory structure of Nixpkgs, and then by attribute name. - To test whether the package builds, run the following command from the - root of the nixpkgs source tree: + To test whether the package builds, run the following command from the root of the nixpkgs source tree: $ nix-build -A libfoo - where libfoo should be the variable name defined in the - previous step. You may want to add the flag to keep - the temporary build directory in case something fails. If the build - succeeds, a symlink ./result to the package in the - Nix store is created. + where libfoo should be the variable name defined in the previous step. You may want to add the flag to keep the temporary build directory in case something fails. If the build succeeds, a symlink ./result to the package in the Nix store is created. @@ -210,14 +143,9 @@ - Optionally commit the new package and open a pull request - to - nixpkgs, or use - - the Patches category on Discourse for sending a patch without a - GitHub account. + Optionally commit the new package and open a pull request to nixpkgs, or use the Patches category on Discourse for sending a patch without a GitHub account. -- cgit 1.4.1