[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
08/11: doc: Move sections under "GNU Distribution" one level higher.
From: |
guix-commits |
Subject: |
08/11: doc: Move sections under "GNU Distribution" one level higher. |
Date: |
Tue, 22 Jan 2019 17:05:11 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit b40de030d1b0c241b04e8a4a9ea3196111172254
Author: Ludovic Courtès <address@hidden>
Date: Mon Jan 21 11:16:39 2019 +0100
doc: Move sections under "GNU Distribution" one level higher.
* doc/guix.texi (Introduction): Add note about Guix System.
[Managing Software the Guix Way]: New section heading.
[GNU Distribution]: New subsection of "Introduction". Mention "Guix
System" rather than "GuixSD" and update the list of supported systems.
(GNU Distribution): Remove as a chapter.
(System Installation, System Configuration, Documentation)
(Installing Debugging Files, Security Updates, Package Modules)
(Packaging Guidelines, Bootstrapping, Porting): Turn these sections
into chapters.
---
doc/guix.texi | 395 +++++++++++++++++++++++++++-------------------------------
1 file changed, 187 insertions(+), 208 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index e70fed2..eb0c5fc 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -120,7 +120,15 @@ Project}.
* Package Management:: Package installation, upgrade, etc.
* Programming Interface:: Using Guix in Scheme.
* Utilities:: Package management commands.
-* GNU Distribution:: Software for your friendly GNU system.
+* System Installation:: Installing the whole operating system.
+* System Configuration:: Configuring the operating system.
+* Documentation:: Browsing software user manuals.
+* Installing Debugging Files:: Feeding the debugger.
+* Security Updates:: Deploying security fixes quickly.
+* Package Modules:: Packages from the programmer's viewpoint.
+* Packaging Guidelines:: Growing the distribution.
+* Bootstrapping:: GNU/Linux built from scratch.
+* Porting:: Targeting another platform or kernel.
* Contributing:: Your help needed!
* Acknowledgments:: Thanks!
@@ -210,18 +218,6 @@ Invoking @command{guix build}
* Additional Build Options:: Options specific to 'guix build'.
* Debugging Build Failures:: Real life packaging experience.
-GNU Distribution
-
-* System Installation:: Installing the whole operating system.
-* System Configuration:: Configuring the operating system.
-* Documentation:: Browsing software user manuals.
-* Installing Debugging Files:: Feeding the debugger.
-* Security Updates:: Deploying security fixes quickly.
-* Package Modules:: Packages from the programmer's viewpoint.
-* Packaging Guidelines:: Growing the distribution.
-* Bootstrapping:: GNU/Linux built from scratch.
-* Porting:: Targeting another platform or kernel.
-
System Installation
* Limitations:: What you can expect.
@@ -297,21 +293,6 @@ Packaging Guidelines
* Java Packages:: Coffee break.
* Fonts:: Fond of fonts.
-Contributing
-
-* Building from Git:: The latest and greatest.
-* Running Guix Before It Is Installed:: Hacker tricks.
-* The Perfect Setup:: The right tools.
-* Coding Style:: Hygiene of the contributor.
-* Submitting Patches:: Share your work.
-
-Coding Style
-
-* Programming Paradigm:: How to compose your elements.
-* Modules:: Where to store your code?
-* Data Types and Pattern Matching:: Implementing data structures.
-* Formatting Code:: Writing conventions.
-
@end detailmenu
@end menu
@@ -322,11 +303,22 @@ Coding Style
@cindex purpose
GNU address@hidden'' is pronounced like ``geeks'', or ``ɡiːks''
using the international phonetic alphabet (IPA).} is a package
-management tool for the GNU system. Guix makes it easy for unprivileged
-users to install, upgrade, or remove packages, to roll back to a
+management tool for and distribution of the GNU system.
+Guix makes it easy for unprivileged
+users to install, upgrade, or remove software packages, to roll back to a
previous package set, to build packages from source, and generally
assists with the creation and maintenance of software environments.
address@hidden Guix System
address@hidden GuixSD
+You can install address@hidden on top of an existing GNU/Linux system where it
+complements the available tools without interference (@pxref{Installation}),
+or you can use it as a standalone operating system distribution,
address@hidden@tie{}System} (@pxref{GNU Distribution}).
+
address@hidden Managing Software the Guix Way
address@hidden Managing Software the Guix Way
+
@cindex user interfaces
Guix provides a command-line package management interface
(@pxref{Invoking guix package}), a set of command-line utilities
@@ -348,17 +340,6 @@ is also @emph{customizable}: users can @emph{derive}
specialized package
definitions from existing ones, including from the command line
(@pxref{Package Transformation Options}).
address@hidden Guix System Distribution
address@hidden GuixSD
-You can install address@hidden on top of an existing GNU/Linux system
-where it complements the available tools without interference
-(@pxref{Installation}), or you can use it as part of the standalone
address@hidden System Distribution} or GuixSD (@pxref{GNU Distribution}).
-With address@hidden, you @emph{declare} all aspects of the operating
-system configuration and Guix takes care of instantiating the
-configuration in a transactional, reproducible, and stateless fashion
-(@pxref{System Configuration}).
-
@cindex functional package management
@cindex isolation
Under the hood, Guix implements the @dfn{functional package management}
@@ -389,6 +370,81 @@ for transactional package upgrade and rollback, per-user
installation, and
garbage collection of packages (@pxref{Features}).
address@hidden GNU Distribution
address@hidden GNU Distribution
+
address@hidden Guix System
address@hidden GuixSD
+Guix comes with a distribution of the GNU system consisting entirely of
+free address@hidden term ``free'' here refers to the
address@hidden://www.gnu.org/philosophy/free-sw.html,freedom provided to
+users of that software}.}. The
+distribution can be installed on its own (@pxref{System Installation}),
+but it is also possible to install Guix as a package manager on top of
+an installed GNU/Linux system (@pxref{Installation}). When we need to
+distinguish between the two, we refer to the standalone distribution as
address@hidden
+
+The distribution provides core GNU packages such as GNU libc, GCC, and
+Binutils, as well as many GNU and non-GNU applications. The complete
+list of available packages can be browsed
address@hidden://www.gnu.org/software/guix/packages,on-line} or by
+running @command{guix package} (@pxref{Invoking guix package}):
+
address@hidden
+guix package --list-available
address@hidden example
+
+Our goal is to provide a practical 100% free software distribution of
+Linux-based and other variants of GNU, with a focus on the promotion and
+tight integration of GNU components, and an emphasis on programs and
+tools that help users exert that freedom.
+
+Packages are currently available on the following platforms:
+
address@hidden @code
+
address@hidden x86_64-linux
+Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
+
address@hidden i686-linux
+Intel 32-bit architecture (IA32), Linux-Libre kernel;
+
address@hidden armhf-linux
+ARMv7-A architecture with hard float, Thumb-2 and NEON,
+using the EABI hard-float application binary interface (ABI),
+and Linux-Libre kernel.
+
address@hidden aarch64-linux
+little-endian 64-bit ARMv8-A processors, Linux-Libre kernel. This is
+currently in an experimental stage, with limited support.
address@hidden, for how to help!
+
address@hidden mips64el-linux
+little-endian 64-bit MIPS processors, specifically the Loongson series,
+n32 ABI, and Linux-Libre kernel.
+
address@hidden table
+
+With address@hidden, you @emph{declare} all aspects of the operating system
+configuration and Guix takes care of instantiating the configuration in a
+transactional, reproducible, and stateless fashion (@pxref{System
+Configuration}). Guix System uses the Linux-libre kernel, the Shepherd
+initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd
+Manual}), the well-known GNU utilities and tool chain, as well as the
+graphical environment or system services of your choice.
+
+Guix System is available on all the above platforms except
address@hidden
+
address@hidden
+For information on porting to other architectures or kernels,
address@hidden
+
+Building this distribution is a cooperative effort, and you are invited
+to join! @xref{Contributing}, for information about how you can help.
+
+
@c *********************************************************************
@node Installation
@chapter Installation
@@ -9034,86 +9090,9 @@ ClientPID: 19419
ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
@end example
address@hidden
*********************************************************************
address@hidden GNU Distribution
address@hidden GNU Distribution
-
address@hidden Guix System Distribution
address@hidden GuixSD
-Guix comes with a distribution of the GNU system consisting entirely of
-free address@hidden term ``free'' here refers to the
address@hidden://www.gnu.org/philosophy/free-sw.html,freedom provided to
-users of that software}.}. The
-distribution can be installed on its own (@pxref{System Installation}),
-but it is also possible to install Guix as a package manager on top of
-an installed GNU/Linux system (@pxref{Installation}). To distinguish
-between the two, we refer to the standalone distribution as the Guix
-System Distribution, or GuixSD.
-
-The distribution provides core GNU packages such as GNU libc, GCC, and
-Binutils, as well as many GNU and non-GNU applications. The complete
-list of available packages can be browsed
address@hidden://www.gnu.org/software/guix/packages,on-line} or by
-running @command{guix package} (@pxref{Invoking guix package}):
-
address@hidden
-guix package --list-available
address@hidden example
-
-Our goal is to provide a practical 100% free software distribution of
-Linux-based and other variants of GNU, with a focus on the promotion and
-tight integration of GNU components, and an emphasis on programs and
-tools that help users exert that freedom.
-
-Packages are currently available on the following platforms:
-
address@hidden @code
-
address@hidden x86_64-linux
-Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
-
address@hidden i686-linux
-Intel 32-bit architecture (IA32), Linux-Libre kernel;
-
address@hidden armhf-linux
-ARMv7-A architecture with hard float, Thumb-2 and NEON,
-using the EABI hard-float application binary interface (ABI),
-and Linux-Libre kernel.
-
address@hidden aarch64-linux
-little-endian 64-bit ARMv8-A processors, Linux-Libre kernel. This is
-currently in an experimental stage, with limited support.
address@hidden, for how to help!
-
address@hidden mips64el-linux
-little-endian 64-bit MIPS processors, specifically the Loongson series,
-n32 ABI, and Linux-Libre kernel.
-
address@hidden table
-
-GuixSD itself is currently only available on @code{i686} and @code{x86_64}.
-
address@hidden
-For information on porting to other architectures or kernels,
address@hidden
-
address@hidden
-* System Installation:: Installing the whole operating system.
-* System Configuration:: Configuring the operating system.
-* Documentation:: Browsing software user manuals.
-* Installing Debugging Files:: Feeding the debugger.
-* Security Updates:: Deploying security fixes quickly.
-* Package Modules:: Packages from the programmer's viewpoint.
-* Packaging Guidelines:: Growing the distribution.
-* Bootstrapping:: GNU/Linux built from scratch.
-* Porting:: Targeting another platform or kernel.
address@hidden menu
-
-Building this distribution is a cooperative effort, and you are invited
-to join! @xref{Contributing}, for information about how you can help.
@node System Installation
address@hidden System Installation
address@hidden System Installation
@cindex installing GuixSD
@cindex Guix System Distribution
@@ -9147,7 +9126,7 @@ available.
@end menu
@node Limitations
address@hidden Limitations
address@hidden Limitations
As of version @value{VERSION}, the Guix System Distribution (GuixSD) is
not production-ready. It may contain bugs and lack important
@@ -9191,7 +9170,7 @@ to report issues (and success stories!), and to join us
in improving it.
@node Hardware Considerations
address@hidden Hardware Considerations
address@hidden Hardware Considerations
@cindex hardware support on GuixSD
address@hidden focuses on respecting the user's computing freedom. It
@@ -9226,7 +9205,7 @@ about their support in GNU/Linux.
@node USB Stick and DVD Installation
address@hidden USB Stick and DVD Installation
address@hidden USB Stick and DVD Installation
An ISO-9660 installation image that can be written to a USB stick or
burnt to a DVD can be downloaded from
@@ -9265,7 +9244,7 @@ and rerun the @code{gpg --verify} command.
This image contains the tools necessary for an installation.
It is meant to be copied @emph{as is} to a large-enough USB stick or DVD.
address@hidden Copying to a USB Stick
address@hidden Copying to a USB Stick
To copy the image to a USB stick, follow these steps:
@@ -9290,7 +9269,7 @@ sync
Access to @file{/dev/sdX} usually requires root privileges.
@end enumerate
address@hidden Burning on a DVD
address@hidden Burning on a DVD
To copy the image to a DVD, follow these steps:
@@ -9314,7 +9293,7 @@ growisofs -dvd-compat -Z
/dev/address@hidden@var{system}.is
Access to @file{/dev/srX} usually requires root privileges.
@end enumerate
address@hidden Booting
address@hidden Booting
Once this is done, you should be able to reboot the system and boot from
the USB stick or DVD. The latter usually requires you to get in the
@@ -9325,7 +9304,7 @@ GuixSD in a virtual machine (VM).
@node Preparing for Installation
address@hidden Preparing for Installation
address@hidden Preparing for Installation
Once you have successfully booted your computer using the installation medium,
you should end up with the welcome page of the graphical installer. The
@@ -9354,7 +9333,7 @@ But it is also a full-blown GuixSD system, which means
that you can
install additional packages, should you need it, using @command{guix
package} (@pxref{Invoking guix package}).
address@hidden Keyboard Layout
address@hidden Keyboard Layout
@cindex keyboard layout
The installation image uses the US qwerty keyboard layout. If you want
@@ -9369,7 +9348,7 @@ See the files under
@file{/run/current-system/profile/share/keymaps} for
a list of available keyboard layouts. Run @command{man loadkeys} for
more information.
address@hidden Networking
address@hidden Networking
Run the following command to see what your network interfaces are called:
@@ -9462,7 +9441,7 @@ herd start ssh-daemon
Make sure to either set a password with @command{passwd}, or configure
OpenSSH public key authentication before logging in.
address@hidden Disk Partitioning
address@hidden Disk Partitioning
Unless this has already been done, the next step is to partition, and
then format the target partition(s).
@@ -9583,7 +9562,7 @@ file in its file system as described above, then the
encryption also
protects the swap file, just like any other file in that file system.
@node Proceeding with the Installation
address@hidden Proceeding with the Installation
address@hidden Proceeding with the Installation
With the target partitions ready and the target root mounted on
@file{/mnt}, we're ready to go. First, run:
@@ -9680,7 +9659,7 @@ Join us on @code{#guix} on the Freenode IRC network or on
good.
@node Installing GuixSD in a VM
address@hidden Installing GuixSD in a Virtual Machine
address@hidden Installing GuixSD in a Virtual Machine
@cindex virtual machine, GuixSD installation
@cindex virtual private server (VPS)
@@ -9734,7 +9713,7 @@ Once installation is complete, you can boot the system
that's on your
that.
@node Building the Installation Image
address@hidden Building the Installation Image
address@hidden Building the Installation Image
@cindex installation image
The installation image described above was built using the @command{guix
@@ -9748,7 +9727,7 @@ Have a look at @file{gnu/system/install.scm} in the
source tree,
and see also @ref{Invoking guix system} for more information
about the installation image.
address@hidden Building the Installation Image for ARM Boards
address@hidden Building the Installation Image for ARM Boards
Many ARM boards require a specific variant of the
@uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader.
@@ -9765,7 +9744,7 @@ guix system disk-image --system=armhf-linux -e '((@@ (gnu
system install) os-wit
board, a list of possible boards will be printed.
@node System Configuration
address@hidden System Configuration
address@hidden System Configuration
@cindex system configuration
The Guix System Distribution supports a consistent whole-system configuration
@@ -9808,7 +9787,7 @@ instance to support new system services.
@end menu
@node Using the Configuration System
address@hidden Using the Configuration System
address@hidden Using the Configuration System
The operating system is configured by providing an
@code{operating-system} declaration in a file that can then be passed to
@@ -9831,7 +9810,7 @@ Below we discuss the effect of some of the most important
fields
fields), and how to @dfn{instantiate} the operating system using
@command{guix system}.
address@hidden Bootloader
address@hidden Bootloader
@cindex legacy boot, on Intel machines
@cindex BIOS boot, on Intel machines
@@ -9852,7 +9831,7 @@ the @code{bootloader} field should contain something
along these lines:
@xref{Bootloader Configuration}, for more information on the available
configuration options.
address@hidden Globally-Visible Packages
address@hidden Globally-Visible Packages
@vindex %base-packages
The @code{packages} field lists packages that will be globally visible
@@ -9898,7 +9877,7 @@ version:
%base-packages)))
@end lisp
address@hidden System Services
address@hidden System Services
@cindex services
@vindex %base-services
@@ -9990,7 +9969,7 @@ following expression returns a list that contains all the
services in
%desktop-services)
@end example
address@hidden Instantiating the System
address@hidden Instantiating the System
Assuming the @code{operating-system} declaration
is stored in the @file{my-system-config.scm}
@@ -10023,7 +10002,7 @@ the latest (e.g., after invoking @command{guix system
roll-back}), since
the operation might overwrite a later generation (@pxref{Invoking guix
system}).
address@hidden The Programming Interface
address@hidden The Programming Interface
At the Scheme level, the bulk of an @code{operating-system} declaration
is instantiated with the following monadic procedure (@pxref{The Store
@@ -10044,7 +10023,7 @@ guts of GuixSD. Make sure to visit it!
@node operating-system Reference
address@hidden @code{operating-system} Reference
address@hidden @code{operating-system} Reference
This section summarizes all the options available in
@code{operating-system} declarations (@pxref{Using the Configuration
@@ -10198,7 +10177,7 @@ is that only @code{root} and members of the
@code{wheel} group may use
@end deftp
@node File Systems
address@hidden File Systems
address@hidden File Systems
The list of file systems to be mounted is specified in the
@code{file-systems} field of the operating system declaration
@@ -10363,7 +10342,7 @@ and unmount user-space FUSE file systems. This
requires the
@end defvr
@node Mapped Devices
address@hidden Mapped Devices
address@hidden Mapped Devices
@cindex device mapping
@cindex mapped devices
@@ -10484,7 +10463,7 @@ automatically later.
@node User Accounts
address@hidden User Accounts
address@hidden User Accounts
@cindex users
@cindex accounts
@@ -10619,7 +10598,7 @@ special-case and is automatically added whether or not
it is specified.
@end defvr
@node Locales
address@hidden Locales
address@hidden Locales
@cindex locale
A @dfn{locale} defines cultural conventions for a particular language
@@ -10707,7 +10686,7 @@ instance it has @code{uk_UA.utf8} but @emph{not}, say,
@code{uk_UA.UTF-8}.
@end defvr
address@hidden Locale Data Compatibility Considerations
address@hidden Locale Data Compatibility Considerations
@cindex incompatibility, of locale data
@code{operating-system} declarations provide a @code{locale-libcs} field
@@ -10759,7 +10738,7 @@ both libc 2.21 and the current version of libc in
@node Services
address@hidden Services
address@hidden Services
@cindex system services
An important part of preparing an @code{operating-system} declaration is
@@ -10837,7 +10816,7 @@ declaration.
@end menu
@node Base Services
address@hidden Base Services
address@hidden Base Services
The @code{(gnu services base)} module provides definitions for the basic
services that one expects from the system. The services exported by
@@ -11652,7 +11631,7 @@ commonly used for real-time audio systems.
@end deffn
@node Scheduled Job Execution
address@hidden Scheduled Job Execution
address@hidden Scheduled Job Execution
@cindex cron
@cindex mcron
@@ -11753,7 +11732,7 @@ specifications,, mcron, address@hidden).
@node Log Rotation
address@hidden Log Rotation
address@hidden Log Rotation
@cindex rottlog
@cindex log rotation
@@ -11855,7 +11834,7 @@ The list of syslog-controlled files to be rotated. By
default it is:
@end defvr
@node Networking Services
address@hidden Networking Services
address@hidden Networking Services
The @code{(gnu services networking)} module provides services to configure
the network interface.
@@ -12800,7 +12779,7 @@ Package object of the Open vSwitch.
@end deftp
@node X Window
address@hidden X Window
address@hidden X Window
@cindex X11
@cindex X Window System
@@ -13084,7 +13063,7 @@ makes the good ol' XlockMore usable.
@node Printing Services
address@hidden Printing Services
address@hidden Printing Services
@cindex printer support with CUPS
The @code{(gnu services cups)} module provides a Guix service definition
@@ -13925,7 +13904,7 @@ this:
@node Desktop Services
address@hidden Desktop Services
address@hidden Desktop Services
The @code{(gnu services desktop)} module provides services that are
usually useful in the context of a ``desktop'' setup---that is, on a
@@ -14233,7 +14212,7 @@ Users need to be in the @code{lp} group to access the
D-Bus service.
@end deffn
@node Sound Services
address@hidden Sound Services
address@hidden Sound Services
@cindex sound support
@cindex ALSA
@@ -14314,7 +14293,7 @@ details.
@node Database Services
address@hidden Database Services
address@hidden Database Services
@cindex database
@cindex SQL
@@ -14438,7 +14417,7 @@ Directory in which to store the database and related
files.
@end deftp
@node Mail Services
address@hidden Mail Services
address@hidden Mail Services
@cindex mail
@cindex email
@@ -15909,7 +15888,7 @@ the @code{postmaster} mail to @code{bob} (which
subsequently would
deliver mail to @code{bob@@example.com} and @code{bob@@example2.com}).
@node Messaging Services
address@hidden Messaging Services
address@hidden Messaging Services
@cindex messaging
@cindex jabber
@@ -16411,7 +16390,7 @@ and Error.
@end deftp
@node Telephony Services
address@hidden Telephony Services
address@hidden Telephony Services
@cindex Murmur (VoIP server)
@cindex VoIP server
@@ -16616,7 +16595,7 @@ If it is set your server will be linked by this host
name instead.
@node Monitoring Services
address@hidden Monitoring Services
address@hidden Monitoring Services
@subsubheading Tailon Service
@@ -17121,7 +17100,7 @@ Defaults to @samp{10051}.
@c %end of fragment
@node Kerberos Services
address@hidden Kerberos Services
address@hidden Kerberos Services
@cindex Kerberos
The @code{(gnu services kerberos)} module provides services relating to
@@ -17247,7 +17226,7 @@ Local accounts with lower values will silently fail to
authenticate.
@node Web Services
address@hidden Web Services
address@hidden Web Services
@cindex web
@cindex www
@@ -18048,7 +18027,7 @@ more information on X.509 certificates.
@end quotation
@node Certificate Services
address@hidden Certificate Services
address@hidden Certificate Services
@cindex Web
@cindex HTTP, HTTPS
@@ -18194,7 +18173,7 @@ For each @code{certificate-configuration}, the
certificate is saved to
@code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is
saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}.
@node DNS Services
address@hidden DNS Services
address@hidden DNS Services
@cindex DNS (domain name system)
@cindex domain name system (DNS)
@@ -18763,7 +18742,7 @@ Defaults to @samp{()}.
@node VPN Services
address@hidden VPN Services
address@hidden VPN Services
@cindex VPN (virtual private network)
@cindex virtual private network (VPN)
@@ -19121,7 +19100,7 @@ Defaults to @samp{#f}.
@node Network File System
address@hidden Network File System
address@hidden Network File System
@cindex NFS
The @code{(gnu services nfs)} module provides the following services,
@@ -19236,7 +19215,7 @@ If it is @code{#f} then the daemon will use the host's
fully qualified domain na
@end deftp
@node Continuous Integration
address@hidden Continuous Integration
address@hidden Continuous Integration
@cindex continuous integration
@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a
@@ -19353,7 +19332,7 @@ The Cuirass package to use.
@end deftp
@node Power Management Services
address@hidden Power Management Services
address@hidden Power Management Services
@cindex tlp
@cindex power management with TLP
@@ -19887,7 +19866,7 @@ Package object of thermald.
@end deftp
@node Audio Services
address@hidden Audio Services
address@hidden Audio Services
The @code{(gnu services audio)} module provides a service to start MPD
(the Music Player Daemon).
@@ -19937,7 +19916,7 @@ an absolute path can be specified here.
@end deftp
@node Virtualization Services
address@hidden Virtualization services
address@hidden Virtualization services
The @code{(gnu services virtualization)} module provides services for
the libvirt and virtlog daemons, as well as other virtualization-related
@@ -20730,7 +20709,7 @@ Return the name of @var{platform}---a string such as
@code{"arm"}.
@end deffn
@node Version Control Services
address@hidden Version Control Services
address@hidden Version Control Services
The @code{(gnu services version-control)} module provides a service to
allow remote access to local Git repositories. There are three options:
@@ -21918,7 +21897,7 @@ This setting controls the commands and features to
enable within Gitolite.
@node Game Services
address@hidden Game Services
address@hidden Game Services
@subsubheading The Battle for Wesnoth Service
@cindex wesnothd
@@ -21949,7 +21928,7 @@ The port to bind the server to.
@end deftp
@node Miscellaneous Services
address@hidden Miscellaneous Services
address@hidden Miscellaneous Services
@cindex fingerprint
@subsubheading Fingerprint Service
@@ -22057,7 +22036,7 @@ that enables sharing the clipboard with a vm and
setting the guest display
resolution when the graphical console window resizes.
@end deffn
address@hidden Dictionary Services
address@hidden Dictionary Services
@cindex dictionary
The @code{(gnu services dict)} module provides the following service:
@@ -22183,7 +22162,7 @@ The Containerd package to use.
@end deftp
@node Setuid Programs
address@hidden Setuid Programs
address@hidden Setuid Programs
@cindex setuid programs
Some programs need to run with ``root'' privileges, even when they are
@@ -22229,7 +22208,7 @@ files in this directory refer to the ``real'' binaries,
which are in the
store.
@node X.509 Certificates
address@hidden X.509 Certificates
address@hidden X.509 Certificates
@cindex HTTPS, certificates
@cindex X.509 certificates
@@ -22292,7 +22271,7 @@ variable in the relevant documentation.
@node Name Service Switch
address@hidden Name Service Switch
address@hidden Name Service Switch
@cindex name service switch
@cindex NSS
@@ -22430,7 +22409,7 @@ Reference Manual}). For example:
@end deftp
@node Initial RAM Disk
address@hidden Initial RAM Disk
address@hidden Initial RAM Disk
@cindex initrd
@cindex initial RAM disk
@@ -22590,7 +22569,7 @@ automatically copied to the initrd.
@end deffn
@node Bootloader Configuration
address@hidden Bootloader Configuration
address@hidden Bootloader Configuration
@cindex bootloader
@cindex boot loader
@@ -22774,7 +22753,7 @@ logos.
@node Invoking guix system
address@hidden Invoking @code{guix system}
address@hidden Invoking @code{guix system}
Once you have written an operating system declaration as seen in the
previous section, it can be @dfn{instantiated} using the @command{guix
@@ -23202,7 +23181,7 @@ example graph.
@end table
@node Running GuixSD in a VM
address@hidden Running GuixSD in a Virtual Machine
address@hidden Running GuixSD in a Virtual Machine
@cindex virtual machine
To run GuixSD in a virtual machine (VM), one can either use the
@@ -23267,7 +23246,7 @@ to your system definition and start the VM using
it uses the ICMP protocol. You'll have to use a different command to check for
network connectivity, for example @command{guix download}.
address@hidden Connecting Through SSH
address@hidden Connecting Through SSH
@cindex SSH
@cindex SSH server
@@ -23293,7 +23272,7 @@ every time you modify your @command{config.scm} file
and the
@command{-o StrictHostKeyChecking=no} prevents you from having to allow a
connection to an unknown host every time you connect.
address@hidden Using @command{virt-viewer} with Spice
address@hidden Using @command{virt-viewer} with Spice
As an alternative to the default @command{qemu} graphical client you can
use the @command{remote-viewer} from the @command{virt-viewer} package. To
@@ -23313,7 +23292,7 @@ name=com.redhat.spice.0
You'll also need to add the @pxref{Miscellaneous Services, Spice service}.
@node Defining Services
address@hidden Defining Services
address@hidden Defining Services
The previous sections show the available services and how one can combine
them in an @code{operating-system} declaration. But how do we define
@@ -23327,7 +23306,7 @@ them in the first place? And what is a service anyway?
@end menu
@node Service Composition
address@hidden Service Composition
address@hidden Service Composition
@cindex services
@cindex daemons
@@ -23383,7 +23362,7 @@ The following section describes the programming
interface for service
types and services.
@node Service Types and Services
address@hidden Service Types and Services
address@hidden Service Types and Services
A @dfn{service type} is a node in the DAG described above. Let us start
with a simple example, the service type for the Guix build daemon
@@ -23520,7 +23499,7 @@ Still here? The next section provides a reference of
the programming
interface for services.
@node Service Reference
address@hidden Service Reference
address@hidden Service Reference
We have seen an overview of service types (@pxref{Service Types and
Services}). This section provides a reference on how to manipulate
@@ -23745,7 +23724,7 @@ extend it by passing it lists of packages to add to the
system profile.
@node Shepherd Services
address@hidden Shepherd Services
address@hidden Shepherd Services
@cindex shepherd services
@cindex PID 1
@@ -23889,7 +23868,7 @@ This service represents address@hidden
@node Documentation
address@hidden Documentation
address@hidden Documentation
@cindex documentation, searching for
@cindex searching for documentation
@@ -23953,7 +23932,7 @@ bindings to navigate manuals. @xref{Getting Started,,,
info, Info: An
Introduction}, for an introduction to Info navigation.
@node Installing Debugging Files
address@hidden Installing Debugging Files
address@hidden Installing Debugging Files
@cindex debugging files
Program binaries, as produced by the GCC compilers for instance, are
@@ -24019,7 +23998,7 @@ the load. To check whether a package has a
@code{debug} output, use
@node Security Updates
address@hidden Security Updates
address@hidden Security Updates
@cindex security updates
@cindex security vulnerabilities
@@ -24139,7 +24118,7 @@ lsof | grep /gnu/store/.*bash
@node Package Modules
address@hidden Package Modules
address@hidden Package Modules
From a programming viewpoint, the package definitions of the
GNU distribution are provided by Guile modules in the @code{(gnu packages
@@ -24201,7 +24180,7 @@ bootstrap)} module. For more information on
bootstrapping,
@pxref{Bootstrapping}.
@node Packaging Guidelines
address@hidden Packaging Guidelines
address@hidden Packaging Guidelines
@cindex packages, creating
The GNU distribution is nascent and may well lack some of your favorite
@@ -24278,7 +24257,7 @@ needed is to review and apply the patch.
@end menu
@node Software Freedom
address@hidden Software Freedom
address@hidden Software Freedom
@c Adapted from http://www.gnu.org/philosophy/philosophy.html.
@cindex free software
@@ -24306,7 +24285,7 @@ upstream source.
@node Package Naming
address@hidden Package Naming
address@hidden Package Naming
@cindex package name
A package has actually two names associated with it:
@@ -24331,7 +24310,7 @@ Font package names are handled differently,
@pxref{Fonts}.
@node Version Numbers
address@hidden Version Numbers
address@hidden Version Numbers
@cindex package version
We usually package only the latest version of a given free software
@@ -24422,7 +24401,7 @@ definition may look like this:
@end example
@node Synopses and Descriptions
address@hidden Synopses and Descriptions
address@hidden Synopses and Descriptions
@cindex package description
@cindex package synopsis
@@ -24502,7 +24481,7 @@ for the X11 resize-and-rotate (RandR) extension.
@dots{}")
@node Python Modules
address@hidden Python Modules
address@hidden Python Modules
@cindex python
We currently package Python 2 and Python 3, under the Scheme variable names
@@ -24523,7 +24502,7 @@ for instance, the module python-dateutil is packaged
under the names
starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as
described above.
address@hidden Specifying Dependencies
address@hidden Specifying Dependencies
@cindex inputs, for Python packages
Dependency information for Python packages is usually available in the
@@ -24577,7 +24556,7 @@ size}}).
@node Perl Modules
address@hidden Perl Modules
address@hidden Perl Modules
@cindex perl
Perl programs standing for themselves are named as any other package,
@@ -24593,7 +24572,7 @@ prefix. For instance, @code{libwww-perl} becomes
@code{perl-libwww}.
@node Java Packages
address@hidden Java Packages
address@hidden Java Packages
@cindex java
Java programs standing for themselves are named as any other package,
@@ -24613,7 +24592,7 @@ dashes and prepend the prefix @code{java-}. So the
class
@node Fonts
address@hidden Fonts
address@hidden Fonts
@cindex fonts
For fonts that are in general not installed by a user for typesetting
@@ -24652,7 +24631,7 @@ fonts.
@node Bootstrapping
address@hidden Bootstrapping
address@hidden Bootstrapping
@c Adapted from the ELS 2013 paper.
@@ -24681,7 +24660,7 @@ Binutils, libc, and the other packages mentioned
above---the
These bootstrap binaries are ``taken for granted'', though we can also
re-create them if needed (more on that later).
address@hidden Preparing to Use the Bootstrap Binaries
address@hidden Preparing to Use the Bootstrap Binaries
@c As of Emacs 24.3, Info-mode displays the image, but since it's a
@c large image, it's hard to scroll. Oh well.
@@ -24732,7 +24711,7 @@ derivations @code{gcc-bootstrap-0.drv},
@code{glibc-bootstrap-0.drv},
etc., at which point we have a working C tool chain.
address@hidden Building the Build Tools
address@hidden Building the Build Tools
Bootstrapping is complete when we have a full tool chain that does not
depend on the pre-built bootstrap tools discussed above. This
@@ -24787,7 +24766,7 @@ implicitly used by any package that uses
@code{gnu-build-system}
(@pxref{Build Systems, @code{gnu-build-system}}).
address@hidden Building the Bootstrap Binaries
address@hidden Building the Bootstrap Binaries
@cindex bootstrap binaries
Because the final tool chain does not depend on the bootstrap binaries,
@@ -24813,7 +24792,7 @@ unknown, but if you would like to investigate further
(and have
significant computational and storage resources to do so), then let us
know.
address@hidden Reducing the Set of Bootstrap Binaries
address@hidden Reducing the Set of Bootstrap Binaries
Our bootstrap binaries currently include GCC, Guile, etc. That's a lot
of binary code! Why is that a problem? It's a problem because these
@@ -24836,7 +24815,7 @@ a simple and auditable assembler. Your help is welcome!
@node Porting
address@hidden Porting to a New Platform
address@hidden Porting to a New Platform
As discussed above, the GNU distribution is self-contained, and
self-containment is achieved by relying on pre-built ``bootstrap
- branch master updated (d1dfcc7 -> ce6236f), guix-commits, 2019/01/22
- 02/11: self: Remove leftover export., guix-commits, 2019/01/22
- 04/11: compile: Let compiler warnings through during the load phase., guix-commits, 2019/01/22
- 03/11: gnu: Remove duplicate record fields., guix-commits, 2019/01/22
- 01/11: vm: Remove unnecessary import., guix-commits, 2019/01/22
- 05/11: records: Detect duplicate field initializers., guix-commits, 2019/01/22
- 07/11: self: System tests depend on CLI modules., guix-commits, 2019/01/22
- 06/11: offload: 'status' reports the time difference., guix-commits, 2019/01/22
- 11/11: doc: Move "Package Modules" under "Programming Interface"., guix-commits, 2019/01/22
- 08/11: doc: Move sections under "GNU Distribution" one level higher.,
guix-commits <=
- 10/11: doc: Move "Packaging Guidelines" under "Contributing"., guix-commits, 2019/01/22
- 09/11: doc: Move "System Installation" right after "Installation"., guix-commits, 2019/01/22