diff --git a/docs/live-wrapper/_modules/index.html b/docs/live-wrapper/_modules/index.html new file mode 100644 index 0000000000000000000000000000000000000000..8b64f5374f8d3c0e2161996bb2b30d859f21634d --- /dev/null +++ b/docs/live-wrapper/_modules/index.html @@ -0,0 +1,93 @@ + + + + + + + + Overview: module code — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

All modules for which code is available

+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/_modules/lwr/disk.html b/docs/live-wrapper/_modules/lwr/disk.html new file mode 100644 index 0000000000000000000000000000000000000000..7cee89845a4e39a2ddcc552a716fed68a61bab34 --- /dev/null +++ b/docs/live-wrapper/_modules/lwr/disk.html @@ -0,0 +1,132 @@ + + + + + + + + lwr.disk — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for lwr.disk

+# live-wrapper - Wrapper for vmdebootstrap for creating live images
+# (C) Iain R. Learmonth 2015 <irl@debian.org>
+# See COPYING for terms of usage, modification and redistribution.
+#
+# lwr/disk.py - .disk folder helpers
+
+"""
+This module provides helpers for generating the metadata stored in .disk/ on
+the cdroot.
+"""
+
+import os
+from datetime import datetime
+
+
[docs]def get_default_description(distribution): + distribution = distribution if distribution else "dist" + if 'official' in os.environ.get('LWR_DEBUG', ''): + return "Official Debian GNU/Linux '%s' Live" % (distribution,) + else: + return "Unofficial Debian GNU/Linux '%s' Live" % (distribution,)
+ + +
[docs]def install_disk_info(cdroot, description, xorriso_args): + """ + This function creates the .disk/ metadata and installs it into the + specified cdroot. + """ + + timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M") + metadir = cdroot['.disk'].path + with open(os.path.join(metadir, "info"), "w") as i: + i.write("%s %s" % (description, timestamp,)) + with open(os.path.join(metadir, "udeb_include"), "w") as i: + i.write("netcfg\nethdetect\npcmciautils-udeb\nlive-installer\n") + with open(os.path.join(metadir, "cd_type"), "w") as i: + i.write("live") + with open(os.path.join(metadir, "base_installable"), "w") as i: + i.write("") + with open(os.path.join(metadir, "base_components"), "w") as i: + i.write("main") + with open(os.path.join(metadir, "mkisofs"), "w") as i: + i.write(xorriso_args)
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/_modules/lwr/grub.html b/docs/live-wrapper/_modules/lwr/grub.html new file mode 100644 index 0000000000000000000000000000000000000000..95f196e98514447d937c3e3c0cc36871b779a2cc --- /dev/null +++ b/docs/live-wrapper/_modules/lwr/grub.html @@ -0,0 +1,135 @@ + + + + + + + + lwr.grub — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for lwr.grub

+# live-wrapper - Wrapper for vmdebootstrap for creating live images
+# (C) Iain R. Learmonth 2015 <irl@debian.org>
+# See COPYING for terms of usage, modification and redistribution.
+#
+# lwr/grub.py - Grub 2 helpers
+
+"""
+The lwr.grub module contains helpers for GRUB 2 including the installation
+of GRUB files to the cdroot and the generation of the grub.cfg and loopback.cfg
+files.
+"""
+
+import os
+
+
[docs]def generate_cfg(bootconfig, submenu=False): + if not submenu: + ret = ("if [ ${iso_path} ] ; then\nset loopback=\"" + + "findiso=${iso_path}\"\nfi\n\n") + else: + ret = str() + for entry in bootconfig.entries: + if entry['type'] == "menu": + if entry['subentries'].is_empty(["linux", "menu"]): + continue + ret += "submenu \"%s\" {\n" % (entry['description'],) + ret += generate_cfg(entry['subentries'], submenu=True) + ret += "}\n" + if entry['type'] == "linux": + ret += "menuentry \"%s\" {\n" % (entry['description'],) + ret += " linux %s %s \"${loopback}\"\n" % (entry['kernel'], entry.get('cmdline', ''),) + if entry.get('initrd') is not None: + ret += " initrd %s\n" % (entry['initrd'],) + ret += "}\n" + return ret
+ +
[docs]def install_grub(cdroot, bootconfig): + """ + Can use cdroot as a relative path inside the actual cdroot. + The d-i/ and live/ directories are used directly. + """ + cfg = generate_cfg(bootconfig) + with open("%s/boot/grub/grub.cfg" % (cdroot,), "a") as cfgout: + cfgout.write(cfg) + with open("%s/boot/grub/loopback.cfg" % (cdroot,), "w") as loopout: + loopout.write("source /grub/grub.cfg")
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/_modules/lwr/isolinux.html b/docs/live-wrapper/_modules/lwr/isolinux.html new file mode 100644 index 0000000000000000000000000000000000000000..4c932da8ced05dd2281af0a44c41240527a2268b --- /dev/null +++ b/docs/live-wrapper/_modules/lwr/isolinux.html @@ -0,0 +1,205 @@ + + + + + + + + lwr.isolinux — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for lwr.isolinux

+# live-wrapper - Wrapper for vmdebootstrap for creating live images
+# (C) Iain R. Learmonth 2015 <irl@debian.org>
+# See COPYING for terms of usage, modification and redistribution.
+#
+# lwr/isolinux.py - ISOLINUX helpers
+
+"""
+The lwr.isolinux module contains helpers for isolinux including the
+installation of isolinux files to the cdroot and the generation of the
+isolinux.cfg files.
+Directory listing of /isolinux/
+advanced.cfg boot.cat hdt.c32 install.cfg isolinux.bin isolinux.cfg
+ldlinux.c32 libcom32.c32 libutil.c32 live.cfg menu.cfg splash.png
+stdmenu.cfg vesamenu.c32
+"""
+
+import os
+import sys
+import shutil
+import string
+import fileinput
+import tempfile
+import cliapp
+from vmdebootstrap.base import runcmd
+from lwr.vm import detect_kernels
+from lwr.apt_udeb import get_apt_handler
+
+# pylint: disable=missing-docstring
+
+
[docs]def generate_cfg(bootconfig, submenu=False): + ret = str() + if not submenu: + first = True + ret += "INCLUDE stdmenu.cfg\n" + ret += "MENU title Main Menu\n" + else: + first = False + + for entry in bootconfig.entries: + label = "%s" % (entry['description'],) + if entry['type'] is 'menu': + if entry['subentries'].is_empty(["menu", "linux", "linux16", "com32"]): + continue + ret += "MENU begin advanced\n" + ret += "MENU title %s\n" % (label,) + ret += generate_cfg(entry['subentries'], submenu=True) + ret += " LABEL mainmenu \n " + ret += " MENU label Back\n " + ret += " MENU exit\n " + ret += " MENU end\n " + + # do not want to default to menus + if first: + ret += "DEFAULT %s\n" % (label,) + first = False + if entry['type'].startswith('linux') or entry['type'] is 'com32': + type = 'linux' if entry['type'].startswith('linux') else entry['type'] + ret += "LABEL %s\n" % (label,) + ret += " SAY \"Booting %s...\"\n" % (entry['description'],) + ret += " %s %s\n" % (entry['type'], entry['kernel'],) + if entry.get('initrd') is not None: + ret += " APPEND initrd=%s %s\n" % (entry['initrd'], entry.get('cmdline', ''),) + elif entry.get('cmdline') is not None: + ret += " APPEND %s\n" % (entry['cmdline'],) + ret += "\n" + return ret
+ +
[docs]def install_isolinux(cdroot, mirror, suite, architecture, bootconfig): + """ + Download and unpack the correct syslinux-common + and isolinux packages for isolinux support. + ISOLINUX looks first in boot/isolinux/ then isolinux/ then / + This function puts all files into isolinux/ + """ + destdir = tempfile.mkdtemp() + handler = get_apt_handler(destdir, mirror, suite, architecture) + filename = handler.download_package('syslinux-common', destdir) + # these files are put directly into cdroot/isolinux + syslinux_files = [ + 'ldlinux.c32', 'libcom32.c32', 'vesamenu.c32', + 'libutil.c32', 'libmenu.c32', 'libgpl.c32', 'hdt.c32' + ] + if filename: + runcmd(['dpkg', '-x', filename, destdir]) + for syslinux_file in syslinux_files: + shutil.copyfile( + os.path.join(destdir, "usr/lib/syslinux/modules/bios/%s" % syslinux_file), + "%s/%s" % (cdroot, syslinux_file)) + shutil.copyfile( + os.path.join(destdir, "usr/lib/syslinux/memdisk"), + "%s/memdisk" % (cdroot,)) + else: + handler.clean_up_apt() + shutil.rmtree(destdir) + raise cliapp.AppException('Unable to download syslinux-common') + filename = handler.download_package('isolinux', destdir) + if filename: + runcmd(['dpkg', '-x', filename, destdir]) + shutil.copyfile( + os.path.join(destdir, "usr/lib/ISOLINUX/isolinux.bin"), + "%s/isolinux.bin" % cdroot) + else: + handler.clean_up_apt() + shutil.rmtree(destdir) + raise cliapp.AppException('Unable to download isolinux') + handler.clean_up_apt() + shutil.rmtree(destdir) + + cfg = generate_cfg(bootconfig) + with open("%s/%s" % (cdroot, "menu.cfg"), "w") as cfgout: + cfgout.write(cfg) + + # Fix the menu display size in stdmeny.cfg (#861421) + runcmd(['sed', '-i', 's,menu rows 12,menu rows 8,g', + os.path.join(cdroot, 'stdmenu.cfg')])
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/_modules/lwr/vm.html b/docs/live-wrapper/_modules/lwr/vm.html new file mode 100644 index 0000000000000000000000000000000000000000..b43a728a1bc201b0d00d23edb0db266fdc95877f --- /dev/null +++ b/docs/live-wrapper/_modules/lwr/vm.html @@ -0,0 +1,155 @@ + + + + + + + + lwr.vm — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for lwr.vm

+# live-wrapper - Wrapper for vmdebootstrap for creating live images
+# (C) Iain R. Learmonth 2015 <irl@debian.org>
+# See COPYING for terms of usage, modification and redistribution.
+#
+# lwr/vm.py - vmdebootstrap helpers
+
+"""
+The lwr.vm module provides helpers for calling vmdebootstrap as part of the
+image creation process.
+
+Directory listing of /live/
+filesystem.packages
+filesystem.packages-remove
+filesystem.squashfs
+initrd.img
+vmlinuz
+
+.. note::
+    This module requires that the vmdebootstrap modules be available in the
+    Python path.
+"""
+
+import os
+import logging
+
+import cliapp
+from vmdebootstrap.base import runcmd
+
+# pylint: disable=superfluous-parens,missing-docstring,too-few-public-methods
+
+
[docs]class VMDebootstrap(object): + + def __init__(self, distribution, architecture, mirror, cdroot, customise, apt_mirror): + self.cdroot = cdroot + self.args = ["vmdebootstrap", + "--sudo", "--lock-root-password", + "--no-systemd-networkd", + "--arch", architecture, + "--enable-dhcp", "--configure-apt", "--verbose", + "--log", "vmdebootstrap.log", + "--squash=%s" % os.path.join(self.cdroot, 'live'), + "--log-level", "debug"] + self.args.extend(["--distribution", distribution]) + self.args.extend(["--mirror", mirror]) + self.args.extend(["--apt-mirror", apt_mirror]) + + # FIXME: Logging should happen here + if os.path.exists(customise): + self.args.extend(["--customize", customise]) + else: + raise cliapp.AppException("Could not read customise script at %s" % customise) + +
[docs] def run(self): + logging.debug("vmdebootstrap command: %s" % (' '.join(self.args),)) + runcmd(self.args) + logging.debug("vmdebootstrap completed, see vmdebootstrap.log for details")
+ + +
[docs]def detect_kernels(cdroot): + versions = [] + filenames = os.listdir(os.path.join(cdroot, "live")) + for filename in filenames: + if filename[0:8] == "vmlinuz-": + versions.append(filename[8:]) + return versions
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/_modules/lwr/xorriso.html b/docs/live-wrapper/_modules/lwr/xorriso.html new file mode 100644 index 0000000000000000000000000000000000000000..25a84f3e430309a4b268ad3319d1cffd9b232e46 --- /dev/null +++ b/docs/live-wrapper/_modules/lwr/xorriso.html @@ -0,0 +1,161 @@ + + + + + + + + lwr.xorriso — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for lwr.xorriso

+# live-wrapper - Wrapper for vmdebootstrap for creating live images
+# (C) Iain R. Learmonth 2015 <irl@debian.org>
+# See COPYING for terms of usage, modification and redistribution.
+#
+# lwr/xorriso.py - xorriso helpers
+
+"""
+The lwr.xorriso module provides helpers for calling xorriso as part of the
+image creation process.
+
+.. note:: This module requires that the vmdebootstrap modules be available in
+          the Python path.
+"""
+
+import cliapp
+from vmdebootstrap.base import runcmd
+
+# pylint: disable=missing-docstring,superfluous-parens
+
+
[docs]class Xorriso(object): + """ + This class acts as a wrapper for ``xorriso`` and allows for the command + line arguments passed to be built based on the settings given to the main + application. + """ + + def __init__(self, image_output, volume_id, isolinux=True, grub=True): + self.image_output = image_output + self.volume_id = volume_id + self.isolinux = isolinux + self.grub = grub + self.args = ['xorriso'] + +
[docs] def build_args(self, cdroot): + if len(self.args) > 1: + cliapp.AppException("Attempted to rebuild xorriso arguments while" + "they are already defined!") + self.args.extend(['-outdev', self.image_output]) + self.args.extend(['-volid', self.volume_id]) + self.args.extend(['-map', cdroot, '/']) + self.args.extend(['-chmod', '0755', '/', '--']) + + if self.isolinux: + self.args.extend(['-boot_image', 'isolinux', 'dir=/isolinux', + '-boot_image', 'isolinux', + 'system_area=/usr/lib/ISOLINUX/isohdpfx.bin']) + + if self.grub: + self.args.extend(['-boot_image', 'any', 'next', + '-boot_image', 'any', 'efi_path=boot/grub/efi.img', + '-boot_image', 'isolinux', 'partition_entry=gpt_basdat' + ]) + + return self.args
+ +
[docs] def build_image(self): + """ + This will call ``xorriso`` with the arguments built. + + .. note:: + :any:`Xorriso.build_args` must have been called before + calling :any:`Xorriso.build_image`. + + .. warning:: + The ``xorriso`` binary must be present in the current PATH. + """ + if len(self.args) == 1: + cliapp.AppException("Attempted to run xorriso before building " + "arguments!") + print(' '.join(self.args)) + runcmd(self.args)
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/_sources/advanced.rst.txt b/docs/live-wrapper/_sources/advanced.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..b3b42998e24f2ce63b0af9c789698de8e0be0065 --- /dev/null +++ b/docs/live-wrapper/_sources/advanced.rst.txt @@ -0,0 +1,29 @@ +Advanced Topics +=============== + +Bootloader Customisation +------------------------ + +By default, both ISOLINUX (for BIOS boot) and GRUB 2 (for EFI boot) are +installed into the images. A ``loopback.cfg`` file is also installed to allow +for the image to be booted while still an ISO image in a filesystem. + +You can pass ``--no-isolinux`` to prevent the installation of ISOLINUX to the +image if you do not want ISOLINUX. + +You can pass ``--no-grub`` to prevent the installation of GRUB to the image. + +If you do not want GRUB installed but you would still like the ``loopback.cfg`` +file to be installed, you can pass ``--grub-loopback-only``. + +Using an Alternative Build Directory +------------------------------------ + +Temporary directories are created using the Python standard library functions +for doing so. On Debian systems, this typically means that the directories are +created in ``/tmp``. If this is problematic for you, perhaps due to filesystem +permissions, you can change the path that Python will use to create directories +in by using the ``TMP`` environment variable, for example:: + + sudo TMP=/other/path lwr --blah --blah + diff --git a/docs/live-wrapper/_sources/dev.rst.txt b/docs/live-wrapper/_sources/dev.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..bcdb85d16b3961e3c33d38f2d863f263590cd88e --- /dev/null +++ b/docs/live-wrapper/_sources/dev.rst.txt @@ -0,0 +1,9 @@ + +Developer Documentation +======================= + +.. toctree:: + :maxdepth: 2 + + lwr + diff --git a/docs/live-wrapper/_sources/index.rst.txt b/docs/live-wrapper/_sources/index.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..1b9e5dc1c134ade0f14af0597d04e9d0eac3f8f4 --- /dev/null +++ b/docs/live-wrapper/_sources/index.rst.txt @@ -0,0 +1,20 @@ +Welcome to live-wrapper's documentation! +========================================= + +Contents: + +.. toctree:: + :maxdepth: 2 + + intro + quickstart + advanced + dev + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/live-wrapper/_sources/intro.rst.txt b/docs/live-wrapper/_sources/intro.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..afcac0e3ef6cd914d3ffe4be404da72d91209fbd --- /dev/null +++ b/docs/live-wrapper/_sources/intro.rst.txt @@ -0,0 +1,11 @@ +Introduction +============ + +live-wrapper is a tool produced by the `Debian Live Team +`_ that can be used to create +Debian-based live images for use with CDs, DVDs or USB sticks. + +live-wrapper is designed to, as far as is possible, exist only as glue between +existing tools. The root filesystem is built using `vmdebootstrap` and +isohybrid image creation is provided by `xorriso`. + diff --git a/docs/live-wrapper/_sources/lwr.rst.txt b/docs/live-wrapper/_sources/lwr.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..db707c935d14f68c885364ebde67f6f6d0910ffc --- /dev/null +++ b/docs/live-wrapper/_sources/lwr.rst.txt @@ -0,0 +1,36 @@ + +Helper Documentation +==================== + +Root Filesystem Helpers +----------------------- + +.. automodule:: lwr.vm + :members: + :undoc-members: + +Bootloader Helpers +------------------ + +.. automodule:: lwr.grub + :members: + :undoc-members: + +.. automodule:: lwr.isolinux + :members: + :undoc-members: + +CD Filesystem Helpers +--------------------- + +.. automodule:: lwr.disk + :members: + :undoc-members: + +ISO Creation Helpers +-------------------- + +.. automodule:: lwr.xorriso + :members: + :undoc-members: + diff --git a/docs/live-wrapper/_sources/quickstart.rst.txt b/docs/live-wrapper/_sources/quickstart.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba078d405ecc19768fc5ccf1c316131d1ab15ee9 --- /dev/null +++ b/docs/live-wrapper/_sources/quickstart.rst.txt @@ -0,0 +1,181 @@ +Quickstart +========== + +Super Fast Quickstart +--------------------- + +Building images with live-wrapper is quite simple. For the impatient: + +.. code-block:: shell + + sudo apt install live-wrapper + sudo lwr + +This will build you a file named ``output.iso`` in the current directory +containing a minimal live-image. + +.. warning:: + + Currently live-wrapper will create a lot of files and directories in the + current working directory. There is a TODO item to move these to a temporary + location and clean up afterwards, though this has not yet been fully + implemented. You may want to use an empty directory to run ``lwr`` in. + +Customising the Image +--------------------- + +There are a number of supported command-line arguments that can be passed to +live-wrapper. These change the behaviour to create a customised image. + +Changing the Distribution +~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, the ISO image will be built using the ``stretch`` distribution. If +you'd like to build using ``buster`` or ``sid`` you can pass the ``-d`` +parameter to live-wrapper like so: + +.. code-block:: shell + + sudo lwr -d buster + +.. note:: + + You must use the codename, and not the suite (e.g. stable), when specifying + the distribution. + +Using an Alternative Mirror +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, ``vmdebootstrap`` will use the mirror configured in your +``/etc/apt/sources.list``. If you have a faster mirror available, you may want +to change the mirror you're using to create the image. You can do this with the +``-m`` parameter: + +.. code-block:: shell + + sudo lwr -m http://localhost/debian/ + +You may also configure the mirror that will be configured *inside* the +image. This will be used for any extra packages that are specified, +and will also be the mirror that the image will use after the build is +complete. Change this with the ``--apt-mirror`` parameter: + +.. code-block:: shell + + sudo lwr -m http://localhost/debian/ --apt-mirror http://deb.debian.org/debian + +By default this is set to ``http://deb.debian.org/debian`` + +Customising Packages +~~~~~~~~~~~~~~~~~~~~ + +There are several methods for specifying extra packages to be +installed into the live image: + + * ``-t`` / ``--tasks`` should be used to give a list of **task** + packages to be included in the image. These will be installed as + part of the ``vmdebootstrap`` hook, so all their "Depends" and + "Recommends" will be installed too. + + * ``-e`` / ``--extra`` allows for a list of extra non-task packages + to be installed, again with all their "Depends" and "Recommends" + included. + + * ``-f`` / ``--firmware`` allows for a list of firmware packages to + be installed in the image, again with all their "Depends" and + "Recommends" included. **Also** each of these packages will be + downloaded and saved into the image so that an included installer + will automatically find them for installation. **BEWARE** that + using this option is likely to mean your image will include + non-free software. Check the licensing carefully before + distributing it. + +For example: + +.. code-block:: shell + + sudo lwr -e vim -t science-typesetting + +.. code-block:: shell + + sudo lwr -e "emacs25 jed" -t live-task-xfce -f "firmware-iwlwifi firmware-realtek" + +Finally, if you want to make a live image that will work as a +standalone source for installation you will need to specify a list of +"base" packages. This is the list of packages that will need to be +installed *after* the contents of the live image is copied to the new +system. This is essentially a list of bootloader packages and a few +utility packages that they use. Specify this list with the +``--base_debs`` parameter. For example, this is the list needed for +Debian Stretch on amd64: + +.. code-block:: shell + + sudo lwr --base_debs "eject pciutils usbutils \ + keyboard-configuration console-setup \ + grub-efi-amd64 grub-efi-amd64-bin grub-pc" + +The customise script also has a part to play in this area, to ensure +that all the needed dependencies for these packages are also added to +the image. + +Setting the Volume ID +--------------------- + +The Volume ID is the embedded label in the ISO image; this is what +will be displayed on the desktop when a DVD or USB flash drive +containing the image is inserted into a computer. The default is +``DEBIAN LIVE``, or you can change this using the ``--volume_id`` +parameter. There is a 32-character limit for what can be specified +here. Example: + +.. code-block:: shell + + sudo lwr --volume_id "My live image" + +Testing the Image with QEMU +--------------------------- + +You can easily test your created live images with QEMU. + +.. warning:: You will need to increase the amount of memory available to + QEMU when running the live image. The image will crash if run + with the default memory limit. + +To test the image using BIOS boot: + +.. code-block:: shell + + qemu-system-x86_64 -m 2G -cdrom live.iso + +For EFI boot you will need to install the ``ovmf`` package and then run: + + +.. code-block:: shell + + qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -m 2G -cdrom live.iso + +To test with an emulated USB device, run: + +.. code-block:: shell + + qemu-system-x86_64 -m 2G -usbdevice disk:live.iso + +To test the speech synthesis installer option, you will need to add the +following to the QEMU invocation: + +.. code-block:: shell + + -soundhw sb16,es1370,adlib + +.. note:: + + Using -hda to attach the disk image will prevent the installer from detecting + the "CD-ROM" as this is not a removable device, it is an emulated attached hard + disk drive. + +Next Steps +---------- + +To learn more about using live-wrapper, you can read the man page or check out +the :doc:`advanced` section of this documentation. diff --git a/docs/live-wrapper/_static/ajax-loader.gif b/docs/live-wrapper/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 Binary files /dev/null and b/docs/live-wrapper/_static/ajax-loader.gif differ diff --git a/docs/live-wrapper/_static/basic.css b/docs/live-wrapper/_static/basic.css new file mode 100644 index 0000000000000000000000000000000000000000..dc88b5a2d0086b2364d6626b16700bbb0f82821e --- /dev/null +++ b/docs/live-wrapper/_static/basic.css @@ -0,0 +1,632 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/live-wrapper/_static/classic.css b/docs/live-wrapper/_static/classic.css new file mode 100644 index 0000000000000000000000000000000000000000..22fa0bde7624bb8007671c2292ffc0dee1ae0ba0 --- /dev/null +++ b/docs/live-wrapper/_static/classic.css @@ -0,0 +1,261 @@ +/* + * classic.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- classic theme. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +code { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning code { + background: #efc2c2; +} + +.note code { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +div.code-block-caption { + color: #efefef; + background-color: #1c4e63; +} \ No newline at end of file diff --git a/docs/live-wrapper/_static/comment-bright.png b/docs/live-wrapper/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e Binary files /dev/null and b/docs/live-wrapper/_static/comment-bright.png differ diff --git a/docs/live-wrapper/_static/comment-close.png b/docs/live-wrapper/_static/comment-close.png new file mode 100644 index 0000000000000000000000000000000000000000..4d91bcf57de866a901a89a2a68c0f36af1114841 Binary files /dev/null and b/docs/live-wrapper/_static/comment-close.png differ diff --git a/docs/live-wrapper/_static/comment.png b/docs/live-wrapper/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc0cbd512bdeefcb1984c99d8e577efb77f006 Binary files /dev/null and b/docs/live-wrapper/_static/comment.png differ diff --git a/docs/live-wrapper/_static/default.css b/docs/live-wrapper/_static/default.css new file mode 100644 index 0000000000000000000000000000000000000000..81b9363634e0fd7a2651282abc4408ffec371df0 --- /dev/null +++ b/docs/live-wrapper/_static/default.css @@ -0,0 +1 @@ +@import url("classic.css"); diff --git a/docs/live-wrapper/_static/doctools.js b/docs/live-wrapper/_static/doctools.js new file mode 120000 index 0000000000000000000000000000000000000000..e51872e75f2eb5bf2783e605ed520300dc8abb72 --- /dev/null +++ b/docs/live-wrapper/_static/doctools.js @@ -0,0 +1 @@ +../../../../javascript/sphinxdoc/1.0/doctools.js \ No newline at end of file diff --git a/docs/live-wrapper/_static/down-pressed.png b/docs/live-wrapper/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 Binary files /dev/null and b/docs/live-wrapper/_static/down-pressed.png differ diff --git a/docs/live-wrapper/_static/down.png b/docs/live-wrapper/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 Binary files /dev/null and b/docs/live-wrapper/_static/down.png differ diff --git a/docs/live-wrapper/_static/file.png b/docs/live-wrapper/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 Binary files /dev/null and b/docs/live-wrapper/_static/file.png differ diff --git a/docs/live-wrapper/_static/jquery.js b/docs/live-wrapper/_static/jquery.js new file mode 120000 index 0000000000000000000000000000000000000000..e082064359a7d1ee80ec635dea3b4d21c18f21c8 --- /dev/null +++ b/docs/live-wrapper/_static/jquery.js @@ -0,0 +1 @@ +../../../../javascript/jquery/jquery.js \ No newline at end of file diff --git a/docs/live-wrapper/_static/minus.png b/docs/live-wrapper/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d Binary files /dev/null and b/docs/live-wrapper/_static/minus.png differ diff --git a/docs/live-wrapper/_static/plus.png b/docs/live-wrapper/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d Binary files /dev/null and b/docs/live-wrapper/_static/plus.png differ diff --git a/docs/live-wrapper/_static/pygments.css b/docs/live-wrapper/_static/pygments.css new file mode 100644 index 0000000000000000000000000000000000000000..20c4814dcf0d3f437ee9a46f5957e3165aa5fb17 --- /dev/null +++ b/docs/live-wrapper/_static/pygments.css @@ -0,0 +1,69 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #208050 } /* Literal.Number.Bin */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/live-wrapper/_static/searchtools.js b/docs/live-wrapper/_static/searchtools.js new file mode 120000 index 0000000000000000000000000000000000000000..2d336727b4f6b3de3e33946c86dc1abe7d8dde31 --- /dev/null +++ b/docs/live-wrapper/_static/searchtools.js @@ -0,0 +1 @@ +../../../../javascript/sphinxdoc/1.0/searchtools.js \ No newline at end of file diff --git a/docs/live-wrapper/_static/sidebar.js b/docs/live-wrapper/_static/sidebar.js new file mode 120000 index 0000000000000000000000000000000000000000..083beea80ad9bfc7f6ee032e6699ca7000c74d7e --- /dev/null +++ b/docs/live-wrapper/_static/sidebar.js @@ -0,0 +1 @@ +../../../../javascript/sphinxdoc/1.0/sidebar.js \ No newline at end of file diff --git a/docs/live-wrapper/_static/underscore.js b/docs/live-wrapper/_static/underscore.js new file mode 120000 index 0000000000000000000000000000000000000000..1f8b0c84ed8983bfaf35fb3f29c1061d1ac65155 --- /dev/null +++ b/docs/live-wrapper/_static/underscore.js @@ -0,0 +1 @@ +../../../../javascript/underscore/underscore.js \ No newline at end of file diff --git a/docs/live-wrapper/_static/up-pressed.png b/docs/live-wrapper/_static/up-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..acee3b68efbbfb9de3bfa73fce2531380f4bd820 Binary files /dev/null and b/docs/live-wrapper/_static/up-pressed.png differ diff --git a/docs/live-wrapper/_static/up.png b/docs/live-wrapper/_static/up.png new file mode 100644 index 0000000000000000000000000000000000000000..2a940a7da7c14e6a36901e83306849ba7efad4d4 Binary files /dev/null and b/docs/live-wrapper/_static/up.png differ diff --git a/docs/live-wrapper/advanced.html b/docs/live-wrapper/advanced.html new file mode 100644 index 0000000000000000000000000000000000000000..901f645d5898f555124a1d640305c63a93cfa737 --- /dev/null +++ b/docs/live-wrapper/advanced.html @@ -0,0 +1,148 @@ + + + + + + + + Advanced Topics — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Advanced Topics

+
+

Bootloader Customisation

+

By default, both ISOLINUX (for BIOS boot) and GRUB 2 (for EFI boot) are +installed into the images. A loopback.cfg file is also installed to allow +for the image to be booted while still an ISO image in a filesystem.

+

You can pass --no-isolinux to prevent the installation of ISOLINUX to the +image if you do not want ISOLINUX.

+

You can pass --no-grub to prevent the installation of GRUB to the image.

+

If you do not want GRUB installed but you would still like the loopback.cfg +file to be installed, you can pass --grub-loopback-only.

+
+
+

Using an Alternative Build Directory

+

Temporary directories are created using the Python standard library functions +for doing so. On Debian systems, this typically means that the directories are +created in /tmp. If this is problematic for you, perhaps due to filesystem +permissions, you can change the path that Python will use to create directories +in by using the TMP environment variable, for example:

+
sudo TMP=/other/path lwr --blah --blah
+
+
+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/copyright b/docs/live-wrapper/copyright new file mode 100644 index 0000000000000000000000000000000000000000..6e008bd717528cef83e407abd392bcd5bde9ef55 --- /dev/null +++ b/docs/live-wrapper/copyright @@ -0,0 +1,52 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ + +Files: * +Copyright: (C) 2015 Iain R. Learmonth +License: BSD-2-clause + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +Files: yarns/* +Copyright: (c) 2015 Lars Wirzenius + (c) 2016 Neil Williams +License: GPL-3.0+ + +License: GPL-3.0+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-3". + diff --git a/docs/live-wrapper/dev.html b/docs/live-wrapper/dev.html new file mode 100644 index 0000000000000000000000000000000000000000..86b6a8b5965b390f7fd0a2c13b3b456d0bf9d186 --- /dev/null +++ b/docs/live-wrapper/dev.html @@ -0,0 +1,128 @@ + + + + + + + + Developer Documentation — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/genindex.html b/docs/live-wrapper/genindex.html new file mode 100644 index 0000000000000000000000000000000000000000..56bf34335c56d4c7ab2430b48c24becd80202add --- /dev/null +++ b/docs/live-wrapper/genindex.html @@ -0,0 +1,197 @@ + + + + + + + + + Index — live-wrapper 0.7 documentation + + + + + + + + + + + + + + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/index.html b/docs/live-wrapper/index.html new file mode 100644 index 0000000000000000000000000000000000000000..e518502a463a8f51d9a2f524db9f3904a68ff3aa --- /dev/null +++ b/docs/live-wrapper/index.html @@ -0,0 +1,144 @@ + + + + + + + + Welcome to live-wrapper’s documentation! — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/intro.html b/docs/live-wrapper/intro.html new file mode 100644 index 0000000000000000000000000000000000000000..364c117dba7edd89c0f95cf3fc28dd455cdd03cb --- /dev/null +++ b/docs/live-wrapper/intro.html @@ -0,0 +1,122 @@ + + + + + + + + Introduction — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Introduction

+

live-wrapper is a tool produced by the Debian Live Team that can be used to create +Debian-based live images for use with CDs, DVDs or USB sticks.

+

live-wrapper is designed to, as far as is possible, exist only as glue between +existing tools. The root filesystem is built using vmdebootstrap and +isohybrid image creation is provided by xorriso.

+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/lwr.html b/docs/live-wrapper/lwr.html new file mode 100644 index 0000000000000000000000000000000000000000..b498a544d366f2a0ecfe5a56d39ef0f79d966568 --- /dev/null +++ b/docs/live-wrapper/lwr.html @@ -0,0 +1,245 @@ + + + + + + + + Helper Documentation — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Helper Documentation

+
+

Root Filesystem Helpers

+

The lwr.vm module provides helpers for calling vmdebootstrap as part of the +image creation process.

+

Directory listing of /live/ +filesystem.packages +filesystem.packages-remove +filesystem.squashfs +initrd.img +vmlinuz

+
+

Note

+

This module requires that the vmdebootstrap modules be available in the +Python path.

+
+
+
+class lwr.vm.VMDebootstrap(distribution, architecture, mirror, cdroot, customise, apt_mirror)[source]
+
+
+run()[source]
+
+ +
+ +
+
+lwr.vm.detect_kernels(cdroot)[source]
+
+ +
+
+

Bootloader Helpers

+

The lwr.grub module contains helpers for GRUB 2 including the installation +of GRUB files to the cdroot and the generation of the grub.cfg and loopback.cfg +files.

+
+
+lwr.grub.generate_cfg(bootconfig, submenu=False)[source]
+
+ +
+
+lwr.grub.install_grub(cdroot, bootconfig)[source]
+

Can use cdroot as a relative path inside the actual cdroot. +The d-i/ and live/ directories are used directly.

+
+ +

The lwr.isolinux module contains helpers for isolinux including the +installation of isolinux files to the cdroot and the generation of the +isolinux.cfg files. +Directory listing of /isolinux/ +advanced.cfg boot.cat hdt.c32 install.cfg isolinux.bin isolinux.cfg +ldlinux.c32 libcom32.c32 libutil.c32 live.cfg menu.cfg splash.png +stdmenu.cfg vesamenu.c32

+
+
+lwr.isolinux.generate_cfg(bootconfig, submenu=False)[source]
+
+ +
+
+lwr.isolinux.install_isolinux(cdroot, mirror, suite, architecture, bootconfig)[source]
+

Download and unpack the correct syslinux-common +and isolinux packages for isolinux support. +ISOLINUX looks first in boot/isolinux/ then isolinux/ then / +This function puts all files into isolinux/

+
+ +
+
+

CD Filesystem Helpers

+

This module provides helpers for generating the metadata stored in .disk/ on +the cdroot.

+
+
+lwr.disk.get_default_description(distribution)[source]
+
+ +
+
+lwr.disk.install_disk_info(cdroot, description, xorriso_args)[source]
+

This function creates the .disk/ metadata and installs it into the +specified cdroot.

+
+ +
+
+

ISO Creation Helpers

+

The lwr.xorriso module provides helpers for calling xorriso as part of the +image creation process.

+
+

Note

+

This module requires that the vmdebootstrap modules be available in +the Python path.

+
+
+
+class lwr.xorriso.Xorriso(image_output, volume_id, isolinux=True, grub=True)[source]
+

This class acts as a wrapper for xorriso and allows for the command +line arguments passed to be built based on the settings given to the main +application.

+
+
+build_args(cdroot)[source]
+
+ +
+
+build_image()[source]
+

This will call xorriso with the arguments built.

+
+

Note

+

Xorriso.build_args must have been called before +calling Xorriso.build_image.

+
+
+

Warning

+

The xorriso binary must be present in the current PATH.

+
+
+ +
+ +
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/objects.inv b/docs/live-wrapper/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..3533f1445d9d783d67b4e8688307c083f0f09d89 Binary files /dev/null and b/docs/live-wrapper/objects.inv differ diff --git a/docs/live-wrapper/py-modindex.html b/docs/live-wrapper/py-modindex.html new file mode 100644 index 0000000000000000000000000000000000000000..7d02b92db2527ae1307365ec8aca4a316beac38d --- /dev/null +++ b/docs/live-wrapper/py-modindex.html @@ -0,0 +1,133 @@ + + + + + + + + Python Module Index — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + + + +
+
+
+
+ + +

Python Module Index

+ +
+ l +
+ + + + + + + + + + + + + + + + + + + + + + +
 
+ l
+ lwr +
    + lwr.disk +
    + lwr.grub +
    + lwr.isolinux +
    + lwr.vm +
    + lwr.xorriso +
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/quickstart.html b/docs/live-wrapper/quickstart.html new file mode 100644 index 0000000000000000000000000000000000000000..da7c6de19566756bd178d00d45875710f03b63ad --- /dev/null +++ b/docs/live-wrapper/quickstart.html @@ -0,0 +1,285 @@ + + + + + + + + Quickstart — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Quickstart

+
+

Super Fast Quickstart

+

Building images with live-wrapper is quite simple. For the impatient:

+
sudo apt install live-wrapper
+sudo lwr
+
+
+

This will build you a file named output.iso in the current directory +containing a minimal live-image.

+
+

Warning

+

Currently live-wrapper will create a lot of files and directories in the +current working directory. There is a TODO item to move these to a temporary +location and clean up afterwards, though this has not yet been fully +implemented. You may want to use an empty directory to run lwr in.

+
+
+
+

Customising the Image

+

There are a number of supported command-line arguments that can be passed to +live-wrapper. These change the behaviour to create a customised image.

+
+

Changing the Distribution

+

By default, the ISO image will be built using the stretch distribution. If +you’d like to build using buster or sid you can pass the -d +parameter to live-wrapper like so:

+
sudo lwr -d buster
+
+
+
+

Note

+

You must use the codename, and not the suite (e.g. stable), when specifying +the distribution.

+
+
+
+

Using an Alternative Mirror

+

By default, vmdebootstrap will use the mirror configured in your +/etc/apt/sources.list. If you have a faster mirror available, you may want +to change the mirror you’re using to create the image. You can do this with the +-m parameter:

+
sudo lwr -m http://localhost/debian/
+
+
+

You may also configure the mirror that will be configured inside the +image. This will be used for any extra packages that are specified, +and will also be the mirror that the image will use after the build is +complete. Change this with the --apt-mirror parameter:

+
sudo lwr -m http://localhost/debian/ --apt-mirror http://deb.debian.org/debian
+
+
+

By default this is set to http://deb.debian.org/debian

+
+
+

Customising Packages

+

There are several methods for specifying extra packages to be +installed into the live image:

+
+
    +
  • -t / --tasks should be used to give a list of task +packages to be included in the image. These will be installed as +part of the vmdebootstrap hook, so all their “Depends” and +“Recommends” will be installed too.
  • +
  • -e / --extra allows for a list of extra non-task packages +to be installed, again with all their “Depends” and “Recommends” +included.
  • +
  • -f / --firmware allows for a list of firmware packages to +be installed in the image, again with all their “Depends” and +“Recommends” included. Also each of these packages will be +downloaded and saved into the image so that an included installer +will automatically find them for installation. BEWARE that +using this option is likely to mean your image will include +non-free software. Check the licensing carefully before +distributing it.
  • +
+
+

For example:

+
sudo lwr -e vim -t science-typesetting
+
+
+
sudo lwr -e "emacs25 jed" -t live-task-xfce -f "firmware-iwlwifi firmware-realtek"
+
+
+

Finally, if you want to make a live image that will work as a +standalone source for installation you will need to specify a list of +“base” packages. This is the list of packages that will need to be +installed after the contents of the live image is copied to the new +system. This is essentially a list of bootloader packages and a few +utility packages that they use. Specify this list with the +--base_debs parameter. For example, this is the list needed for +Debian Stretch on amd64:

+
sudo lwr --base_debs "eject pciutils usbutils \
+                      keyboard-configuration console-setup \
+                      grub-efi-amd64 grub-efi-amd64-bin grub-pc"
+
+
+

The customise script also has a part to play in this area, to ensure +that all the needed dependencies for these packages are also added to +the image.

+
+
+
+

Setting the Volume ID

+

The Volume ID is the embedded label in the ISO image; this is what +will be displayed on the desktop when a DVD or USB flash drive +containing the image is inserted into a computer. The default is +DEBIAN LIVE, or you can change this using the --volume_id +parameter. There is a 32-character limit for what can be specified +here. Example:

+
sudo lwr --volume_id "My live image"
+
+
+
+
+

Testing the Image with QEMU

+

You can easily test your created live images with QEMU.

+
+

Warning

+

You will need to increase the amount of memory available to +QEMU when running the live image. The image will crash if run +with the default memory limit.

+
+

To test the image using BIOS boot:

+
qemu-system-x86_64 -m 2G -cdrom live.iso
+
+
+

For EFI boot you will need to install the ovmf package and then run:

+
qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -m 2G -cdrom live.iso
+
+
+

To test with an emulated USB device, run:

+
qemu-system-x86_64 -m 2G -usbdevice disk:live.iso
+
+
+

To test the speech synthesis installer option, you will need to add the +following to the QEMU invocation:

+
-soundhw sb16,es1370,adlib
+
+
+
+

Note

+

Using -hda to attach the disk image will prevent the installer from detecting +the “CD-ROM” as this is not a removable device, it is an emulated attached hard +disk drive.

+
+
+
+

Next Steps

+

To learn more about using live-wrapper, you can read the man page or check out +the Advanced Topics section of this documentation.

+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/search.html b/docs/live-wrapper/search.html new file mode 100644 index 0000000000000000000000000000000000000000..755fc6fb3db0c608565c811199f941858e0c1bf2 --- /dev/null +++ b/docs/live-wrapper/search.html @@ -0,0 +1,107 @@ + + + + + + + + Search — live-wrapper 0.7 documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Search

+
+ +

+ Please activate JavaScript to enable the search + functionality. +

+
+

+ From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

+
+ + + +
+ +
+ +
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/live-wrapper/searchindex.js b/docs/live-wrapper/searchindex.js new file mode 100644 index 0000000000000000000000000000000000000000..acd706b9d0c1173e5c83f11dd9966902a78fc248 --- /dev/null +++ b/docs/live-wrapper/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["advanced","dev","index","intro","lwr","quickstart"],envversion:50,filenames:["advanced.rst","dev.rst","index.rst","intro.rst","lwr.rst","quickstart.rst"],objects:{"lwr.disk":{get_default_description:[4,1,1,""],install_disk_info:[4,1,1,""]},"lwr.grub":{generate_cfg:[4,1,1,""],install_grub:[4,1,1,""]},"lwr.isolinux":{generate_cfg:[4,1,1,""],install_isolinux:[4,1,1,""]},"lwr.vm":{VMDebootstrap:[4,2,1,""],detect_kernels:[4,1,1,""]},"lwr.vm.VMDebootstrap":{run:[4,3,1,""]},"lwr.xorriso":{Xorriso:[4,2,1,""]},"lwr.xorriso.Xorriso":{build_args:[4,3,1,""],build_image:[4,3,1,""]},lwr:{disk:[4,0,0,"-"],grub:[4,0,0,"-"],isolinux:[4,0,0,"-"],vm:[4,0,0,"-"],xorriso:[4,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"class":4,"default":[0,5],"final":5,"function":[0,4],"new":5,"super":2,"true":4,"while":0,CDs:3,For:5,The:[3,4,5],There:5,These:5,Using:2,about:5,act:4,actual:4,add:5,added:5,adlib:5,advanc:[2,4,5],after:5,afterward:5,again:5,all:[4,5],allow:[0,4,5],also:[0,5],altern:2,amd64:5,amount:5,ani:5,applic:4,apt:5,apt_mirror:4,architectur:4,area:5,argument:[4,5],attach:5,automat:5,avail:[4,5],base:[3,4,5],base_deb:5,been:[4,5],befor:[4,5],behaviour:5,between:3,bewar:5,bin:[4,5],binari:4,bio:[0,5],blah:0,boot:[0,4,5],bootconfig:4,bootload:[1,2,5],both:0,build:[2,5],build_arg:4,build_imag:4,built:[3,4,5],buster:5,c32:4,call:4,can:[0,3,4,5],carefulli:5,cat:4,cdrom:5,cdroot:4,cfg:[0,4],chang:0,charact:5,check:5,clean:5,codenam:5,command:[4,5],common:4,complet:5,comput:5,configur:5,consol:5,contain:[4,5],content:[2,5],copi:5,correct:4,crash:5,creat:[0,3,4,5],creation:[1,3],current:[4,5],customis:[2,4],deb:5,debian:[0,3,5],depend:5,descript:4,design:3,desktop:5,detect:5,detect_kernel:4,develop:2,devic:5,directli:4,directori:[2,4,5],disk:[4,5],displai:5,distribut:4,document:5,doing:0,download:[4,5],drive:5,due:0,dvd:[3,5],each:5,easili:5,efi:[0,5],eject:5,emacs25:5,embed:5,empti:5,emul:5,ensur:5,environ:0,es1370:5,essenti:5,etc:5,exampl:[0,5],exist:3,extra:5,fals:4,far:3,fast:2,faster:5,few:5,file:[0,4,5],filesystem:[0,1,3],find:5,firmwar:5,first:4,flash:5,follow:5,free:5,from:5,fulli:5,gener:4,generate_cfg:4,get_default_descript:4,give:5,given:4,glue:3,grub:[0,4,5],hard:5,has:5,have:[4,5],hda:5,hdt:4,helper:[1,2],here:5,hook:5,http:5,imag:[0,2,3,4],image_output:4,img:4,impati:5,implement:5,includ:[4,5],increas:5,index:2,initrd:4,insert:5,insid:[4,5],instal:[0,4,5],install_disk_info:4,install_grub:4,install_isolinux:4,introduct:2,invoc:5,iso:[0,1,5],isohybrid:3,isolinux:[0,4],item:5,iwlwifi:5,jed:5,keyboard:5,label:5,ldlinux:4,learn:5,libcom32:4,librari:0,libutil:4,licens:5,like:[0,5],limit:5,line:[4,5],list:[4,5],live:[3,4,5],localhost:5,locat:5,look:4,loopback:[0,4],lot:5,lwr:[0,4,5],mai:5,main:4,make:5,man:5,mean:[0,5],memori:5,menu:4,metadata:4,method:5,minim:5,mirror:4,modul:[2,4],more:5,move:5,must:[4,5],name:5,need:5,next:2,non:5,number:5,onli:[0,3],option:5,org:5,other:0,out:5,output:5,ovmf:5,packag:4,page:[2,5],paramet:5,part:[4,5],pass:[0,4,5],path:[0,4],pciutil:5,perhap:0,permiss:0,plai:5,png:4,possibl:3,present:4,prevent:[0,5],problemat:0,process:4,produc:3,provid:[3,4],put:4,python:[0,4],qemu:2,quickstart:2,quit:5,read:5,realtek:5,recommend:5,rel:4,remov:[4,5],requir:4,rom:5,root:[1,3],run:[4,5],save:5,sb16:5,scienc:5,script:5,search:2,section:5,set:[2,4],setup:5,sever:5,share:5,should:5,sid:5,simpl:5,softwar:5,soundhw:5,sourc:[4,5],specifi:[4,5],speech:5,splash:4,squashf:4,stabl:5,standalon:5,standard:0,stdmenu:4,step:2,stick:3,still:0,store:4,stretch:5,submenu:4,sudo:[0,5],suit:[4,5],support:[4,5],synthesi:5,syslinux:4,system:[0,5],task:5,team:3,temporari:[0,5],test:2,thei:5,them:5,thi:[0,4,5],though:5,tmp:0,todo:5,too:5,tool:3,topic:[2,5],typeset:5,typic:0,unpack:4,usb:[3,5],usbdevic:5,usbutil:5,use:[0,3,4,5],used:[3,4,5],using:[0,3,5],usr:5,util:5,variabl:0,vesamenu:4,vim:5,vmdebootstrap:[3,4,5],vmlinuz:4,volum:2,volume_id:[4,5],want:[0,5],what:5,when:5,work:5,would:0,wrapper:[3,4,5],x86_64:5,xfce:5,xorriso:[3,4],xorriso_arg:4,yet:5,you:[0,5],your:5},titles:["Advanced Topics","Developer Documentation","Welcome to live-wrapper’s documentation!","Introduction","Helper Documentation","Quickstart"],titleterms:{"super":5,Using:[0,5],advanc:0,altern:[0,5],bootload:[0,4],build:0,chang:5,creation:4,customis:[0,5],develop:1,directori:0,distribut:5,document:[1,2,4],fast:5,filesystem:4,helper:4,imag:5,indic:2,introduct:3,iso:4,live:2,mirror:5,next:5,packag:5,qemu:5,quickstart:5,root:4,set:5,step:5,tabl:2,test:5,topic:0,volum:5,welcom:2,wrapper:2}}) \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index a6868ce2f6ce70c4f2058372b36f04469f75bbe8..d87c03555c5fad5de5307d9000c3e8d05d7bbded 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -43,6 +43,7 @@ pages: - preseed stretch: live-build/preseed-stretch.md - apprentissage: live-build/live-build-apprentissage.md - liens: live-build/liens.md + - live-wrapper: live-wrapper/index.html - script: - scripts/getFlashPlayer.md - scripts/getFirefox.md