diff options
Diffstat (limited to 'docs/docs/carbslinux.html')
-rw-r--r-- | docs/docs/carbslinux.html | 1786 |
1 files changed, 0 insertions, 1786 deletions
diff --git a/docs/docs/carbslinux.html b/docs/docs/carbslinux.html deleted file mode 100644 index e50d6f4..0000000 --- a/docs/docs/carbslinux.html +++ /dev/null @@ -1,1786 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<!-- Copyright (C) 2020 Cem Keylan - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts and no Back-Cover Texts. -A copy of the license is included in the section entitled "GNU Free -Documentation License." - --> -<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<title>Carbs Linux User Manual</title> - -<meta name="description" content="Carbs Linux User Manual"> -<meta name="keywords" content="Carbs Linux User Manual"> -<meta name="resource-type" content="document"> -<meta name="distribution" content="global"> -<meta name="Generator" content="makeinfo"> -<link href="#Top" rel="start" title="Top"> -<link href="#SEC_Contents" rel="contents" title="Table of Contents"> -<style type="text/css"> -<!-- -a.summary-letter {text-decoration: none} -blockquote.indentedblock {margin-right: 0em} -div.display {margin-left: 3.2em} -div.example {margin-left: 3.2em} -div.lisp {margin-left: 3.2em} -kbd {font-style: oblique} -pre.display {font-family: inherit} -pre.format {font-family: inherit} -pre.menu-comment {font-family: serif} -pre.menu-preformatted {font-family: serif} -span.nolinebreak {white-space: nowrap} -span.roman {font-family: initial; font-weight: normal} -span.sansserif {font-family: sans-serif; font-weight: normal} -ul.no-bullet {list-style: none} ---> -</style> -<link rel="stylesheet" type="text/css" href="https://www.gnu.org/software/gnulib/manual.css"> - - -</head> - -<body lang="en"> -<h1 class="settitle" align="center">Carbs Linux User Manual</h1> - - - - -<span id="SEC_Contents"></span> -<h2 class="contents-heading">Table of Contents</h2> - -<div class="contents"> - -<ul class="no-bullet"> - <li><a id="toc-Installation-1" href="#Installation">1 Installation</a> - <ul class="no-bullet"> - <li><a id="toc-Preparing-Environment-1" href="#Preparing-Environment">1.1 Preparing Environment</a> - <ul class="no-bullet"> - <li><a id="toc-Download-1" href="#Download">1.1.1 Download</a></li> - <li><a id="toc-Signature-verification-1" href="#Signature-verification">1.1.2 Signature verification</a></li> - <li><a id="toc-Extracting-the-tarball-1" href="#Extracting-the-tarball">1.1.3 Extracting the tarball</a></li> - <li><a id="toc-Obtain-the-chroot-helper-1" href="#Obtain-the-chroot-helper">1.1.4 Obtain the chroot helper</a></li> - </ul></li> - <li><a id="toc-Chroot-1" href="#Chroot">1.2 Chroot</a> - <ul class="no-bullet"> - <li><a id="toc-Setting-up-repositories-1" href="#Setting-up-repositories">1.2.1 Setting up repositories</a></li> - <li><a id="toc-Updating-packages-1" href="#Updating-packages">1.2.2 Updating packages</a></li> - <li><a id="toc-Installing-packages-1" href="#Installing-packages">1.2.3 Installing packages</a></li> - <li><a id="toc-Essential-Software-1" href="#Essential-Software">1.2.4 Essential Software</a></li> - <li><a id="toc-Obtaining-the-documentation-1" href="#Obtaining-the-documentation">1.2.5 Obtaining the documentation</a></li> - </ul></li> - <li><a id="toc-System-Configuration-1" href="#System-Configuration">1.3 System Configuration</a> - <ul class="no-bullet"> - <li><a id="toc-Configuring-hostname-1" href="#Configuring-hostname">1.3.1 Configuring hostname</a></li> - <li><a id="toc-Hosts-file-1" href="#Hosts-file">1.3.2 Hosts file</a></li> - </ul></li> - <li><a id="toc-Kernel-1" href="#Kernel">1.4 Kernel</a> - <ul class="no-bullet"> - <li><a id="toc-Obtaining-the-kernel-sources-1" href="#Obtaining-the-kernel-sources">1.4.1 Obtaining the kernel sources</a></li> - <li><a id="toc-Kernel-dependencies-1" href="#Kernel-dependencies">1.4.2 Kernel dependencies</a></li> - <li><a id="toc-Building-the-kernel-1" href="#Building-the-kernel">1.4.3 Building the kernel</a></li> - </ul></li> - <li><a id="toc-Making-your-system-bootable-1" href="#Making-your-system-bootable">1.5 Making your system bootable</a> - <ul class="no-bullet"> - <li><a id="toc-Bootloader-1" href="#Bootloader">1.5.1 Bootloader</a></li> - <li><a id="toc-Init-scripts-1" href="#Init-scripts">1.5.2 Init scripts</a></li> - <li><a id="toc-Fstab-1" href="#Fstab">1.5.3 Fstab</a></li> - </ul></li> - <li><a id="toc-Post_002dinstallation-1" href="#Post_002dinstallation">1.6 Post-installation</a> - <ul class="no-bullet"> - <li><a id="toc-KISS-repositories-1" href="#KISS-repositories">1.6.1 KISS repositories</a></li> - </ul></li> - </ul></li> - <li><a id="toc-Init-System-1" href="#Init-System">2 Init System</a> - <ul class="no-bullet"> - <li><a id="toc-Configuring-Init-1" href="#Configuring-Init">2.1 Configuring Init</a> - <ul class="no-bullet"> - <li><a id="toc-Kernel-Command-Line-1" href="#Kernel-Command-Line">2.1.1 Kernel Command Line</a></li> - <li><a id="toc-_002fetc_002finit_002frc_002econf-file" href="#g_t_002fetc_002finit_002frcconf-file">2.1.2 ‘<samp>/etc/init/rc.conf</samp>’ file</a></li> - <li><a id="toc-Init-Hooks-1" href="#Init-Hooks">2.1.3 Init Hooks</a></li> - </ul></li> - <li><a id="toc-Changing-Init-Program-1" href="#Changing-Init-Program">2.2 Changing Init Program</a> - <ul class="no-bullet"> - <li><a id="toc-Rebooting-after-changing-init-1" href="#Rebooting-after-changing-init">2.2.1 Rebooting after changing init</a></li> - </ul></li> - </ul></li> - <li><a id="toc-Contribution-Guidelines-1" href="#Contribution-Guidelines">3 Contribution Guidelines</a> - <ul class="no-bullet"> - <li><a id="toc-Conventions-1" href="#Conventions">3.1 Conventions</a> - <ul class="no-bullet"> - <li><a id="toc-Shell-Conventions-1" href="#Shell-Conventions">3.1.1 Shell Conventions</a></li> - <li><a id="toc-Repository-Conventions-1" href="#Repository-Conventions">3.1.2 Repository Conventions</a></li> - </ul></li> - </ul></li> - <li><a id="toc-GNU-Free-Documentation-License-1" href="#GNU-Free-Documentation-License">Appendix A GNU Free Documentation License</a> - <ul class="no-bullet"> - <li><a id="toc-ADDENDUM_003a-How-to-use-this-License-for-your-documents" href="#ADDENDUM_003a-How-to-use-this-License-for-your-documents">A.1 ADDENDUM: How to use this License for your documents</a></li> - </ul></li> -</ul> -</div> - - -<span id="Top"></span><div class="header"> -<p> -Next: <a href="#Installation" accesskey="n" rel="next">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Carbs-Linux-User-Manual"></span><h1 class="top">Carbs Linux User Manual</h1> - -<p>This is the full documentation of <a href="https://carbslinux.org">Carbs Linux</a>, from the details of the -distribution, installation, to the package manager. It is not yet complete. -</p> - -<p>This documentation is also available in the distribution by the -<code>carbs-docs</code> package, which can be read by either running -<code>info carbslinux</code> or reading <samp>/usr/share/doc/carbslinux.txt</samp> with your -favorite pager. You can install either the <code>info</code> or <code>texinfo</code> -for doing the first. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Installation" accesskey="1">Installation</a></td><td> </td><td align="left" valign="top">Installing Carbs Linux -</td></tr> -<tr><td align="left" valign="top">• <a href="#Init-System" accesskey="2">Init System</a></td><td> </td><td align="left" valign="top">Configure the init system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Contribution-Guidelines" accesskey="3">Contribution Guidelines</a></td><td> </td><td align="left" valign="top">Contribute to Carbs Linux -</td></tr> -<tr><td align="left" valign="top">• <a href="#GNU-Free-Documentation-License" accesskey="4">GNU Free Documentation License</a></td><td> </td><td align="left" valign="top">Your rights -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">— The Detailed Node Listing — - -Installation - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Preparing-Environment" accesskey="5">Preparing Environment</a></td><td> </td><td align="left" valign="top">Getting ready to chroot -</td></tr> -<tr><td align="left" valign="top">• <a href="#Chroot" accesskey="6">Chroot</a></td><td> </td><td align="left" valign="top">Going inside your new system -</td></tr> -<tr><td align="left" valign="top">• <a href="#System-Configuration" accesskey="7">System Configuration</a></td><td> </td><td align="left" valign="top">Customizing your system for personal use -</td></tr> -<tr><td align="left" valign="top">• <a href="#Kernel" accesskey="8">Kernel</a></td><td> </td><td align="left" valign="top">Compiling your own kernel -</td></tr> -<tr><td align="left" valign="top">• <a href="#Making-your-system-bootable" accesskey="9">Making your system bootable</a></td><td> </td><td align="left" valign="top">Installing bootloader and boot scripts -</td></tr> -<tr><td align="left" valign="top">• <a href="#Post_002dinstallation">Post-installation</a></td><td> </td><td align="left" valign="top">Post-installation tasks -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Preparing Environment - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Download">Download</a></td><td> </td><td align="left" valign="top">Download the root filesystem tarball -</td></tr> -<tr><td align="left" valign="top">• <a href="#Signature-verification">Signature verification</a></td><td> </td><td align="left" valign="top">Verify the signature of the rootfs tarball -</td></tr> -<tr><td align="left" valign="top">• <a href="#Extracting-the-tarball">Extracting the tarball</a></td><td> </td><td align="left" valign="top">Extracting the root filesystem to the desired location -</td></tr> -<tr><td align="left" valign="top">• <a href="#Obtain-the-chroot-helper">Obtain the chroot helper</a></td><td> </td><td align="left" valign="top">Download the script to easily chroot into the new filesystem -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Chroot - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Setting-up-repositories">Setting up repositories</a></td><td> </td><td align="left" valign="top">Basic setup for obtaining repositories -</td></tr> -<tr><td align="left" valign="top">• <a href="#Updating-packages">Updating packages</a></td><td> </td><td align="left" valign="top">Update your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Installing-packages">Installing packages</a></td><td> </td><td align="left" valign="top">Install new software on your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Essential-Software">Essential Software</a></td><td> </td><td align="left" valign="top">Software you might want to include on your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Obtaining-the-documentation">Obtaining the documentation</a></td><td> </td><td align="left" valign="top">Install documentation for offline use (optional) -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -System Configuration - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Configuring-hostname">Configuring hostname</a></td><td> </td><td align="left" valign="top">Setting up system hostname (recommended) -</td></tr> -<tr><td align="left" valign="top">• <a href="#Hosts-file">Hosts file</a></td><td> </td><td align="left" valign="top">Setting up hosts file for networking (optional) -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Kernel - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Obtaining-the-kernel-sources">Obtaining the kernel sources</a></td><td> </td><td align="left" valign="top">Downloading the Linux source code -</td></tr> -<tr><td align="left" valign="top">• <a href="#Kernel-dependencies">Kernel dependencies</a></td><td> </td><td align="left" valign="top">Requirements for building the kernel -</td></tr> -<tr><td align="left" valign="top">• <a href="#Building-the-kernel">Building the kernel</a></td><td> </td><td align="left" valign="top">Configure and compile the kernel -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Making your system bootable - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Bootloader">Bootloader</a></td><td> </td><td align="left" valign="top">Install a bootloader for your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Init-scripts">Init scripts</a></td><td> </td><td align="left" valign="top">Install init scripts for your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Fstab">Fstab</a></td><td> </td><td align="left" valign="top">Generating fstab -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Post-installation - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#KISS-repositories">KISS repositories</a></td><td> </td><td align="left" valign="top">Acquire kiss repositories -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Init System - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Configuring-Init">Configuring Init</a></td><td> </td><td align="left" valign="top">Ways to configure the init system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Changing-Init-Program">Changing Init Program</a></td><td> </td><td align="left" valign="top">Replace the default busybox init with something new -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Configuring Init - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Kernel-Command-Line">Kernel Command Line</a></td><td> </td><td align="left" valign="top">Configure init through the boot parameters -</td></tr> -<tr><td align="left" valign="top">• <a href="#g_t_002fetc_002finit_002frcconf-file">‘<samp>/etc/init/rc.conf</samp>’ file</a></td><td> </td><td align="left" valign="top">Configure init through the configuration file -</td></tr> -<tr><td align="left" valign="top">• <a href="#Init-Hooks">Init Hooks</a></td><td> </td><td align="left" valign="top">Configure init through hooks -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Changing Init Program - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Rebooting-after-changing-init">Rebooting after changing init</a></td><td> </td><td align="left" valign="top">Ways to reboot after replacing the init system -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Contribution Guidelines - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Conventions">Conventions</a></td><td> </td><td align="left" valign="top">Conventions of the distribution -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -Conventions - -</pre></th></tr><tr><td align="left" valign="top">• <a href="#Shell-Conventions">Shell Conventions</a></td><td> </td><td align="left" valign="top">Conventions for shell scripts -</td></tr> -<tr><td align="left" valign="top">• <a href="#Repository-Conventions">Repository Conventions</a></td><td> </td><td align="left" valign="top">Conventions for repository build scripts -</td></tr> -<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> - -</pre></th></tr></table> - -<hr> -<span id="Installation"></span><div class="header"> -<p> -Next: <a href="#Init-System" accesskey="n" rel="next">Init System</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Installation-1"></span><h2 class="chapter">1 Installation</h2> - -<p>These are the step-by-step instructions for installing Carbs Linux. It can be -acquired as plain-text to be viewed offline with a pager from -<a href="https://carbslinux.org/install.txt">https://carbslinux.org/install.txt</a>. -</p> -<div class="example"> -<pre class="example">curl -sL https://carbslinux.org/install.txt | less -</pre></div> - -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Preparing-Environment" accesskey="1">Preparing Environment</a></td><td> </td><td align="left" valign="top">Getting ready to chroot -</td></tr> -<tr><td align="left" valign="top">• <a href="#Chroot" accesskey="2">Chroot</a></td><td> </td><td align="left" valign="top">Going inside your new system -</td></tr> -<tr><td align="left" valign="top">• <a href="#System-Configuration" accesskey="3">System Configuration</a></td><td> </td><td align="left" valign="top">Customizing your system for personal use -</td></tr> -<tr><td align="left" valign="top">• <a href="#Kernel" accesskey="4">Kernel</a></td><td> </td><td align="left" valign="top">Compiling your own kernel -</td></tr> -<tr><td align="left" valign="top">• <a href="#Making-your-system-bootable" accesskey="5">Making your system bootable</a></td><td> </td><td align="left" valign="top">Installing bootloader and boot scripts -</td></tr> -<tr><td align="left" valign="top">• <a href="#Post_002dinstallation" accesskey="6">Post-installation</a></td><td> </td><td align="left" valign="top">Post-installation tasks -</td></tr> -</table> - -<hr> -<span id="Preparing-Environment"></span><div class="header"> -<p> -Next: <a href="#Chroot" accesskey="n" rel="next">Chroot</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Preparing-Environment-1"></span><h3 class="section">1.1 Preparing Environment</h3> - -<p>To install Carbs Linux, you will need a Live Linux ISO. For that purpose, you -can obtain a Gentoo or Void Linux live image. You can follow their instructions -to boot and setup your network. -</p> -<p>You will need the following programs in order to install Carbs Linux: -</p> -<ul> -<li> tar -</li><li> wget -</li><li> xz -</li><li> some form of base utilities (coreutils, sbase, busybox, etc.) -</li></ul> - -<p>Rest of these instructions will assume that you have set all of these up, and -will continue on that point. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Download" accesskey="1">Download</a></td><td> </td><td align="left" valign="top">Download the root filesystem tarball -</td></tr> -<tr><td align="left" valign="top">• <a href="#Signature-verification" accesskey="2">Signature verification</a></td><td> </td><td align="left" valign="top">Verify the signature of the rootfs tarball -</td></tr> -<tr><td align="left" valign="top">• <a href="#Extracting-the-tarball" accesskey="3">Extracting the tarball</a></td><td> </td><td align="left" valign="top">Extracting the root filesystem to the desired location -</td></tr> -<tr><td align="left" valign="top">• <a href="#Obtain-the-chroot-helper" accesskey="4">Obtain the chroot helper</a></td><td> </td><td align="left" valign="top">Download the script to easily chroot into the new filesystem -</td></tr> -</table> - -<hr> -<span id="Download"></span><div class="header"> -<p> -Next: <a href="#Signature-verification" accesskey="n" rel="next">Signature verification</a>, Up: <a href="#Preparing-Environment" accesskey="u" rel="up">Preparing Environment</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Download-1"></span><h4 class="subsection">1.1.1 Download</h4> - -<p>First, we need to download the rootfs tarball. You can do the following in order -to obtain the rootfs. If you are using an i686 machine, replace the ‘<samp>x86_64</samp>’ -with ‘<samp>i686</samp>’. We are setting this in a URL variable so that we don’t have to -write it every time. -</p> -<div class="example"> -<pre class="example">wget $URL/carbs-rootfs.tar.xz.sha256 -sha256sum -c carbs-rootfs.tar.xz.sha256 -</pre></div> - -<hr> -<span id="Signature-verification"></span><div class="header"> -<p> -Next: <a href="#Extracting-the-tarball" accesskey="n" rel="next">Extracting the tarball</a>, Previous: <a href="#Download" accesskey="p" rel="prev">Download</a>, Up: <a href="#Preparing-Environment" accesskey="u" rel="up">Preparing Environment</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Signature-verification-1"></span><h4 class="subsection">1.1.2 Signature verification</h4> - -<p>It is highly recommended to verify the signature of the tarball. You will need -GPG for this. -</p> -<div class="example"> -<pre class="example">wget $URL/carbs-rootfs.tar.xz.sig -gpg --recv-keys FF484BDFEFCEF8FF -gpg --verify carbs-rootfs.tar.xz.sig -</pre></div> - -<hr> -<span id="Extracting-the-tarball"></span><div class="header"> -<p> -Next: <a href="#Obtain-the-chroot-helper" accesskey="n" rel="next">Obtain the chroot helper</a>, Previous: <a href="#Signature-verification" accesskey="p" rel="prev">Signature verification</a>, Up: <a href="#Preparing-Environment" accesskey="u" rel="up">Preparing Environment</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Extracting-the-tarball-1"></span><h4 class="subsection">1.1.3 Extracting the tarball</h4> - -<p>You will need to extract the tarball to your desired location. For partitioning, -you can follow <a href="https://wiki.archlinux.org/index.php/Partitioning">this guide</a>. This will assume that you will be mounting your root -partition to ‘<samp>/mnt</samp>’. -</p> -<div class="example"> -<pre class="example">mount /dev/sdx1 /mnt -tar xf carbs-rootfs.tar.xz -C /mnt -</pre></div> - -<hr> -<span id="Obtain-the-chroot-helper"></span><div class="header"> -<p> -Previous: <a href="#Extracting-the-tarball" accesskey="p" rel="prev">Extracting the tarball</a>, Up: <a href="#Preparing-Environment" accesskey="u" rel="up">Preparing Environment</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Obtain-the-chroot-helper-1"></span><h4 class="subsection">1.1.4 Obtain the chroot helper</h4> - -<p>You can obtain the ‘<samp>cpt-chroot</samp>’ script in order to do a simple chroot into your -new root filesystem. -</p> -<div class="example"> -<pre class="example">wget https://dl.carbslinux.org/distfiles/cpt-chroot -chmod a+x cpt-chroot -</pre></div> - -<hr> -<span id="Chroot"></span><div class="header"> -<p> -Next: <a href="#System-Configuration" accesskey="n" rel="next">System Configuration</a>, Previous: <a href="#Preparing-Environment" accesskey="p" rel="prev">Preparing Environment</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Chroot-1"></span><h3 class="section">1.2 Chroot</h3> - -<p>Chroot into Carbs Linux! -</p> -<div class="example"> -<pre class="example">./cpt-chroot /mnt -</pre></div> - -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Setting-up-repositories" accesskey="1">Setting up repositories</a></td><td> </td><td align="left" valign="top">Basic setup for obtaining repositories -</td></tr> -<tr><td align="left" valign="top">• <a href="#Updating-packages" accesskey="2">Updating packages</a></td><td> </td><td align="left" valign="top">Update your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Installing-packages" accesskey="3">Installing packages</a></td><td> </td><td align="left" valign="top">Install new software on your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Essential-Software" accesskey="4">Essential Software</a></td><td> </td><td align="left" valign="top">Software you might want to include on your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Obtaining-the-documentation" accesskey="5">Obtaining the documentation</a></td><td> </td><td align="left" valign="top">Install documentation for offline use (optional) -</td></tr> -</table> - -<hr> -<span id="Setting-up-repositories"></span><div class="header"> -<p> -Next: <a href="#Updating-packages" accesskey="n" rel="next">Updating packages</a>, Up: <a href="#Chroot" accesskey="u" rel="up">Chroot</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Setting-up-repositories-1"></span><h4 class="subsection">1.2.1 Setting up repositories</h4> - -<p>Newest tarballs do not come with repositories, so you will need to manually -obtain them, and set your ‘<samp>CPT_PATH</samp>’ environment variable. Carbs Linux -repositories can either be obtained by ‘<samp>git</samp>’ or ‘<samp>rsync</samp>’. While rsync -repositories are overall faster and smaller, git offers the whole history of the -repository and a means to manipulate your repository as you like it. If you want -to obtain the git repository, you will need to install ‘<samp>git</samp>’ itself. -</p> -<p>The following guide will assume that you put the repositories into ‘<samp>~/repos/</samp>’ -directory, but you can put the repositories into any directory you want. So go -ahead and create that directory: -</p> -<div class="example"> -<pre class="example">mkdir -p $HOME/repos -</pre></div> - -<ol> -<li> Obtaining from git - - -<p>Carbs Linux git repositories can be found both from the main server and GitHub -(mirror). Here are both their repository links. You can clone any of them. -</p> -<ul> -<li> git://git.carbslinux.org/repository -</li><li> <a href="https://github.com/carbslinux/repository">https://github.com/carbslinux/repository</a> -</li></ul> - -<div class="example"> -<pre class="example">git clone git://git.carbslinux.org/repository $HOME/repos/carbs -</pre></div> - -</li><li> Obtaining from rsync - - -<p>Carbs Linux rsync repositories live in rsync://carbslinux.org/repo. In -order to obtain it, run the following: -</p> -<div class="example"> -<pre class="example">rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs -</pre></div> - -</li><li> Making the package manager use the repositories - - -<p>In your shell’s configuration file, or in your ‘<samp>~/.profile</samp>’ file, add the -following lines: -</p> -<div class="example"> -<pre class="example">CPT_PATH=$HOME/repos/carbs/core -CPT_PATH=$CPT_PATH:$HOME/repos/carbs/extra -CPT_PATH=$CPT_PATH:$HOME/repos/carbs/xorg -CPT_PATH=$CPT_PATH:$HOME/repos/carbs/community -export CPT_PATH -</pre></div> -</li></ol> - -<hr> -<span id="Updating-packages"></span><div class="header"> -<p> -Next: <a href="#Installing-packages" accesskey="n" rel="next">Installing packages</a>, Previous: <a href="#Setting-up-repositories" accesskey="p" rel="prev">Setting up repositories</a>, Up: <a href="#Chroot" accesskey="u" rel="up">Chroot</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Updating-packages-1"></span><h4 class="subsection">1.2.2 Updating packages</h4> - -<p>It is good practice to make sure your system is up to date, especially before -building new packages. If there is an update for the package manager you will -need to update twice. -</p> -<div class="example"> -<pre class="example">cpt-update && cpt-update -</pre></div> - -<hr> -<span id="Installing-packages"></span><div class="header"> -<p> -Next: <a href="#Essential-Software" accesskey="n" rel="next">Essential Software</a>, Previous: <a href="#Updating-packages" accesskey="p" rel="prev">Updating packages</a>, Up: <a href="#Chroot" accesskey="u" rel="up">Chroot</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Installing-packages-1"></span><h4 class="subsection">1.2.3 Installing packages</h4> - -<p>Since you are operating on a really small base, you might need to build and -install new programs to extend the functionality of your system. In order to -build and install packages new packages in Carbs, you need to execute the -following. "Package" is not actually a package and is given as an example. -</p> -<div class="example"> -<pre class="example">cpt-build package -cpt-install package -</pre></div> - -<hr> -<span id="Essential-Software"></span><div class="header"> -<p> -Next: <a href="#Obtaining-the-documentation" accesskey="n" rel="next">Obtaining the documentation</a>, Previous: <a href="#Installing-packages" accesskey="p" rel="prev">Installing packages</a>, Up: <a href="#Chroot" accesskey="u" rel="up">Chroot</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Essential-Software-1"></span><h4 class="subsection">1.2.4 Essential Software</h4> - -<p>Here is a list of software that you might want to have on your system. -</p> -<p><strong>BOOTLOADERS</strong> -</p> -<ul> -<li> efibootmgr -</li><li> grub -</li></ul> - -<p><strong>FILESYSTEMS</strong> -</p> -<ul> -<li> e2fsprogs -</li><li> dosfstools -</li><li> ntfs-3g -</li></ul> - -<p><strong>NETWORKING</strong> -</p> -<ul> -<li> dhcpcd -</li><li> wpa<em>_supplicant</em> -</li></ul> - -<p><strong>TEXT EDITORS</strong> -</p> -<ul> -<li> nano -</li><li> vim -</li><li> neatvi -</li><li> emacs -</li><li> emacs-nox (terminal-only version of emacs) -</li></ul> - -<p><strong>USER SHELLS</strong> -</p> -<ul> -<li> bash -</li><li> zsh -</li><li> oksh -</li><li> rc -</li></ul> - -<p><strong>POSIX BASE UTILITIES</strong> -</p> -<ul> -<li> busybox -</li><li> sbase -</li><li> coreutils -</li></ul> - -<p><strong>DOCUMENTATION</strong> -</p> -<ul> -<li> carbs-docs -</li><li> man-pages -</li><li> man-pages-posix -</li></ul> - -<hr> -<span id="Obtaining-the-documentation"></span><div class="header"> -<p> -Previous: <a href="#Essential-Software" accesskey="p" rel="prev">Essential Software</a>, Up: <a href="#Chroot" accesskey="u" rel="up">Chroot</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Obtaining-the-documentation-1"></span><h4 class="subsection">1.2.5 Obtaining the documentation</h4> - -<p>All the documentation for Carbs Linux can be found on a single info manual to be -viewed offline. You can obtain texinfo or the info (standalone) package in order -to view the documentation. -</p> -<div class="example"> -<pre class="example"># Install the documentation. -cpt b carbs-docs && cpt i carbs-docs - -# Install either texinfo or the info package. We will be installing standalone info -# as it doesn't need perl. -cpt b info && cpt i info - -# You can then run info and navigate through the documentation. -info carbslinux -</pre></div> - -<hr> -<span id="System-Configuration"></span><div class="header"> -<p> -Next: <a href="#Kernel" accesskey="n" rel="next">Kernel</a>, Previous: <a href="#Chroot" accesskey="p" rel="prev">Chroot</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="System-Configuration-1"></span><h3 class="section">1.3 System Configuration</h3> - -<p>After you have finished installing some extra packages, you can configure your -system to your liking. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Configuring-hostname" accesskey="1">Configuring hostname</a></td><td> </td><td align="left" valign="top">Setting up system hostname (recommended) -</td></tr> -<tr><td align="left" valign="top">• <a href="#Hosts-file" accesskey="2">Hosts file</a></td><td> </td><td align="left" valign="top">Setting up hosts file for networking (optional) -</td></tr> -</table> - -<hr> -<span id="Configuring-hostname"></span><div class="header"> -<p> -Next: <a href="#Hosts-file" accesskey="n" rel="next">Hosts file</a>, Up: <a href="#System-Configuration" accesskey="u" rel="up">System Configuration</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Configuring-hostname-1"></span><h4 class="subsection">1.3.1 Configuring hostname</h4> - -<p>You might want to add a hostname, especially in a networked environment. Your -hostname will default to ’carbslinux’ unless you set this. -</p> -<div class="example"> -<pre class="example">echo your-hostname > /etc/hostname -</pre></div> - -<hr> -<span id="Hosts-file"></span><div class="header"> -<p> -Previous: <a href="#Configuring-hostname" accesskey="p" rel="prev">Configuring hostname</a>, Up: <a href="#System-Configuration" accesskey="u" rel="up">System Configuration</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Hosts-file-1"></span><h4 class="subsection">1.3.2 Hosts file</h4> - -<p>You can edit your /etc/hosts file, which is the static lookup table for host -names. By default, there are two entries for localhost which are OKAY. You can -replace the ’localhost’ part of these entries to your hostname. -</p> -<div class="example"> -<pre class="example">127.0.0.1 localhost.localdomain localhost -::1 localhost.localdomain localhost ip6-localhost -</pre></div> - -<hr> -<span id="Kernel"></span><div class="header"> -<p> -Next: <a href="#Making-your-system-bootable" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="#System-Configuration" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Kernel-1"></span><h3 class="section">1.4 Kernel</h3> - -<p>Kernel isn’t managed under the main repositories, even though you could package -one for your personal use. Here is an <a href="https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux">example kernel package</a>, which you will -need to reconfigure for your specific setup if you want to make use of it. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Obtaining-the-kernel-sources" accesskey="1">Obtaining the kernel sources</a></td><td> </td><td align="left" valign="top">Downloading the Linux source code -</td></tr> -<tr><td align="left" valign="top">• <a href="#Kernel-dependencies" accesskey="2">Kernel dependencies</a></td><td> </td><td align="left" valign="top">Requirements for building the kernel -</td></tr> -<tr><td align="left" valign="top">• <a href="#Building-the-kernel" accesskey="3">Building the kernel</a></td><td> </td><td align="left" valign="top">Configure and compile the kernel -</td></tr> -</table> - -<hr> -<span id="Obtaining-the-kernel-sources"></span><div class="header"> -<p> -Next: <a href="#Kernel-dependencies" accesskey="n" rel="next">Kernel dependencies</a>, Up: <a href="#Kernel" accesskey="u" rel="up">Kernel</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Obtaining-the-kernel-sources-1"></span><h4 class="subsection">1.4.1 Obtaining the kernel sources</h4> - -<p>You can visit the <a href="https://kernel.org">https://kernel.org</a> website to choose a kernel that you want -to install. Though only the latest stable and longterm (LTS) versions are -supported. -</p> -<div class="example"> -<pre class="example"># Download the kernel and extract it -wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz -tar xf linux-5.9.1.tar.xz - -# Change directory into the kernel sources -cd linux-5.9.1 -</pre></div> - -<hr> -<span id="Kernel-dependencies"></span><div class="header"> -<p> -Next: <a href="#Building-the-kernel" accesskey="n" rel="next">Building the kernel</a>, Previous: <a href="#Obtaining-the-kernel-sources" accesskey="p" rel="prev">Obtaining the kernel sources</a>, Up: <a href="#Kernel" accesskey="u" rel="up">Kernel</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Kernel-dependencies-1"></span><h4 class="subsection">1.4.2 Kernel dependencies</h4> - -<p>In order to compile the kernel you will need to install some dependencies. You -will need ‘<samp>libelf</samp>’, and ‘<samp>bison</samp>’ to compile the kernel. If you want to configure -using the menu interface you will also need ‘<samp>ncurses</samp>’. -</p> -<div class="example"> -<pre class="example"># The package manager asks to install if you are building more than one package, -# so no need to run 'cpt i ...' -cpt b libelf ncurses -</pre></div> - -<p>In the vanilla kernel sources, you need perl to compile the kernel, but it can -be easily patched out. You will need to apply the following patch. Patch was -written by <a href="https://github.com/E5ten">E5ten</a>. You will need to obtain and apply the patch in the kernel -source directory. -</p> -<div class="example"> -<pre class="example">wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch -patch -p1 < kernel-no-perl.patch -</pre></div> - -<hr> -<span id="Building-the-kernel"></span><div class="header"> -<p> -Previous: <a href="#Kernel-dependencies" accesskey="p" rel="prev">Kernel dependencies</a>, Up: <a href="#Kernel" accesskey="u" rel="up">Kernel</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Building-the-kernel-1"></span><h4 class="subsection">1.4.3 Building the kernel</h4> - -<p>Next step is configuring and building the kernel. You can check Gentoo’s -<a href="https://wiki.gentoo.org/wiki/Kernel/Configuration">kernel configuration guide</a> to learn more about the matter. Overall, Gentoo Wiki -is a good place to learn about configuration according to your hardware. The -following will assume a monolithic kernel. -</p> -<div class="example"> -<pre class="example">make menuconfig -make -install -Dm755 $(make -s image_name) /boot/vmlinuz-linux -</pre></div> - -<hr> -<span id="Making-your-system-bootable"></span><div class="header"> -<p> -Next: <a href="#Post_002dinstallation" accesskey="n" rel="next">Post-installation</a>, Previous: <a href="#Kernel" accesskey="p" rel="prev">Kernel</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Making-your-system-bootable-1"></span><h3 class="section">1.5 Making your system bootable</h3> - -<p>In order to be able to boot your fresh system, wou will need an init-daemon, -init-scripts and a bootloader. The init daemon is already provided by busybox, -but you can optionally change it. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Bootloader" accesskey="1">Bootloader</a></td><td> </td><td align="left" valign="top">Install a bootloader for your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Init-scripts" accesskey="2">Init scripts</a></td><td> </td><td align="left" valign="top">Install init scripts for your system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Fstab" accesskey="3">Fstab</a></td><td> </td><td align="left" valign="top">Generating fstab -</td></tr> -</table> - -<hr> -<span id="Bootloader"></span><div class="header"> -<p> -Next: <a href="#Init-scripts" accesskey="n" rel="next">Init scripts</a>, Up: <a href="#Making-your-system-bootable" accesskey="u" rel="up">Making your system bootable</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Bootloader-1"></span><h4 class="subsection">1.5.1 Bootloader</h4> - -<p>In the main repository, there is efibootmgr and grub to serve as bootloaders. -efibootmgr can be used as a standalone bootloader, or can be used to install -grub in a UEFI environment. efibootmgr is needed unless you are using a device -without UEFI support (or you really want to use BIOS for a reason). -</p> -<ol> -<li> GRUB BIOS installation - - -<div class="example"> -<pre class="example">cpt b grub && cpt i grub -grub-install --target=i386-pc /dev/sdX -grub-mkconfig -o /boot/grub/grub.cfg -</pre></div> - -</li><li> GRUB UEFI installation - - -<div class="example"> -<pre class="example">cpt b efibootmgr && cpt i efibootmgr -cpt b grub && cpt i grub - -grub-install --target=x86_64-efi \ - --efi-directory=esp \ - --bootloader-id=CarbsLinux - -grub-mkconfig -o /boot/grub/grub.cfg -</pre></div> -</li></ol> - -<hr> -<span id="Init-scripts"></span><div class="header"> -<p> -Next: <a href="#Fstab" accesskey="n" rel="next">Fstab</a>, Previous: <a href="#Bootloader" accesskey="p" rel="prev">Bootloader</a>, Up: <a href="#Making-your-system-bootable" accesskey="u" rel="up">Making your system bootable</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Init-scripts-1"></span><h4 class="subsection">1.5.2 Init scripts</h4> - -<p>Only thing left to do is installing the init-scripts, and now you are almost -ready to boot your system! -</p> -<div class="example"> -<pre class="example">cpt b carbs-init && cpt i carbs-init -</pre></div> - -<hr> -<span id="Fstab"></span><div class="header"> -<p> -Previous: <a href="#Init-scripts" accesskey="p" rel="prev">Init scripts</a>, Up: <a href="#Making-your-system-bootable" accesskey="u" rel="up">Making your system bootable</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Fstab-1"></span><h4 class="subsection">1.5.3 Fstab</h4> - -<p>You can now manually edit your fstab entry, or you can use the genfstab tool. -If you want to use the tool, exit the chroot and run the following: -</p> -<div class="example"> -<pre class="example">wget https://github.com/cemkeylan/genfstab/raw/master/genfstab -chmod +x genfstab -./genfstab -U /mnt >> /mnt/etc/fstab -</pre></div> - -<hr> -<span id="Post_002dinstallation"></span><div class="header"> -<p> -Previous: <a href="#Making-your-system-bootable" accesskey="p" rel="prev">Making your system bootable</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Post_002dinstallation-1"></span><h3 class="section">1.6 Post-installation</h3> - -<p>The base installation is now complete, you can now fine tune your system -according to your needs. Rest of these instructions are completely optional. -You can check the rest of the documentation to learn more about the system. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#KISS-repositories" accesskey="1">KISS repositories</a></td><td> </td><td align="left" valign="top">Acquire kiss repositories -</td></tr> -</table> - -<hr> -<span id="KISS-repositories"></span><div class="header"> -<p> -Up: <a href="#Post_002dinstallation" accesskey="u" rel="up">Post-installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="KISS-repositories-1"></span><h4 class="subsection">1.6.1 KISS repositories</h4> - -<p>While not 100% compatible with cpt, you can use kiss repositories in your -system the same way you are using the distribution repositories. Here is an -example for the KISS Linux Community repository. -</p> -<hr> -<span id="Init-System"></span><div class="header"> -<p> -Next: <a href="#Contribution-Guidelines" accesskey="n" rel="next">Contribution Guidelines</a>, Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Init-System-1"></span><h2 class="chapter">2 Init System</h2> - -<p>Carbs Linux init scripts are run by the init daemon (‘<samp>busybox</samp>’ by default) on -boot and shutdown processes. It also provides its own halting program named -shalt. This provides a portable method that doesn’t rely on non-POSIX external -programs. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Configuring-Init" accesskey="1">Configuring Init</a></td><td> </td><td align="left" valign="top">Ways to configure the init system -</td></tr> -<tr><td align="left" valign="top">• <a href="#Changing-Init-Program" accesskey="2">Changing Init Program</a></td><td> </td><td align="left" valign="top">Replace the default busybox init with something new -</td></tr> -</table> - -<hr> -<span id="Configuring-Init"></span><div class="header"> -<p> -Next: <a href="#Changing-Init-Program" accesskey="n" rel="next">Changing Init Program</a>, Up: <a href="#Init-System" accesskey="u" rel="up">Init System</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Configuring-Init-1"></span><h3 class="section">2.1 Configuring Init</h3> - -<p>There are three ways you can change the behaviour of the init system. Those are: -</p> -<ul> -<li> Kernel Command Line -</li><li> ‘<samp>/etc/init/rc.conf</samp>’ file -</li><li> Init Hooks -</li></ul> - -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Kernel-Command-Line" accesskey="1">Kernel Command Line</a></td><td> </td><td align="left" valign="top">Configure init through the boot parameters -</td></tr> -<tr><td align="left" valign="top">• <a href="#g_t_002fetc_002finit_002frcconf-file" accesskey="2">‘<samp>/etc/init/rc.conf</samp>’ file</a></td><td> </td><td align="left" valign="top">Configure init through the configuration file -</td></tr> -<tr><td align="left" valign="top">• <a href="#Init-Hooks" accesskey="3">Init Hooks</a></td><td> </td><td align="left" valign="top">Configure init through hooks -</td></tr> -</table> - -<hr> -<span id="Kernel-Command-Line"></span><div class="header"> -<p> -Next: <a href="#g_t_002fetc_002finit_002frcconf-file" accesskey="n" rel="next">‘<samp>/etc/init/rcconf</samp>’ file</a>, Up: <a href="#Configuring-Init" accesskey="u" rel="up">Configuring Init</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Kernel-Command-Line-1"></span><h4 class="subsection">2.1.1 Kernel Command Line</h4> - -<p>On GRUB, you can edit the kernel command line parameters, which will be parsed -as variables on the init system. Not all of the parameters will be acted upon, -but all of them will be set as variables on the init script. For example an -example command line, and how it is interpreted. -</p> -<div class="example"> -<pre class="example">BOOT_IMAGE=/boot/vmlinuz root=/dev/sda2 rw loglevel=3 quiet -</pre></div> - -<p>This command line will be parsed to set the following variables: -</p> -<div class="example"> -<pre class="example">BOOT_IMAGE=/boot/vmlinuz -root=/dev/sda2 -rw=1 -loglevel=3 -quiet=1 -</pre></div> - -<p>Some of these variables, such as ‘<samp>rw=/=ro</samp>’, ‘<samp>loglevel</samp>’, and ‘<samp>quiet</samp>’, will be -used by the init system to change the behaviour of the startup. -</p> -<hr> -<span id="g_t_002fetc_002finit_002frcconf-file"></span><div class="header"> -<p> -Next: <a href="#Init-Hooks" accesskey="n" rel="next">Init Hooks</a>, Previous: <a href="#Kernel-Command-Line" accesskey="p" rel="prev">Kernel Command Line</a>, Up: <a href="#Configuring-Init" accesskey="u" rel="up">Configuring Init</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="g_t_002fetc_002finit_002frc_002econf-file"></span><h4 class="subsection">2.1.2 ‘<samp>/etc/init/rc.conf</samp>’ file</h4> - -<p>However, the kernel command line isn’t the only place to set your boot -parameters. You can specify variables here as well, although note that the -kernel command line always gets the priority for these variables since they can -be set just before boot. -</p> -<hr> -<span id="Init-Hooks"></span><div class="header"> -<p> -Previous: <a href="#g_t_002fetc_002finit_002frcconf-file" accesskey="p" rel="prev">‘<samp>/etc/init/rcconf</samp>’ file</a>, Up: <a href="#Configuring-Init" accesskey="u" rel="up">Configuring Init</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Init-Hooks-1"></span><h4 class="subsection">2.1.3 Init Hooks</h4> - -<p>Init hooks are for custom personal commands that the user may want to add to -alter their boot. These can be used to load kernel modules, modify interfaces, -and lot more. Those hooks are added to the ‘<samp>/etc/init</samp>’ directory with the -hook name as the suffix. For example, a boot script will be placed as -‘<samp>/etc/init/my-hook.boot</samp>’. Currently, there are 4 hooks that the user can use. -</p> -<dl compact="compact"> -<dt>early-boot</dt> -<dd><p>Run after pseudo-filesystems are mounted. -</p></dd> -<dt>boot</dt> -<dd><p>Run before the boot stage is completed. -</p></dd> -<dt>pre.shutdown</dt> -<dd><p>Run first when shutting down. -</p></dd> -<dt>umount</dt> -<dd><p>Run just before filesystems are unmounted. -</p></dd> -<dt>post.shutdown</dt> -<dd><p>Run just before the system is halted. -</p></dd> -</dl> - -<hr> -<span id="Changing-Init-Program"></span><div class="header"> -<p> -Previous: <a href="#Configuring-Init" accesskey="p" rel="prev">Configuring Init</a>, Up: <a href="#Init-System" accesskey="u" rel="up">Init System</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Changing-Init-Program-1"></span><h3 class="section">2.2 Changing Init Program</h3> - -<p>By default, Carbs Linux comes preinstalled with ‘<samp>busybox-init</samp>’, but this can -easily be replaced without any issues. Currently, available init systems are: -</p> -<ul> -<li> ‘<samp>sinit</samp>’ -</li><li> ‘<samp>busybox</samp>’ -</li><li> ‘<samp>runit</samp>’ -</li><li> ‘<samp>shinit</samp>’ -</li></ul> - -<p>This example is for runit, but it will work with all init systems packaged in the -distribution repositories. See the ‘<samp>cpt-alternatives(1)</samp>’ manual page for more -details. -</p> -<div class="example"> -<pre class="example">cpt a runit /usr/bin/init -cpt a runit /usr/bin/poweroff -cpt a runit /usr/bin/reboot -</pre></div> - -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Rebooting-after-changing-init" accesskey="1">Rebooting after changing init</a></td><td> </td><td align="left" valign="top">Ways to reboot after replacing the init system -</td></tr> -</table> - -<hr> -<span id="Rebooting-after-changing-init"></span><div class="header"> -<p> -Up: <a href="#Changing-Init-Program" accesskey="u" rel="up">Changing Init Program</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Rebooting-after-changing-init-1"></span><h4 class="subsection">2.2.1 Rebooting after changing init</h4> - -<p>After switching init systems, your running init system may not accept the -new poweroff commands. You will need to reboot/poweroff using the running init’s -utilities for the new utilities to work. These commands are for the init system -currently running on your system and not the one you are switching to. -</p> -<table> -<thead><tr><th>Program</th><th>Command</th></tr></thead> -<tr><td>busybox</td><td>‘<samp>busybox reboot</samp>’</td></tr> -<tr><td>runit</td><td>‘<samp>runit-init 6</samp>’</td></tr> -<tr><td>shinit/sinit</td><td>‘<samp>kill -s INT 1</samp>’</td></tr> -</table> - -<hr> -<span id="Contribution-Guidelines"></span><div class="header"> -<p> -Next: <a href="#GNU-Free-Documentation-License" accesskey="n" rel="next">GNU Free Documentation License</a>, Previous: <a href="#Init-System" accesskey="p" rel="prev">Init System</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Contribution-Guidelines-1"></span><h2 class="chapter">3 Contribution Guidelines</h2> - -<p>Thanks for taking your time to contribute! To maintain stylistic behaviour -throughout the repositories, one must adhere to these conventions. Exceptions -and changes may occur with good reasoning. -</p> -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Conventions" accesskey="1">Conventions</a></td><td> </td><td align="left" valign="top">Conventions of the distribution -</td></tr> -</table> - -<hr> -<span id="Conventions"></span><div class="header"> -<p> -Up: <a href="#Contribution-Guidelines" accesskey="u" rel="up">Contribution Guidelines</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Conventions-1"></span><h3 class="section">3.1 Conventions</h3> - - - -<dl compact="compact"> -<dt>[<span id="g_t0010"></span>0010]</dt> -<dd><p>Try to keep the file readable. -</p><dl compact="compact"> -<dt>[<span id="g_t0011"></span>0011]</dt> -<dd><p>Characters on a line shouldn’t exceed 100 characters. -</p></dd> -<dt>[<span id="g_t0012"></span>0012]</dt> -<dd><p>Make sure you don’t have code commented out during -commit. Uncomment them or remove them completely. -</p></dd> -<dt>[<span id="g_t0013"></span>0013]</dt> -<dd><p>Do not add comments following the code, add them to the -top of the code. It makes it harder to read, and lines longer. Here is an example: -</p></dd> -</dl> - -<div class="example"> -<pre class="example"># Good way of commenting. -your code goes here - -your code goes here # Avoid this way of commenting. -</pre></div> -</dd> -</dl> - -<table class="menu" border="0" cellspacing="0"> -<tr><td align="left" valign="top">• <a href="#Shell-Conventions" accesskey="1">Shell Conventions</a></td><td> </td><td align="left" valign="top">Conventions for shell scripts -</td></tr> -<tr><td align="left" valign="top">• <a href="#Repository-Conventions" accesskey="2">Repository Conventions</a></td><td> </td><td align="left" valign="top">Conventions for repository build scripts -</td></tr> -</table> - -<hr> -<span id="Shell-Conventions"></span><div class="header"> -<p> -Next: <a href="#Repository-Conventions" accesskey="n" rel="next">Repository Conventions</a>, Up: <a href="#Conventions" accesskey="u" rel="up">Conventions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Shell-Conventions-1"></span><h4 class="subsection">3.1.1 Shell Conventions</h4> - -<p>Shell is central to Carbs Linux projects. Most of the tools and packages are -written in POSIX sh. -</p> -<dl compact="compact"> -<dt>[<span id="g_t1010"></span>1010]</dt> -<dd><p>Use 4 spaces for indentation, don’t use tabs. -</p></dd> -<dt>[<span id="g_t1020"></span>1020]</dt> -<dd><p>Make sure you don’t use bash-specific code. -</p></dd> -<dt>[<span id="g_t1030"></span>1030]</dt> -<dd><p>Make sure you lint your code with ‘<samp>shellcheck</samp>’ and if -you are new to POSIX sh, use ‘<samp>checkbashisms</samp>’. -</p></dd> -<dt>[<span id="g_t1040"></span>1040]</dt> -<dd><p>Don’t spawn new processes if you don’t absolutely need -to, especially during string manipulation. -</p><dl compact="compact"> -<dt>[<span id="g_t1041"></span>1041]</dt> -<dd><p>Never use a program for text manupilation that isn’t -defined in the POSIX standard. This includes ‘<samp>gawk</samp>’ and ‘<samp>perl</samp>’. -</p></dd> -<dt>[<span id="g_t1042"></span>1042]</dt> -<dd><p>Instead of <code>$(basename $file)</code>, use <code>${file##*}</code>. -</p></dd> -<dt>[<span id="g_t1043"></span>1043]</dt> -<dd><p>Instead of <code>$(dirname $file)</code>, use <code>${file%/*}</code>. -</p></dd> -</dl> - -<div class="example"> -<pre class="example"># This is the same thing as basename /path/to/test.asc .asc - -$ file=/path/to/test.asc file=${file##*/} file=${file%.asc} -$ echo $file -test -</pre></div> -</dd> -<dt>[<span id="g_t1050"></span>1050]</dt> -<dd><p>Instead of backticks, use <code>$(..)</code>. -</p></dd> -</dl> - -<hr> -<span id="Repository-Conventions"></span><div class="header"> -<p> -Previous: <a href="#Shell-Conventions" accesskey="p" rel="prev">Shell Conventions</a>, Up: <a href="#Conventions" accesskey="u" rel="up">Conventions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="Repository-Conventions-1"></span><h4 class="subsection">3.1.2 Repository Conventions</h4> - -<p>Repository conventions are important in order to ensure every package resemble -themselves. Here are the things to keep in mind: -</p> -<dl compact="compact"> -<dt>[<span id="g_t2010"></span>2010]</dt> -<dd><p>Prefer tarballs over git packages unless there is a -sensible reason. Here are some: -</p><ul> -<li> Every patch is a new release. (See <a href="https://github.com/vim/vim">vim</a>) -</li><li> There are no releases. (See <a href="https://git.suckless.org/sbase">sbase</a>) -</li><li> Following a development branch. -</li><li> There has been a long time since the latest release, but upstream is far -ahead. -</li></ul> -</dd> -<dt>[<span id="g_t2020"></span>2020]</dt> -<dd><p>Prefer sources without a dependency to ‘<samp>automake</samp>’. There -are usually distribution tarballs that are ‘<samp>autoconf</samp>’’ed. Don’t submit tarballs -with an automake dependency unless you are ‘<samp>sure</samp>’ there is no alternative. -</p></dd> -<dt>[<span id="g_t2030"></span>2030]</dt> -<dd><p>Avoid these packages: -</p><dl compact="compact"> -<dt>dbus</dt> -<dd><p>Usually can be disabled by <code>--disable-dbus</code>. -</p></dd> -<dt>gettext</dt> -<dd><p>Usually can be disabled by <code>--disable-nls</code>. -</p></dd> -</dl> -</dd> -<dt>[<span id="g_t2040"></span>2040]</dt> -<dd><ul> -<li> Always install a package to the ‘<samp>/usr</samp>’ prefix. -</li><li> All binaries should go to ‘<samp>/usr/bin</samp>’, not ‘<samp>/usr/sbin</samp>’ or any other directory. -</li><li> All libraries should go to ‘<samp>/usr/lib</samp>’. -</li></ul> -</dd> -<dt>[<span id="g_t2050"></span>2050]</dt> -<dd><p>All build files on the repository should be a POSIX -shell script, and must start with <code>#!/bin/sh -e</code>. -</p></dd> -</dl> - -<p>The next section is about package templates that should be used in order to -ensure stylistic consistency. Note that the option configurations shouldn’t be -taken literally, they are meant as examples. -</p> -<ol> -<li> Make [<span id="g_t2210"></span>2210] - - -<div class="example"> -<pre class="example">#!/bin/sh -e - -make -make DESTDIR="$1" PREFIX=/usr install -</pre></div> - -</li><li> Configure/Make [<span id="g_t2211"></span>2211] - - -<div class="example"> -<pre class="example">#!/bin/sh -e - -./configure \ - --prefix=/usr \ - --disable-option \ - --enable-option - -make -make DESTDIR="$1" install -</pre></div> - -</li><li> Autoconf/Automake [<span id="g_t2212"></span>2212] - - -<p>See <a href="#g_t2020">2020</a> -</p> -<div class="example"> -<pre class="example">#!/bin/sh -e - -autoreconf -fi - -./configure \ - --prefix=/usr \ - --disable-option \ - --enable-option - -make -make DESTDIR="$1" install -</pre></div> - -</li><li> Meson [<span id="g_t2220"></span>2220] - - -<div class="example"> -<pre class="example">#!/bin/sh -e - -export DESTDIR=$1 - -meson \ - --prefix=/usr \ - -Doption=false \ - -Doption2=true \ - . output - -ninja -C output -ninja -C output install -</pre></div> - -</li><li> Cmake [<span id="g_t2230"></span>2230] - - -<div class="example"> -<pre class="example">#!/bin/sh -e - -export DESTDIR=$1 - -cmake -B build \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release \ - -DOPTION=ON - -cmake --build build -cmake --install build -</pre></div> - -</li><li> Go [<span id="g_t2240"></span>2240] - - -<div class="example"> -<pre class="example">#!/bin/sh -e - -export GOPATH=$PWD/gopath -trap "go clean -modcache" EXIT INT -go mod vendor - -go build -install -Dm755 program "$1/usr/bin/program" -</pre></div> - -</li><li> Python [<span id="g_t2241"></span>2241] - - -<div class="example"> -<pre class="example">#!/bin/sh -e - -python setup.py build -python setup.py install --prefix=/usr --root="$1" -</pre></div> -</li></ol> - -<hr> -<span id="GNU-Free-Documentation-License"></span><div class="header"> -<p> -Previous: <a href="#Contribution-Guidelines" accesskey="p" rel="prev">Contribution Guidelines</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p> -</div> -<span id="GNU-Free-Documentation-License-1"></span><h2 class="appendix">Appendix A GNU Free Documentation License</h2> - -<div align="center">Version 1.3, 3 November 2008 -</div> -<div class="display"> -<pre class="display">Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. -<a href="http://fsf.org/">http://fsf.org/</a> - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. -</pre></div> - -<ol start="0"> -<li> PREAMBLE - -<p>The purpose of this License is to make a manual, textbook, or other -functional and useful document <em>free</em> -in the sense of freedom: to assure everyone the effective freedom -to copy and redistribute it, with or without modifying it, either -commercially or noncommercially. Secondarily, this License -preserves for the author and publisher a way to get credit for -their work, while not being considered responsible for -modifications made by others. -</p> -<p>This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. -It complements the GNU General Public License, which is a copyleft -license designed for free software. -</p> -<p>We have designed this License in order to use it for manuals for -free software, because free software needs free documentation: -a free program should come with manuals providing the same freedoms -that the software does. But this License is not limited to -software manuals; it can be used for any textual work, regardless -of subject matter or whether it is published as a printed book. We -recommend this License principally for works whose purpose is -instruction or reference. -</p> -</li><li> APPLICABILITY AND DEFINITIONS - -<p>This License applies to any manual or other work, in any medium, -that contains a notice placed by the copyright holder saying it can -be distributed under the terms of this License. Such a notice -grants a world-wide, royalty-free license, unlimited in duration, -to use that work under the conditions stated herein. The -"Document", below, refers to any such manual or work. Any member -of the public is a licensee, and is addressed as "you". You accept -the license if you copy, modify or distribute the work in a way -requiring permission under copyright law. -</p> -<p>A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. -</p> -<p>A "Secondary Section" is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document’s overall -subject (or to related matters) and contains nothing that could -fall directly within that overall subject. (Thus, if the Document -is in part a textbook of mathematics, a Secondary Section may not -explain any mathematics.) The relationship could be a matter of -historical connection with the subject or with related matters, or -of legal, commercial, philosophical, ethical or political position -regarding them. -</p> -<p>The "Invariant Sections" are certain Secondary Sections whose -titles are designated, as being those of Invariant Sections, in the -notice that says that the Document is released under this License. -If a section does not fit the above definition of Secondary then it -is not allowed to be designated as Invariant. The Document may -contain zero Invariant Sections. If the Document does not identify -any Invariant Sections then there are none. -</p> -<p>The "Cover Texts" are certain short passages of text that are -listed, as Front-Cover Texts or Back-Cover Texts, in the notice -that says that the Document is released under this License. -A Front-Cover Text may be at most 5 words, and a Back-Cover Text -may be at most 25 words. -</p> -<p>A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed -of pixels) generic paint programs or (for drawings) some widely -available drawing editor, and that is suitable for input to text -formatters or for automatic translation to a variety of formats -suitable for input to text formatters. A copy made in an otherwise -Transparent file format whose markup, or absence of markup, has -been arranged to thwart or discourage subsequent modification by -readers is not Transparent. An image format is not Transparent if -used for any substantial amount of text. A copy that is not -"Transparent" is called "Opaque". -</p> -<p>Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, -SGML or XML using a publicly available DTD, and standard-conforming -simple HTML, PostScript or PDF designed for human modification. -Examples of transparent image formats include PNG, XCF and JPG. -Opaque formats include proprietary formats that can be read and -edited only by proprietary word processors, SGML or XML for which -the DTD and/or processing tools are not generally available, and -the machine-generated HTML, PostScript or PDF produced by some word -processors for output purposes only. -</p> -<p>The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the -material this License requires to appear in the title page. For -works in formats which do not have any title page as such, "Title -Page" means the text near the most prominent appearance of the -work’s title, preceding the beginning of the body of the text. -</p> -<p>The "publisher" means any person or entity that distributes copies -of the Document to the public. -</p> -<p>A section "Entitled XYZ" means a named subunit of the Document -whose title either is precisely XYZ or contains XYZ in parentheses -following text that translates XYZ in another language. (Here XYZ -stands for a specific section name mentioned below, such as -"Acknowledgements", "Dedications", "Endorsements", or "History".) -To "Preserve the Title" of such a section when you modify the -Document means that it remains a section "Entitled XYZ" according -to this definition. -</p> -<p>The Document may include Warranty Disclaimers next to the notice -which states that this License applies to the Document. These -Warranty Disclaimers are considered to be included by reference in -this License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and -has no effect on the meaning of this License. -</p> -</li><li> VERBATIM COPYING - -<p>You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License -applies to the Document are reproduced in all copies, and that you -add no other conditions whatsoever to those of this License. You -may not use technical measures to obstruct or control the reading -or further copying of the copies you make or distribute. However, -you may accept compensation in exchange for copies. If you -distribute a large enough number of copies you must also follow the -conditions in section 3. -</p> -<p>You may also lend copies, under the same conditions stated above, -and you may publicly display copies. -</p> -</li><li> COPYING IN QUANTITY - -<p>If you publish printed copies (or copies in media that commonly -have printed covers) of the Document, numbering more than 100, and -the Document’s license notice requires Cover Texts, you must -enclose the copies in covers that carry, clearly and legibly, all -these Cover Texts: Front-Cover Texts on the front cover, and -Back-Cover Texts on the back cover. Both covers must also clearly -and legibly identify you as the publisher of these copies. The -front cover must present the full title with all words of the title -equally prominent and visible. You may add other material on the -covers in addition. Copying with changes limited to the covers, as -long as they preserve the title of the Document and satisfy these -conditions, can be treated as verbatim copying in other respects. -</p> -<p>If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto -adjacent pages. -</p> -<p>If you publish or distribute Opaque copies of the Document -numbering more than 100, you must either include a machine-readable -Transparent copy along with each Opaque copy, or state in or with -each Opaque copy a computer-network location from which the general -network-using public has access to download using public-standard -network protocols a complete Transparent copy of the Document, free -of added material. If you use the latter option, you must take -reasonably prudent steps, when you begin distribution of Opaque -copies in quantity, to ensure that this Transparent copy will -remain thus accessible at the stated location until at least one -year after the last time you distribute an Opaque copy (directly or -through your agents or retailers) of that edition to the public. -</p> -<p>It is requested, but not required, that you contact the authors of -the Document well before redistributing any large number of copies, -to give them a chance to provide you with an updated version of the -Document. -</p> -</li><li> MODIFICATIONS - -<p>You may copy and distribute a Modified Version of the Document -under the conditions of sections 2 and 3 above, provided that you -release the Modified Version under precisely this License, with the -Modified Version filling the role of the Document, thus licensing -distribution and modification of the Modified Version to whoever -possesses a copy of it. In addition, you must do these things in -the Modified Version: -</p> -<ol type="A" start="1"> -<li> Use in the Title Page (and on the covers, if any) a title -distinct from that of the Document, and from those of previous -versions (which should, if there were any, be listed in the -History section of the Document). You may use the same title as -a previous version if the original publisher of that version -gives permission. - -</li><li> List on the Title Page, as authors, one or more persons or -entities responsible for authorship of the modifications in the -Modified Version, together with at least five of the principal -authors of the Document (all of its principal authors, if it has -fewer than five), unless they release you from this requirement. - -</li><li> State on the Title page the name of the publisher of the -Modified Version, as the publisher. - -</li><li> Preserve all the copyright notices of the Document. - -</li><li> Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. - -</li><li> Include, immediately after the copyright notices, a license -notice giving the public permission to use the Modified Version -under the terms of this License, in the form shown in the -Addendum below. - -</li><li> Preserve in that license notice the full lists of Invariant -Sections and required Cover Texts given in the Document’s -license notice. - -</li><li> Include an unaltered copy of this License. - -</li><li> Preserve the section Entitled "History", Preserve its Title, and -add to it an item stating at least the title, year, new authors, -and publisher of the Modified Version as given on the Title -Page. If there is no section Entitled "History" in the Document, -create one stating the title, year, authors, and publisher of -the Document as given on its Title Page, then add an item -describing the Modified Version as stated in the previous -sentence. - -</li><li> Preserve the network location, if any, given in the Document -for public access to a Transparent copy of the Document, and -likewise the network locations given in the Document for -previous versions it was based on. These may be placed in the -"History" section. You may omit a network location for a work -that was published at least four years before the Document -itself, or if the original publisher of the version it refers -to gives permission. - -</li><li> For any section Entitled "Acknowledgements" or "Dedications", -Preserve the Title of the section, and preserve in the section -all the substance and tone of each of the contributor -acknowledgements and/or dedications given therein. - -</li><li> Preserve all the Invariant Sections of the Document, unaltered -in their text and in their titles. Section numbers or the -equivalent are not considered part of the section titles. - -</li><li> Delete any section Entitled "Endorsements". Such a section may -not be included in the Modified Version. - -</li><li> Do not retitle any existing section to be Entitled -"Endorsements" or to conflict in title with any Invariant -Section. - -</li><li> Preserve any Warranty Disclaimers. -</li></ol> - -<p>If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version’s license notice. -These titles must be distinct from any other section titles. -</p> -<p>You may add a section Entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties—for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. -</p> -<p>You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. -</p> -<p>The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. -</p> -</li><li> COMBINING DOCUMENTS - -<p>You may combine the Document with other documents released under -this License, under the terms defined in section 4 above for -modified versions, provided that you include in the combination all -of the Invariant Sections of all of the original documents, -unmodified, and list them all as Invariant Sections of your -combined work in its license notice, and that you preserve all -their Warranty Disclaimers. -</p> -<p>The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name -but different contents, make the title of each such section unique -by adding at the end of it, in parentheses, the name of the -original author or publisher of that section if known, or else -a unique number. Make the same adjustment to the section titles in -the list of Invariant Sections in the license notice of the -combined work. -</p> -<p>In the combination, you must combine any sections Entitled -"History" in the various original documents, forming one section -Entitled "History"; likewise combine any sections Entitled -"Acknowledgements", and any sections Entitled "Dedications". You -must delete all sections Entitled "Endorsements." -</p> -</li><li> COLLECTIONS OF DOCUMENTS - -<p>You may make a collection consisting of the Document and other -documents released under this License, and replace the individual -copies of this License in the various documents with a single copy -that is included in the collection, provided that you follow the -rules of this License for verbatim copying of each of the documents -in all other respects. -</p> -<p>You may extract a single document from such a collection, and -distribute it individually under this License, provided you insert -a copy of this License into the extracted document, and follow this -License in all other respects regarding verbatim copying of that -document. -</p> -</li><li> AGGREGATION WITH INDEPENDENT WORKS - -<p>A compilation of the Document or its derivatives with other -separate and independent documents or works, in or on a volume of -a storage or distribution medium, is called an "aggregate" if the -copyright resulting from the compilation is not used to limit the -legal rights of the compilation’s users beyond what the individual -works permit. When the Document is included in an aggregate, this -License does not apply to the other works in the aggregate which -are not themselves derivative works of the Document. -</p> -<p>If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half -of the entire aggregate, the Document’s Cover Texts may be placed -on covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic -form. Otherwise they must appear on printed covers that bracket -the whole aggregate. -</p> -</li><li> TRANSLATION - -<p>Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of -section 4. Replacing Invariant Sections with translations requires -special permission from their copyright holders, but you may -include translations of some or all Invariant Sections in addition -to the original versions of these Invariant Sections. You may -include a translation of this License, and all the license notices -in the Document, and any Warranty Disclaimers, provided that you -also include the original English version of this License and the -original versions of those notices and disclaimers. In case of -a disagreement between the translation and the original version of -this License or a notice or disclaimer, the original version will -prevail. -</p> -<p>If a section in the Document is Entitled "Acknowledgements", -"Dedications", or "History", the requirement (section 4) to -Preserve its Title (section 1) will typically require changing the -actual title. -</p> -</li><li> TERMINATION - -<p>You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, -and will automatically terminate your rights under this License. -</p> -<p>However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the -copyright holder fails to notify you of the violation by some -reasonable means prior to 60 days after the cessation. -</p> -<p>Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from -that copyright holder, and you cure the violation prior to 30 days -after your receipt of the notice. -</p> -<p>Termination of your rights under this section does not terminate -the licenses of parties who have received copies or rights from you -under this License. If your rights have been terminated and not -permanently reinstated, receipt of a copy of some or all of the -same material does not give you any rights to use it. -</p> -</li><li> FUTURE REVISIONS OF THIS LICENSE - -<p>The Free Software Foundation may publish new, revised versions of -the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>. -</p> -<p>Each version of the License is given a distinguishing version -number. If the Document specifies that a particular numbered -version of this License "or any later version" applies to it, you -have the option of following the terms and conditions either of -that specified version or of any later version that has been -published (not as a draft) by the Free Software Foundation. If -the Document does not specify a version number of this License, -you may choose any version ever published (not as a draft) by the -Free Software Foundation. If the Document specifies that a proxy -can decide which future versions of this License can be used, that -proxy’s public statement of acceptance of a version permanently -authorizes you to choose that version for the Document. -</p> -</li><li> RELICENSING - -<p>"Massive Multiauthor Collaboration Site" (or "MMC Site") means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. -A public wiki that anybody can edit is an example of such -a server. A "Massive Multiauthor Collaboration" (or "MMC") -contained in the site means any set of copyrightable works thus -published on the MMC site. -</p> -<p>"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, -a not-for-profit corporation with a principal place of business in -San Francisco, California, as well as future copyleft versions of -that license published by that same organization. -</p> -<p>"Incorporate" means to publish or republish a Document, in whole -or in part, as part of another Document. -</p> -<p>An MMC is "eligible for relicensing" if it is licensed under this -License, and if all works that were first published under this -License somewhere other than this MMC, and subsequently -incorporated in whole or in part into the MMC, (1) had no cover -texts or invariant sections, and (2) were thus incorporated prior -to November 1, 2008. -</p> -<p>The operator of an MMC Site may republish an MMC contained in the -site under CC-BY-SA on the same site at any time before August 1, -2009, provided the MMC is eligible for relicensing. -</p></li></ol> - - -<span id="ADDENDUM-How-to-use-this-License-for-your-documents"></span><span id="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></span><h3 class="appendixsec">A.1 ADDENDUM: How to use this License for your documents</h3> - -<p>To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: -</p> -<div class="example"> -<pre class="example">Copyright (C) YEAR YOUR NAME. -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 -or any later version published by the Free Software Foundation; -with no Invariant Sections, no Front-Cover Texts, and no Back-Cover -Texts. A copy of the license is included in the section entitled ``GNU -Free Documentation License''. -</pre></div> - -<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the "with…Texts." line with this: -</p> -<div class="example"> -<pre class="example">with the Invariant Sections being LIST THEIR TITLES, with -the Front-Cover Texts being LIST, and with the Back-Cover Texts -being LIST. -</pre></div> - -<p>If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. -</p> -<p>If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. -</p> -<hr> - - - -</body> -</html> |