qi: doc: improve 'Extracting packages' chapter
[dragora.git] / qi / doc / qi.info
blobe7a4916468bddb6fa69e482eed1685c687b7cfe0
1 This is qi.info, produced by makeinfo version 6.6 from qi.texi.
3 This user guide is for Qi (version 1.0-rc59, 1 April 2019), which is a
4 simple but well-integrated package manager.
6    Copyright © 2019 Matias Andres Fonzo, Santiago del Estero, Argentina.
8      Permission is granted to copy, distribute and/or modify this
9      document under the terms of the GNU Free Documentation License,
10      Version 1.3 or any later version published by the Free Software
11      Foundation; with no Invariant Sections, with no Front-Cover Texts,
12      and with no Back-Cover Texts.  A copy of the license is included in
13      the section entitled "GNU Free Documentation License".
14 INFO-DIR-SECTION Package management
15 START-INFO-DIR-ENTRY
16 * Qi: (qi).                   A user-friendly package manager.
17 END-INFO-DIR-ENTRY
19 \x1f
20 File: qi.info,  Node: Top,  Next: Introduction,  Up: (dir)
22 Qi user guide
23 *************
25 This user guide is for Qi (version 1.0-rc59, 1 April 2019).
27 * Menu:
29 * Introduction::              Description and features of qi
30 * Invoking qi::               Command-line options
31 * The qirc file::             Configuration file
32 * Packages::                  Managing packages
33 * Recipes::                   Building packages
34 * Order files::               Handling build order
35 * Creating packages::         Making Qi packages
36 * Examining packages::        Debugging purposes
37 * Exit status::               Exit codes
38 * License::                   GNU Free Documentation License
39 * Index::
42    Copyright (C) 2019 Matias Fonzo.
44    Qi's home page can be found at <http://www.dragora.org>.
45 Send bug reports or suggestions to <dragora-users@nongnu.org>.
47 \x1f
48 File: qi.info,  Node: Introduction,  Next: Invoking qi,  Prev: Top,  Up: Top
50 1 Introduction
51 **************
53 Qi is a simple but well-integrated package manager.  It can creates,
54 install, remove, and upgrade software packages.  Qi produces binary
55 packages using recipe names, these are files containing specific
56 instructions to build every source.  Qi can manage multiple packages
57 under a single directory hierarchy, this method allows to maintain a set
58 of packages and multiple versions of them.  This means that Qi could be
59 used as the main package manager or complement the existing one.
61    Qi offers a friendly command line interface, a global configuration
62 file, a simple recipe layout to deploy software packages; also works
63 with binary packages in parallel, speeding up installations and packages
64 in production.  The used format for packages is a simplified but safe
65 POSIX pax archive compressed with lzip.
67    Qi is a modern (POSIX-compliant) shell script released under the
68 terms of the GNU General Public License.  There are only two major
69 dependencies for the magic: graft(1) and tarlz(1), the rest is expected
70 to be found in any Unix-like system.
72 \x1f
73 File: qi.info,  Node: Invoking qi,  Next: The qirc file,  Prev: Introduction,  Up: Top
75 2 Invoking qi
76 *************
78 This chapter describes the synopsis and command line options for invoke
79 Qi.
81      Usage: qi [OPTION]... [FILE]...
83 One mandatory option specifies the operation that 'qi' should perform,
84 other options are meant to detail how this operation should be
85 performed.
87 qi supports the following options to operate:
89 '-b'
90      Build package using recipe names.
92 '-c'
93      Create .tlz package from directory.
95 '-d'
96      Delete packages.
98 '-i'
99      Install packages.
101 '-o'
102      Resolve build order through .order files.
104 '-u'
105      Update packages (implies -i, -d and -p options).
107 '-w'
108      Warn about files that will be linked.
110 '-x'
111      Extract a package for debugging purposes.
113 There are common options between modes:
115 '-N'
116      Do not read the configuration file.
118      This will omit any value on the qirc file.
120 '-P <DIR>'
121      Package directory for installations.
123      This option sets '${packagedir}'.
125      Only valid for -i, -d, or -u options.
127 '-f'
128      Force option.
130      This option can force the build of a recipe, or force the update of
131      a pre-existing package.
133      Only valid for -b, -u options.
135 '-t <DIR>'
136      Target directory for symbolic links.
138      This option sets '${targetdir}'.
140      Only valid for -i, -d, or -u options.
142 '-k'
143      Keep (don't delete) '${srcdir}' or '${destdir}' on build mode, keep
144      (don't delete) package directory on delete mode.
146      Only valid for -b, -d or -u options.
148 '-p'
149      Prune conflicts on package installations.
151      This option may proceed with the package installation if one or
152      more conflicts occur.
154 '-r /rootdir'
155      Use the fully qualified named directory as the root directory for
156      all qi operations.  The target directory and package directory will
157      be relative to the specified directory, including the log file for
158      graft.
160 '-v'
161      Be verbose (a 2nd -v gives more).
163 Options for build mode (-b):
165 '-O <DIR>'
166      Where the produced packages are written.
168      This option sets '${outdir}'.
170 '-W <DIR>'
171      Where archives, patches, and recipes are expected.
173      This option sets '${worktree}'.
175 '-Z <DIR>'
176      Where (compressed) sources will be found.
178      This option sets '${tardir}'.
180 '-a'
181      Architecture to use.
183      Default value is obtained via uname(1) as 'uname -m'.
185 '-j'
186      Parallel jobs for the compiler.
188      If not specified, default sets to 1.
190 '-1'
191      Increment release number ('${release}' + 1).
193      It will be omitted if the -n option is being used.
195 '-n'
196      Don't create a .tlz package.
198 '-S'
199      Selects the option to skip completed recipes.
201      This means, in interactive mode, when the dialog to summarize
202      recipes is showed.
204 Informative options:
206 '-L'
207      Print default directory locations.
209      This will print the target directory, package directory, working
210      tree, the directory for tarballs, and the output directory for
211      produced packages.
213 '-h'
214      Display the help describing the options and then exit.
216 '-V'
217      Print the version number and license information.  The version
218      number should be included in all bug reports.
220 Expected arguments beyond of options are package directories and regular
221 files: recipes or files ending in .tlz, .order.  When FILE is -, qi can
222 read from the standard input.  See examples in *note Packages::.
224 \x1f
225 File: qi.info,  Node: The qirc file,  Next: Packages,  Prev: Invoking qi,  Up: Top
227 3 The qirc file
228 ***************
230 The global 'qirc' file offers a way to define variables and tools (such
231 as a download manager) for default use.  This file is used by qi at
232 runtime for e.g to build, install, remove or upgrade packages.
234 It has the following rules:
236    * Variables must be declared as 'name=value'.
238    * Declaration of values should only take one line, no line break.
240    * For security reasons, assignments like 'name=$var' are only
241      interpreted as literal.
243 The command line options related to the package directory and target
244 directory plus some of the options used for the build mode can override
245 some values in 'qirc'.  See *note Invoking qi::.
247 The order in which qi looks for this file is:
249   1. '${HOME}/.qirc' Effective user.
251   2. '${sysconfdir}/qirc' System-wide.
253    If you intend to run qi as effective user, the file
254 '${sysconfdir}/qirc' could be copied to '${HOME}/.qirc' setting the
255 paths for '${packagedir}' and '${targetdir}' according to the '$HOME'.
257 \x1f
258 File: qi.info,  Node: Packages,  Next: Recipes,  Prev: The qirc file,  Up: Top
260 4 Packages
261 **********
263 A package is a suite of programs usually distributed in binary form
264 which may also contain manual pages, documentation, or any other file
265 associated to a specific software.
267    The package format used by qi is a simplified POSIX pax archive
268 compressed with lzip.  The file extension for packages ends in .tlz
270 Both package installation and package de-installation are managed using
271 two important (internal) variables: '${packagedir}' and '${targetdir}',
272 these values can be changed in the configuration file or via options.
274    '${packagedir}' is a common directory tree where the package contents
275 will be decompressed (will reside).
277    '${targetdir}' is a target directory where the links will be made by
278 graft(1) taking '${packagedir}/package_name' into account.
280 Packages are installed in self-contained directory trees and symbolic
281 links from a common area are made to the package files.  This allows
282 multiple versions of the same package to co-exist on the one system.
284 4.1 Package conflicts
285 =====================
287 All the links to install or remove a package are handled by graft(1).
288 Since multiple packages can be installed or removed at the same time,
289 certain conflicts may arise between the packages.
291 graft(1) defines a CONFLICT as one of the following conditions:
293    * If the package object is a directory and the target object exists
294      but is not a directory.
296    * If the package object is not a directory and the target object
297      exists and is not a symbolic link.
299    * If the package object is not a directory and the target object
300      exists and is a symbolic link to something other than the package
301      object.
303 The default behavior of qi for an incoming package is to ABORT if a
304 conflict arises.  When a package is going to be deleted, qi tells to
305 graft(1) to remove those parts that are not in conflict, leaving the
306 links to the belonging package.  This behavior can be forced if the -p
307 option is given.
309 4.2 Installing packages
310 =======================
312 To install a single package, simply type:
314      qi -i coreutils-8.30-i586+1.tlz
316 To install multiple packages at once, type:
318      qi -i gcc-8.3.0-i586+1.tlz rafaela-2.2-i586+1.tlz ...
320 Warn about the files that will be linked:
322      qi -w bash-5.0-i586+1.tlz
324    This is to verify the content of a package before installing it.
326 See the process of an installation (very verbose):
328      qi -i -v mariana-3.0-i586+1.tlz
330    A second -v gives more.
332 Installing package in a different location:
334      qi -r /media/floppy -i lzip-1.21-i586+1.tlz
336    The -r option assumes '${targetdir}' and '${packagedir}'.  See:
338      qi -r /home/selk -P /pkgs -t / -i lzip-1.21-i586+1.tlz
340    In this case the content of "lzip-1.21-i586+1.tlz" will be
341 decompressed into '/home/selk/pkgs/lzip-1.21-i586+1'.  Assuming that the
342 main binary for lzip is under
343 '/home/selk/pkgs/lzip-1.21-i586+1/usr/bin/' the target for "usr/bin"
344 will be created at '/home/selk'.  Considering that you have exported the
345 'PATH' as '${HOME}/usr/bin', now the system is able to see the recent
346 lzip.
348 Installing from a list of packages using standard input:
350      cat FILELIST.txt | qi -i -
352    The list of packages must contain full path names to be passed in the
353 installation, e.g:
354 /var/cache/qi/packages/x86_64/devel/tcl-8.6.9-x86_64+1.tlz
355 /var/cache/qi/packages/x86_64/devel/tk-8.6.9.1-x86_64+1.tlz
356 /var/cache/qi/packages/x86_64/devel/vala-0.42.3-x86_64+1.tlz
358 4.3 Removing packages
359 =====================
361 To remove a package, simply type:
363      qi -d xz-5.2.4-i586+1.tlz
365 Delete mode will match the package name using '${packagedir}' as prefix.
366 For example, if the value of '${packagedir}' is set to /usr/local/pkgs,
367 this will be equal to:
369      qi -d /usr/local/pkgs/xz-5.2.4-i586+1
371 Detailed output (very verbose):
373      qi -d -v /usr/local/pkgs/xz-5.2.4-i586+1
375    A second -v gives more.
377 By default the delete mode does not preserve a package directory after
378 removing its links from '${targetdir}', but this behavior can be changed
379 if the -k option is passed:
381      qi -d -k /usr/local/pkgs/lzip-1.21-i586+1
383    This means that the links to the package can be reactivated, later:
385      cd /usr/local/pkgs && graft -i lzip-1.21-i586+1
387 Removing package from a different location:
389      qi -r /home/cthulhu -P /pkgs -t / -d xz-5.2.4-i586+1
391 Removing a package using standard input:
393      echo "vala-0.42.3-x86_64+1" | qi -d -
395    This will match with the package directory.
397 4.4 Upgrading packages
398 ======================
400 The upgrade mode inherits the properties of the installation and removal
401 process.  To make sure that a package is updated, the package is
402 installed in a temporary directory taking '${packagedir}' into account.
403 Once the incoming package is pre-installed, qi can proceed to search and
404 delete packages that have the same name (considered as previous ones).
405 Finally, the package is re-installed at its final location and the
406 temporary directory is removed.
408 To upgrade a package, just type:
410      qi -u gcc-9.0.1-i586+1.tlz
412    This will proceed to update "gcc-9.0.1-i586+1" removing other
413 versions of "gcc" (if any).
415 If you want to keep the package directory of found versions during the
416 upgrade process, just pass:
418      qi -u -k gcc-9.0.1-i586+1.tlz
420 To see the upgrade process (very verbose):
422      qi -u -v gcc-9.0.1-i586+1.tlz
424    A second -v gives more.
426 To force the upgrade of an existing package:
428      qi -u -f gcc-9.0.1-i586+1.tlz
430 4.4.1 Package blacklist
431 -----------------------
433 To enforce general package facilities, either to install, remove or
434 maintain the hierarchy of packages in a clean manner, qi makes use of
435 the pruning operation via graft(1):
437    There is a risk if those are crucial packages for the proper
438 functioning of the system, because it implies to deactivate symbolic
439 links from the target directory, _especially_ when transitioning an
440 incoming package into its final location during upgrade.
442 A blacklist for declare package names has been devised for this cases,
443 in case that a user decides to upgrade all packages in the system or,
444 just the crucial ones, such as the C library.
446    The blacklist is related to the upgrade mode only, consists in
447 installing a package instead of updating it or removing previous
448 versions of it; the content of the package will be updated over the
449 existing content at '${packagedir}', while the existing links from
450 '${targetdir}' will be preserved.  A pruning of links will carried out
451 in order to re-link possible differences with the recent content, this
452 helps to avoid having dead links in the target directory.
454 Since the upgrade mode is also used to install a new package, the
455 mechanism for blacklist is to install a declared package if it does not
456 already exist, if it already exists, it is verified that the binary
457 package is newer than the package directory in order to perform an
458 update.
460    Package names for the blacklist can be set from the configuration
461 file.
463    ---------- Footnotes ----------
465    (1) The official guide for Graft can be found at
466 <http://peters.gormand.com.au/Home/tools/graft/graft.html>.
468 \x1f
469 File: qi.info,  Node: Recipes,  Next: Order files,  Prev: Packages,  Up: Top
471 5 Recipes
472 *********
474 A recipe is a file telling qi what to do.  Most often, the recipe tells
475 to qi how to build a binary package from a source tarball.
477    A recipe has two parts: a list of variable definitions and a list of
478 sections.  By convention, the syntax of a section is:
480      section_name()
481      {
482          section lines
483      }
485    The section name is followed by parentheses, one newline and an
486 opening brace.  The line finishing the section contains just a closing
487 brace.  The section names or the function names currently recognized are
488 'build'.
490    The 'build' section is an augmented shell script.  This is the main
491 section (or *shell function*) which contains the instructions to build
492 and produce a package.
494 5.1 Variables
495 =============
497 A "variable" is a *shell variable* defined either in 'qirc' or in a
498 recipe to represent a string of text, called the variable's "value".
499 These values are substituted by explicit request in the definitions of
500 other variables or in calls to external commands.
502    Variables can represent lists of file names, options to pass to
503 compilers, programs to run, directories to look in for source files,
504 directories to write output in, or anything else you can imagine.
506    Definitions of variables in qi have four levels of precedence.
507 Options which define variables from the command-line override those
508 specified in the 'qirc' file, while variables defined in the recipe
509 override those specified in 'qirc', taking priority over those variables
510 settled by options via command-line.  Finally, the variables have
511 default values if they are not defined anywhere.
513    Options that set variables through the command-line can only
514 reference variables defined in 'qirc' and variables with default values.
516    Definitions of variables in 'qirc' can only reference variables
517 previously defined in 'qirc' and variables with default values.
519    Definitions of variables in the recipe can only reference variables
520 settled by command-line, variables previously defined in the recipe,
521 variables defined in 'qirc', and variables with default values.
523 5.2 Special variables
524 =====================
526 There are variables which can only be set using the command line options
527 or via 'qirc', there are other special variables which can be defined or
528 redefined in a recipe.  See the following definitions:
530    'outdir' is the directory where the produced packages are written.
531 This variable can not be redefined in the recipe.  Default sets to
532 '/var/cache/qi/packages'.
534    'worktree' is the working tree where archives, patches, and recipes
535 are expected.  This variable can not be redefined in the recipe.
536 Default sets to '/usr/src/qi'.
538    'tardir' is defined in the recipe to the directory where the tarball
539 containing the source can be found.  The full name of the tarball is
540 composed as '${tardir}/$tarname'.  Its value is available in the recipe
541 as '${tardir}'; a value of .  for 'tardir' sets it to the value of CWD
542 (Current Working Directory), this is where the recipe lives.
544    'arch' is the architecture to compose the package name.  Its value is
545 available in the recipe as '${arch}'.  Default value is the output of
546 'uname -m'.
548    'jobs' is the number of parallel jobs to pass to the compiler.  Its
549 value is available in the recipe as '${jobs}'.  Default sets to '1'.
551    The two variables '${srcdir}' and '${destdir}' can be set in the
552 recipe, as any other variable, but if they are not, qi uses default
553 values for them when building a package.
555    'srcdir' contains the source code to be compiled, and defaults to
556 '${program}-${version}'.  'destdir' is the place where the built package
557 will be installed, and defaults to '${TMPDIR}/package-${program}'.
559    If 'pkgname' is left undefined, the special variable 'program' is
560 assigned by default.  If 'pkgversion' is left undefined, the special
561 variable 'version' is assigned by default.
563    'pkgname' and 'pkgversion' along with: 'version', 'arch', and
564 'release' are used to produce the name of the package in the form:
565 '${pkgname}-${pkgversion}-${arch}+${release}.tlz'
567    A special variable called 'replace' can be used to declare package
568 names that will be replaced at the time of installation.
570 A typical recipe contains the following variables:
572    * 'program': software name.
574      It matches the source name.  It is also used to compose the name of
575      the package if '${pkgname}' is not specified.
577    * 'version': software version.
579      It matches the source name.  It is also used to compose the version
580      of the package if '${pkgversion}' is not specified.
582    * 'arch': software architecture.
584      It is used to compose the architecture of the package in which it
585      is build.
587    * 'release': release number.
589      This is used to reflect the release number of the package.  It is
590      recommended to increase this number after any significant change in
591      the recipe or post-install script.
593 Obtaining sources over the network must be declared in the recipe using
594 the 'fetch' variable.  Use double quotes for separated values.
596    The variables 'netget' and 'rsync' can be defined in 'qirc' to
597 establish a network downloader in order to get the sources.  If they are
598 not defined, qi uses default values:
600    'netget' is the general network downloader tool, defaults sets to
601 'wget -c -w1 -t3 --no-check-certificate'.
603    'rsync' is the network tool for sources containing the prefix for the
604 RSYNC protocol, default sets to 'rsync -v -a -L -z -i --progress'.
606    The variable 'description' is used to print the package description
607 when a package is installed.
609    A description has two parts: a brief description, and a long
610 description.  By convention, the syntax of 'description' is:
612      description="
613      Brief description.
615      Long description.
616      "
618    The first (substantial) line of the value is a brief description of
619 the software (called "blurb").  A newline follows to separate the _brief
620 description_ from the _long description_.
622 An example looks like:
624      description="
625      The GNU core utilities.
627      The GNU core utilities are the basic file, shell and text manipulation
628      utilities of the GNU operating system.  These are the core utilities
629      which are expected to exist on every operating system.
630      "
632    Please consider a length limit of 78 characters as maximum, because
633 the same one would be used on the meta file creation.  See *note The
634 meta file: Recipes. section.
636    The 'homepage' variable is used to declare the main site or home
637 page:
639      homepage=http://www.gnu.org/software/gcc
641    The variable 'license' is used for license information(1).  Some code
642 in the program can be covered by license A, license B, or license C. For
643 "separate licensing" or "heterogeneous licensing", we suggest using *|*
644 for a disjunction, *&* for a conjunction (if that ever happens in a
645 significant way), and comma for heterogeneous licensing.  Comma would
646 have lower precedence, plus added special terms.
648      license="LGPL, GPL | Artistic + added permission"
650 5.3 Building packages
651 =====================
653 A recipe is any valid regular file, qi sets priorities to read a recipe,
654 for example, the Current Working Directory has priority over the working
655 tree (or where the recipes reside); the '${worktree}/recipes' is the
656 second place where to find a recipe, we complete the possibility of
657 using the directory name to invoke a recipe if it contains "recipe" as a
658 valid file name.
660 To build a single package, type:
662      qi -b x-apps/xterm
664 Multiple jobs can be passed to the compiler for speed up the build
665 process:
667      qi -b -j3 x-apps/xterm
669 Update or install the produced package (if it is not already installed)
670 when finish:
672      qi -b -j3 -u x-apps/xterm
674 Only process a recipe but do not create the binary package:
676      qi -b -n dict/aspell
678    The options -i or -u have no effect when -n is given.
680 This can be useful to inspect the build process of recipe:
682    qi -b -k -n dict/aspell 2>&1 | tee aspell-buildlog.txt
684    The -k option could preserve the source directory and the destination
685 directory for later inspection.  A log file of the build process will be
686 created redirecting both, standard error and standard output to tee(1).
688 5.4 Variables from the environment
689 ==================================
691 Qi has environment variables which can be used at build time:
693    The variable 'TMPDIR' sets the temporary directory for sources, which
694 is used for package extractions (see *note Examining packages::) and to
695 prepend the value of '${srcdir}' and '${destdir}' on build mode.  By
696 convention its default value is equal to '/usr/src/qi/build'.
698    The variables 'QICFLAGS', 'QICXXFLAGS', and 'QILDFLAGS' have no
699 effect by default.  The environment variables such as 'CFLAGS',
700 'CXXFLAGS', and 'LDFLAGS' are unset at compile time:
702 Recommended practices is to set variables in front of 'configure' or in
703 front of _make(1)_ instead of exporting to the environment.  As follows:
705      Variables not defined in a site shell script can be set in the
706      environment passed to configure.  However, some packages may run
707      configure again during the build, and the customized values of
708      these variables may be lost.  In order to avoid this problem, you
709      should set them in the configure command line, using 'VAR=value'.
710      For example:
712      './configure CC=/usr/local2/bin/gcc'
714      <http://gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Defining-Variables.html>
716      Indeed, while configure can notice the definition of CC in
717      './configure CC=bizarre-cc', it is impossible to notice it in
718      'CC=bizarre-cc ./configure', which, unfortunately, is what most
719      users do.
721      [...]
723      configure: error: changes in the environment can compromise the
724      build.
726      <http://gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Setting-Output-Variables.html>
728      It is not wise for makefiles to depend for their functioning on
729      environment variables set up outside their control, since this
730      would cause different users to get different results from the same
731      makefile.  This is against the whole purpose of most makefiles.
733      <http://gnu.org/software/make/manual/make.html#Environment>
735 5.5 The meta file
736 =================
738 The "meta file" is a regular file created during the build mode, it
739 contains information about the package such as program name, program
740 version, release, fetch address, description, and other minor data
741 extracted from processed recipes.  The name of the file is generated as
742 '${full_pkgname}.tlz.txt', it has the purpose to reflect essential
743 information to the user without having to look inside the package
744 content.
746    The content of a meta file looks like:
748      #
749      # The Bourne Again SHell.
750      #
751      # Bash is an sh-compatible shell that incorporates useful features from
752      # the Korn shell (ksh) and C shell (csh).  It is intended to conform to
753      # the IEEE POSIX P1003.2/ISO 9945.2 shell and tools standard.
754      #
755      # It offers functional improvements over sh for both programming and
756      # interactive use.
757      #
759      QICFLAGS="-g0 -Os -mtune=generic -pipe"
760      QICXXFLAGS="-g0 -Os -mtune=generic -pipe"
761      QILDFLAGS="-s"
762      program=bash
763      version=5.0
764      release=1
765      blurb="The Bourne Again SHell."
766      homepage="http://www.gnu.org/software/bash"
767      license="GPLv3+"
768      fetch="ftp://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz"
769      replace=""
771    Package descriptions are extracted from the variable 'description':
772 each line is interpreted literally and pre-formatted to fit in (exactly)
773 *80 columns*, plus the character '#' and a space is prefixed to every
774 line.
776 In addition to the Special variables, there are implicit variables such
777 as 'blurb':
779    The 'blurb' variable is related to the special variable
780 'description'.  Its value is composed using the first (substantial) line
781 of 'description', mentioned as the "brief description".
783    ---------- Footnotes ----------
785    (1) The proposal for 'license' was made by Richard M. Stallman at
786 <http://lists.gnu.org/archive/html/gnu-linux-libre/2016-05/msg00003.html>.
788 \x1f
789 File: qi.info,  Node: Order files,  Next: Creating packages,  Prev: Recipes,  Up: Top
791 6 Order files
792 *************
794 The order mode has the purpose to resolve the build order through .order
795 files.  An order file contains a list of recipe names, by default does
796 not perform any action other than to print a resolved list in descending
797 order.  For example, if *a* depends on *b* and *c*, and *c* depends on
798 *b* as well, the file might look like:
800      a: c b
801      b:
802      c: b
804    Each letter represents a recipe name, complete dependencies for the
805 first recipe name are listed in descending order, which is printed from
806 right to left, and removed from left to right:
808    OUTPUT
810      b
811      c
812      a
814    Declaration of blank lines, colons, parentheses, and end of line are
815 simply ignored.  Comments are allowed for lines that begin with '#'.
817 An order file could be used to build a serie of packages, for example,
818 if the content is:
820      # Image handling libraries
822      libs/libjpeg-turbo: devel/nasm
823      x-libs/jasper: libs/libjpeg-turbo
824      libs/tiff: libs/libjpeg-turbo
826    To proceed with each recipe, we can type:
828      qi -o imglibs.order | qi -b -i -
830    The output of 'qi -o imglibs.order' tells to qi in which order it
831 should build the recipes:
833      devel/nasm
834      libs/libjpeg-turbo
835      x-libs/jasper
836      libs/tiff
838 \x1f
839 File: qi.info,  Node: Creating packages,  Next: Examining packages,  Prev: Order files,  Up: Top
841 7 Creating packages
842 *******************
844 The "creation mode" is an internal function of qi to make new Qi
845 compatible packages, the creation mode is available through the -c
846 option.  A package is produced using the contents of the Current
847 Directory, finally the package is written out to the file name.
849      Usage: qi -c [OUTPUT/PACKAGENAME.TLZ]...
851    The argument for the file name to be written must contain a fully
852 qualified named directory as the output directory where the produced
853 package will be written.  The file name should be composed using the
854 full name: name-version-architecture+release.tlz
856    EXAMPLE
858      cd /usr/local/pkgs
859      cd claws-mail-3.17.1-x86_64+1
860      qi -c /var/cache/qi/packages/x86_64/local/claws-mail-3.17.1-x86_64+1.tlz
862    In this case, the package "claws-mail-3.17.1-x86_64+1.tlz" will be
863 written into '/var/cache/qi/packages/x86_64/local/'.
865 All produced packages are complemented by a checksum file (.sha256).
867 \x1f
868 File: qi.info,  Node: Examining packages,  Next: Exit status,  Prev: Creating packages,  Up: Top
870 8 Examining packages
871 ********************
873 The "extraction mode" is available using the -x option.  It serves to
874 examine binary packages for debugging purposes, which consists of
875 decompressing a package into a single directory, verifying its integrity
876 and preserving its properties.
878      Usage: qi -x [PACKAGENAME.TLZ]...
880    EXAMPLE
882      qi -x mksh-R56c-x86_64+1.tlz
884    This action will put the content of "mksh-R56c-x86_64+1.tlz" into a
885 single directory, this will be a private directory for the user who
886 requested the action, creation mode will be equal to *u=,g=rwx,o=rwx
887 (0700)*.  The package content will reside on this location, default mask
888 to deploy the content will be equal to *u=rwx,g=rwx,o=rwx (0000)*.
890 The creation of the custom directory is influenced by the value of the
891 'TMPDIR' variable.
893 \x1f
894 File: qi.info,  Node: Exit status,  Next: License,  Prev: Examining packages,  Up: Top
896 9 Exit status
897 *************
899 All the conditions of exit codes are described in this chapter.
902      Successful completion (no errors).
905      Minor common errors:
907         - Help usage on illegal options or required arguments.
909         - Program needed by qi (prerequisite) is not available.
912      Command execution error:
914      This code is used to return the evaluation of external commands and
915      shell arguments in case of error.
918      Integrity check error for compressed files.
920      Compressed files means:
922         - Tarball files from tar(1).  Supported extensions: .tar,
923           .tar.gz, .tgz, .tar.Z, .tar.bz2, .tbz2, .tbz, .tar.xz, .txz
925         - Tarballs files from tarlz(1).  Supported extensions: .tar.lz,
926           .tlz
928         - Zip files from unzip(1).  Supported extensions: .zip, .ZIP
930         - Gzip files from gzip(1).  Supported extensions: .gz, .Z
932         - Bzip2 files from bzip2(1).  Supported extensions: .bz2
934         - Lzip files from lzip(1).  Supported extensions: .lz
936         - Xz files from xz(1).  Supported extensions: .xz
939      File empty, not regular, or expected.
941      Commonly, it is expected:
943         - An argument for the mode of operation.
945         - A readable file or directory.
947         - A binary package (.tlz).
949         - A valid recipe.
951         - An order file (.order).
953         - A protocol supported by the network downloader tool.
955         - A checksum file (.sha256).
958      Empty or not defined variable:
960      This code is used to report empty or undefined variables; usually,
961      variables coming from a recipe or assigned arrays that are tested.
964      Package already installed:
966      The package directory for an incoming .tlz package that already
967      exists.
969 '10'
970      Network manager error:
972      This code is used if the network downloader tool fails for some
973      reason.
975 \x1f
976 File: qi.info,  Node: License,  Next: Index,  Prev: Exit status,  Up: Top
978 Appendix A GNU Free Documentation License
979 *****************************************
981                      Version 1.3, 3 November 2008
983      Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
984      <http://fsf.org/>
986      Everyone is permitted to copy and distribute verbatim copies
987      of this license document, but changing it is not allowed.
989   0. PREAMBLE
991      The purpose of this License is to make a manual, textbook, or other
992      functional and useful document "free" in the sense of freedom: to
993      assure everyone the effective freedom to copy and redistribute it,
994      with or without modifying it, either commercially or
995      noncommercially.  Secondarily, this License preserves for the
996      author and publisher a way to get credit for their work, while not
997      being considered responsible for modifications made by others.
999      This License is a kind of "copyleft", which means that derivative
1000      works of the document must themselves be free in the same sense.
1001      It complements the GNU General Public License, which is a copyleft
1002      license designed for free software.
1004      We have designed this License in order to use it for manuals for
1005      free software, because free software needs free documentation: a
1006      free program should come with manuals providing the same freedoms
1007      that the software does.  But this License is not limited to
1008      software manuals; it can be used for any textual work, regardless
1009      of subject matter or whether it is published as a printed book.  We
1010      recommend this License principally for works whose purpose is
1011      instruction or reference.
1013   1. APPLICABILITY AND DEFINITIONS
1015      This License applies to any manual or other work, in any medium,
1016      that contains a notice placed by the copyright holder saying it can
1017      be distributed under the terms of this License.  Such a notice
1018      grants a world-wide, royalty-free license, unlimited in duration,
1019      to use that work under the conditions stated herein.  The
1020      "Document", below, refers to any such manual or work.  Any member
1021      of the public is a licensee, and is addressed as "you".  You accept
1022      the license if you copy, modify or distribute the work in a way
1023      requiring permission under copyright law.
1025      A "Modified Version" of the Document means any work containing the
1026      Document or a portion of it, either copied verbatim, or with
1027      modifications and/or translated into another language.
1029      A "Secondary Section" is a named appendix or a front-matter section
1030      of the Document that deals exclusively with the relationship of the
1031      publishers or authors of the Document to the Document's overall
1032      subject (or to related matters) and contains nothing that could
1033      fall directly within that overall subject.  (Thus, if the Document
1034      is in part a textbook of mathematics, a Secondary Section may not
1035      explain any mathematics.)  The relationship could be a matter of
1036      historical connection with the subject or with related matters, or
1037      of legal, commercial, philosophical, ethical or political position
1038      regarding them.
1040      The "Invariant Sections" are certain Secondary Sections whose
1041      titles are designated, as being those of Invariant Sections, in the
1042      notice that says that the Document is released under this License.
1043      If a section does not fit the above definition of Secondary then it
1044      is not allowed to be designated as Invariant.  The Document may
1045      contain zero Invariant Sections.  If the Document does not identify
1046      any Invariant Sections then there are none.
1048      The "Cover Texts" are certain short passages of text that are
1049      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
1050      that says that the Document is released under this License.  A
1051      Front-Cover Text may be at most 5 words, and a Back-Cover Text may
1052      be at most 25 words.
1054      A "Transparent" copy of the Document means a machine-readable copy,
1055      represented in a format whose specification is available to the
1056      general public, that is suitable for revising the document
1057      straightforwardly with generic text editors or (for images composed
1058      of pixels) generic paint programs or (for drawings) some widely
1059      available drawing editor, and that is suitable for input to text
1060      formatters or for automatic translation to a variety of formats
1061      suitable for input to text formatters.  A copy made in an otherwise
1062      Transparent file format whose markup, or absence of markup, has
1063      been arranged to thwart or discourage subsequent modification by
1064      readers is not Transparent.  An image format is not Transparent if
1065      used for any substantial amount of text.  A copy that is not
1066      "Transparent" is called "Opaque".
1068      Examples of suitable formats for Transparent copies include plain
1069      ASCII without markup, Texinfo input format, LaTeX input format,
1070      SGML or XML using a publicly available DTD, and standard-conforming
1071      simple HTML, PostScript or PDF designed for human modification.
1072      Examples of transparent image formats include PNG, XCF and JPG.
1073      Opaque formats include proprietary formats that can be read and
1074      edited only by proprietary word processors, SGML or XML for which
1075      the DTD and/or processing tools are not generally available, and
1076      the machine-generated HTML, PostScript or PDF produced by some word
1077      processors for output purposes only.
1079      The "Title Page" means, for a printed book, the title page itself,
1080      plus such following pages as are needed to hold, legibly, the
1081      material this License requires to appear in the title page.  For
1082      works in formats which do not have any title page as such, "Title
1083      Page" means the text near the most prominent appearance of the
1084      work's title, preceding the beginning of the body of the text.
1086      The "publisher" means any person or entity that distributes copies
1087      of the Document to the public.
1089      A section "Entitled XYZ" means a named subunit of the Document
1090      whose title either is precisely XYZ or contains XYZ in parentheses
1091      following text that translates XYZ in another language.  (Here XYZ
1092      stands for a specific section name mentioned below, such as
1093      "Acknowledgements", "Dedications", "Endorsements", or "History".)
1094      To "Preserve the Title" of such a section when you modify the
1095      Document means that it remains a section "Entitled XYZ" according
1096      to this definition.
1098      The Document may include Warranty Disclaimers next to the notice
1099      which states that this License applies to the Document.  These
1100      Warranty Disclaimers are considered to be included by reference in
1101      this License, but only as regards disclaiming warranties: any other
1102      implication that these Warranty Disclaimers may have is void and
1103      has no effect on the meaning of this License.
1105   2. VERBATIM COPYING
1107      You may copy and distribute the Document in any medium, either
1108      commercially or noncommercially, provided that this License, the
1109      copyright notices, and the license notice saying this License
1110      applies to the Document are reproduced in all copies, and that you
1111      add no other conditions whatsoever to those of this License.  You
1112      may not use technical measures to obstruct or control the reading
1113      or further copying of the copies you make or distribute.  However,
1114      you may accept compensation in exchange for copies.  If you
1115      distribute a large enough number of copies you must also follow the
1116      conditions in section 3.
1118      You may also lend copies, under the same conditions stated above,
1119      and you may publicly display copies.
1121   3. COPYING IN QUANTITY
1123      If you publish printed copies (or copies in media that commonly
1124      have printed covers) of the Document, numbering more than 100, and
1125      the Document's license notice requires Cover Texts, you must
1126      enclose the copies in covers that carry, clearly and legibly, all
1127      these Cover Texts: Front-Cover Texts on the front cover, and
1128      Back-Cover Texts on the back cover.  Both covers must also clearly
1129      and legibly identify you as the publisher of these copies.  The
1130      front cover must present the full title with all words of the title
1131      equally prominent and visible.  You may add other material on the
1132      covers in addition.  Copying with changes limited to the covers, as
1133      long as they preserve the title of the Document and satisfy these
1134      conditions, can be treated as verbatim copying in other respects.
1136      If the required texts for either cover are too voluminous to fit
1137      legibly, you should put the first ones listed (as many as fit
1138      reasonably) on the actual cover, and continue the rest onto
1139      adjacent pages.
1141      If you publish or distribute Opaque copies of the Document
1142      numbering more than 100, you must either include a machine-readable
1143      Transparent copy along with each Opaque copy, or state in or with
1144      each Opaque copy a computer-network location from which the general
1145      network-using public has access to download using public-standard
1146      network protocols a complete Transparent copy of the Document, free
1147      of added material.  If you use the latter option, you must take
1148      reasonably prudent steps, when you begin distribution of Opaque
1149      copies in quantity, to ensure that this Transparent copy will
1150      remain thus accessible at the stated location until at least one
1151      year after the last time you distribute an Opaque copy (directly or
1152      through your agents or retailers) of that edition to the public.
1154      It is requested, but not required, that you contact the authors of
1155      the Document well before redistributing any large number of copies,
1156      to give them a chance to provide you with an updated version of the
1157      Document.
1159   4. MODIFICATIONS
1161      You may copy and distribute a Modified Version of the Document
1162      under the conditions of sections 2 and 3 above, provided that you
1163      release the Modified Version under precisely this License, with the
1164      Modified Version filling the role of the Document, thus licensing
1165      distribution and modification of the Modified Version to whoever
1166      possesses a copy of it.  In addition, you must do these things in
1167      the Modified Version:
1169        A. Use in the Title Page (and on the covers, if any) a title
1170           distinct from that of the Document, and from those of previous
1171           versions (which should, if there were any, be listed in the
1172           History section of the Document).  You may use the same title
1173           as a previous version if the original publisher of that
1174           version gives permission.
1176        B. List on the Title Page, as authors, one or more persons or
1177           entities responsible for authorship of the modifications in
1178           the Modified Version, together with at least five of the
1179           principal authors of the Document (all of its principal
1180           authors, if it has fewer than five), unless they release you
1181           from this requirement.
1183        C. State on the Title page the name of the publisher of the
1184           Modified Version, as the publisher.
1186        D. Preserve all the copyright notices of the Document.
1188        E. Add an appropriate copyright notice for your modifications
1189           adjacent to the other copyright notices.
1191        F. Include, immediately after the copyright notices, a license
1192           notice giving the public permission to use the Modified
1193           Version under the terms of this License, in the form shown in
1194           the Addendum below.
1196        G. Preserve in that license notice the full lists of Invariant
1197           Sections and required Cover Texts given in the Document's
1198           license notice.
1200        H. Include an unaltered copy of this License.
1202        I. Preserve the section Entitled "History", Preserve its Title,
1203           and add to it an item stating at least the title, year, new
1204           authors, and publisher of the Modified Version as given on the
1205           Title Page.  If there is no section Entitled "History" in the
1206           Document, create one stating the title, year, authors, and
1207           publisher of the Document as given on its Title Page, then add
1208           an item describing the Modified Version as stated in the
1209           previous sentence.
1211        J. Preserve the network location, if any, given in the Document
1212           for public access to a Transparent copy of the Document, and
1213           likewise the network locations given in the Document for
1214           previous versions it was based on.  These may be placed in the
1215           "History" section.  You may omit a network location for a work
1216           that was published at least four years before the Document
1217           itself, or if the original publisher of the version it refers
1218           to gives permission.
1220        K. For any section Entitled "Acknowledgements" or "Dedications",
1221           Preserve the Title of the section, and preserve in the section
1222           all the substance and tone of each of the contributor
1223           acknowledgements and/or dedications given therein.
1225        L. Preserve all the Invariant Sections of the Document, unaltered
1226           in their text and in their titles.  Section numbers or the
1227           equivalent are not considered part of the section titles.
1229        M. Delete any section Entitled "Endorsements".  Such a section
1230           may not be included in the Modified Version.
1232        N. Do not retitle any existing section to be Entitled
1233           "Endorsements" or to conflict in title with any Invariant
1234           Section.
1236        O. Preserve any Warranty Disclaimers.
1238      If the Modified Version includes new front-matter sections or
1239      appendices that qualify as Secondary Sections and contain no
1240      material copied from the Document, you may at your option designate
1241      some or all of these sections as invariant.  To do this, add their
1242      titles to the list of Invariant Sections in the Modified Version's
1243      license notice.  These titles must be distinct from any other
1244      section titles.
1246      You may add a section Entitled "Endorsements", provided it contains
1247      nothing but endorsements of your Modified Version by various
1248      parties--for example, statements of peer review or that the text
1249      has been approved by an organization as the authoritative
1250      definition of a standard.
1252      You may add a passage of up to five words as a Front-Cover Text,
1253      and a passage of up to 25 words as a Back-Cover Text, to the end of
1254      the list of Cover Texts in the Modified Version.  Only one passage
1255      of Front-Cover Text and one of Back-Cover Text may be added by (or
1256      through arrangements made by) any one entity.  If the Document
1257      already includes a cover text for the same cover, previously added
1258      by you or by arrangement made by the same entity you are acting on
1259      behalf of, you may not add another; but you may replace the old
1260      one, on explicit permission from the previous publisher that added
1261      the old one.
1263      The author(s) and publisher(s) of the Document do not by this
1264      License give permission to use their names for publicity for or to
1265      assert or imply endorsement of any Modified Version.
1267   5. COMBINING DOCUMENTS
1269      You may combine the Document with other documents released under
1270      this License, under the terms defined in section 4 above for
1271      modified versions, provided that you include in the combination all
1272      of the Invariant Sections of all of the original documents,
1273      unmodified, and list them all as Invariant Sections of your
1274      combined work in its license notice, and that you preserve all
1275      their Warranty Disclaimers.
1277      The combined work need only contain one copy of this License, and
1278      multiple identical Invariant Sections may be replaced with a single
1279      copy.  If there are multiple Invariant Sections with the same name
1280      but different contents, make the title of each such section unique
1281      by adding at the end of it, in parentheses, the name of the
1282      original author or publisher of that section if known, or else a
1283      unique number.  Make the same adjustment to the section titles in
1284      the list of Invariant Sections in the license notice of the
1285      combined work.
1287      In the combination, you must combine any sections Entitled
1288      "History" in the various original documents, forming one section
1289      Entitled "History"; likewise combine any sections Entitled
1290      "Acknowledgements", and any sections Entitled "Dedications".  You
1291      must delete all sections Entitled "Endorsements."
1293   6. COLLECTIONS OF DOCUMENTS
1295      You may make a collection consisting of the Document and other
1296      documents released under this License, and replace the individual
1297      copies of this License in the various documents with a single copy
1298      that is included in the collection, provided that you follow the
1299      rules of this License for verbatim copying of each of the documents
1300      in all other respects.
1302      You may extract a single document from such a collection, and
1303      distribute it individually under this License, provided you insert
1304      a copy of this License into the extracted document, and follow this
1305      License in all other respects regarding verbatim copying of that
1306      document.
1308   7. AGGREGATION WITH INDEPENDENT WORKS
1310      A compilation of the Document or its derivatives with other
1311      separate and independent documents or works, in or on a volume of a
1312      storage or distribution medium, is called an "aggregate" if the
1313      copyright resulting from the compilation is not used to limit the
1314      legal rights of the compilation's users beyond what the individual
1315      works permit.  When the Document is included in an aggregate, this
1316      License does not apply to the other works in the aggregate which
1317      are not themselves derivative works of the Document.
1319      If the Cover Text requirement of section 3 is applicable to these
1320      copies of the Document, then if the Document is less than one half
1321      of the entire aggregate, the Document's Cover Texts may be placed
1322      on covers that bracket the Document within the aggregate, or the
1323      electronic equivalent of covers if the Document is in electronic
1324      form.  Otherwise they must appear on printed covers that bracket
1325      the whole aggregate.
1327   8. TRANSLATION
1329      Translation is considered a kind of modification, so you may
1330      distribute translations of the Document under the terms of section
1331      4.  Replacing Invariant Sections with translations requires special
1332      permission from their copyright holders, but you may include
1333      translations of some or all Invariant Sections in addition to the
1334      original versions of these Invariant Sections.  You may include a
1335      translation of this License, and all the license notices in the
1336      Document, and any Warranty Disclaimers, provided that you also
1337      include the original English version of this License and the
1338      original versions of those notices and disclaimers.  In case of a
1339      disagreement between the translation and the original version of
1340      this License or a notice or disclaimer, the original version will
1341      prevail.
1343      If a section in the Document is Entitled "Acknowledgements",
1344      "Dedications", or "History", the requirement (section 4) to
1345      Preserve its Title (section 1) will typically require changing the
1346      actual title.
1348   9. TERMINATION
1350      You may not copy, modify, sublicense, or distribute the Document
1351      except as expressly provided under this License.  Any attempt
1352      otherwise to copy, modify, sublicense, or distribute it is void,
1353      and will automatically terminate your rights under this License.
1355      However, if you cease all violation of this License, then your
1356      license from a particular copyright holder is reinstated (a)
1357      provisionally, unless and until the copyright holder explicitly and
1358      finally terminates your license, and (b) permanently, if the
1359      copyright holder fails to notify you of the violation by some
1360      reasonable means prior to 60 days after the cessation.
1362      Moreover, your license from a particular copyright holder is
1363      reinstated permanently if the copyright holder notifies you of the
1364      violation by some reasonable means, this is the first time you have
1365      received notice of violation of this License (for any work) from
1366      that copyright holder, and you cure the violation prior to 30 days
1367      after your receipt of the notice.
1369      Termination of your rights under this section does not terminate
1370      the licenses of parties who have received copies or rights from you
1371      under this License.  If your rights have been terminated and not
1372      permanently reinstated, receipt of a copy of some or all of the
1373      same material does not give you any rights to use it.
1375   10. FUTURE REVISIONS OF THIS LICENSE
1377      The Free Software Foundation may publish new, revised versions of
1378      the GNU Free Documentation License from time to time.  Such new
1379      versions will be similar in spirit to the present version, but may
1380      differ in detail to address new problems or concerns.  See
1381      <http://www.gnu.org/copyleft/>.
1383      Each version of the License is given a distinguishing version
1384      number.  If the Document specifies that a particular numbered
1385      version of this License "or any later version" applies to it, you
1386      have the option of following the terms and conditions either of
1387      that specified version or of any later version that has been
1388      published (not as a draft) by the Free Software Foundation.  If the
1389      Document does not specify a version number of this License, you may
1390      choose any version ever published (not as a draft) by the Free
1391      Software Foundation.  If the Document specifies that a proxy can
1392      decide which future versions of this License can be used, that
1393      proxy's public statement of acceptance of a version permanently
1394      authorizes you to choose that version for the Document.
1396   11. RELICENSING
1398      "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
1399      World Wide Web server that publishes copyrightable works and also
1400      provides prominent facilities for anybody to edit those works.  A
1401      public wiki that anybody can edit is an example of such a server.
1402      A "Massive Multiauthor Collaboration" (or "MMC") contained in the
1403      site means any set of copyrightable works thus published on the MMC
1404      site.
1406      "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
1407      license published by Creative Commons Corporation, a not-for-profit
1408      corporation with a principal place of business in San Francisco,
1409      California, as well as future copyleft versions of that license
1410      published by that same organization.
1412      "Incorporate" means to publish or republish a Document, in whole or
1413      in part, as part of another Document.
1415      An MMC is "eligible for relicensing" if it is licensed under this
1416      License, and if all works that were first published under this
1417      License somewhere other than this MMC, and subsequently
1418      incorporated in whole or in part into the MMC, (1) had no cover
1419      texts or invariant sections, and (2) were thus incorporated prior
1420      to November 1, 2008.
1422      The operator of an MMC Site may republish an MMC contained in the
1423      site under CC-BY-SA on the same site at any time before August 1,
1424      2009, provided the MMC is eligible for relicensing.
1426 ADDENDUM: How to use this License for your documents
1427 ====================================================
1429 To use this License in a document you have written, include a copy of
1430 the License in the document and put the following copyright and license
1431 notices just after the title page:
1433        Copyright (C)  YEAR  YOUR NAME.
1434        Permission is granted to copy, distribute and/or modify this document
1435        under the terms of the GNU Free Documentation License, Version 1.3
1436        or any later version published by the Free Software Foundation;
1437        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
1438        Texts.  A copy of the license is included in the section entitled ``GNU
1439        Free Documentation License''.
1441    If you have Invariant Sections, Front-Cover Texts and Back-Cover
1442 Texts, replace the "with...Texts." line with this:
1444          with the Invariant Sections being LIST THEIR TITLES, with
1445          the Front-Cover Texts being LIST, and with the Back-Cover Texts
1446          being LIST.
1448    If you have Invariant Sections without Cover Texts, or some other
1449 combination of the three, merge those two alternatives to suit the
1450 situation.
1452    If your document contains nontrivial examples of program code, we
1453 recommend releasing these examples in parallel under your choice of free
1454 software license, such as the GNU General Public License, to permit
1455 their use in free software.
1457 \x1f
1458 File: qi.info,  Node: Index,  Prev: License,  Up: Top
1460 Index
1461 *****
1463 \0\b[index\0\b]
1464 * Menu:
1466 * configuration file:                    The qirc file.       (line   6)
1467 * environment variables:                 Recipes.             (line 223)
1468 * exit codes:                            Exit status.         (line   6)
1469 * handling build order:                  Order files.         (line   6)
1470 * introduction:                          Introduction.        (line   6)
1471 * invocation:                            Invoking qi.         (line   6)
1472 * managing packages:                     Packages.            (line   6)
1473 * package blacklist:                     Packages.            (line 176)
1474 * package build:                         Recipes.             (line 185)
1475 * package conflicts:                     Packages.            (line  30)
1476 * package creation:                      Creating packages.   (line   6)
1477 * package de-installation:               Packages.            (line 104)
1478 * package examination:                   Examining packages.  (line   6)
1479 * package installation:                  Packages.            (line  55)
1480 * package upgrade:                       Packages.            (line 143)
1481 * recipes:                               Recipes.             (line   6)
1482 * special variables:                     Recipes.             (line  58)
1483 * the meta file:                         Recipes.             (line 270)
1484 * variables:                             Recipes.             (line  29)
1487 \x1f
1488 Tag Table:
1489 Node: Top\x7f804
1490 Node: Introduction\x7f1646
1491 Node: Invoking qi\x7f2808
1492 Node: The qirc file\x7f6228
1493 Node: Packages\x7f7306
1494 Ref: Packages-Footnote-1\x7f14353
1495 Node: Recipes\x7f14466
1496 Ref: Recipes-Footnote-1\x7f26519
1497 Node: Order files\x7f26664
1498 Node: Creating packages\x7f27998
1499 Node: Examining packages\x7f29049
1500 Node: Exit status\x7f29960
1501 Node: License\x7f31925
1502 Node: Index\x7f57041
1503 \x1f
1504 End Tag Table
1506 \x1f
1507 Local Variables:
1508 coding: iso-8859-1
1509 End: