aboutsummaryrefslogtreecommitdiff
path: root/docs/gnulinux
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>2017-04-03 12:37:59 -0700
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>2017-04-03 12:37:59 -0700
commitcb8d13228f7dcb58f7e891dfd57493209ecc5518 (patch)
tree4d085d0b677e6ea0ac469ac829f32f4328676664 /docs/gnulinux
parent0b96f7a49f0428d23231403177583316ecee413f (diff)
downloadlibrebootfr-cb8d13228f7dcb58f7e891dfd57493209ecc5518.tar.gz
librebootfr-cb8d13228f7dcb58f7e891dfd57493209ecc5518.zip
squeeze
Diffstat (limited to 'docs/gnulinux')
-rw-r--r--docs/gnulinux/configuring_parabola.md98
-rw-r--r--docs/gnulinux/encrypted_debian.md27
-rw-r--r--docs/gnulinux/encrypted_parabola.md41
-rw-r--r--docs/gnulinux/grub_boot_installer.md16
-rw-r--r--docs/gnulinux/grub_cbfs.md41
-rw-r--r--docs/gnulinux/grub_hardening.md9
-rw-r--r--docs/gnulinux/index.md2
7 files changed, 0 insertions, 234 deletions
diff --git a/docs/gnulinux/configuring_parabola.md b/docs/gnulinux/configuring_parabola.md
index 0c35eacd..ad7bd5a6 100644
--- a/docs/gnulinux/configuring_parabola.md
+++ b/docs/gnulinux/configuring_parabola.md
@@ -7,8 +7,6 @@ uses LXDE because it's lightweight, but we recommend the *MATE* desktop
[Back to previous index](./)
-
-
Table of Contents
=================
@@ -41,8 +39,6 @@ Table of Contents
- [LXDE - battery monitor](#lxde_battery)
- [LXDE - network manager](#lxde_network)
-
-
While not strictly related to the libreboot project, this guide is
intended to be useful for those interested in installing Parabola on
their libreboot system.
@@ -58,8 +54,6 @@ will be made to maintain it.
to be made at the present date, please get in touch with the libreboot
project!**
-
-
You do not necessarily have to follow this guide word-for-word;
*parabola* is extremely flexible. The aim here is to provide a common
setup that most users will be happy with. While Parabola can seem
@@ -72,8 +66,6 @@ Paradoxically, as you get more advanced Parabola can actually become
compared to what most distributions provide. You will find over time
that other distributions tend to *get in your way*.
-
-
**This guide assumes that you already have Parabola installed. If you
have not yet installed Parabola, then [this
guide](encrypted_parabola.html) is highly recommended!**
@@ -92,8 +84,6 @@ system Linux, using the term open-source (or closed-source), and it will
sometimes recommend the use of proprietary software. You need to be
careful about this when reading anything on the Arch wiki.
-
-
Some of these steps require internet access. I'll go into networking
later but for now, I just connected my system to a switch and did:
# systemctl start dhcpcd.service
@@ -103,8 +93,6 @@ For most people this should be enough, but if you don't have DHCP on
your network then you should setup your network connection first:\
[Setup network connection in Parabola](#network)
-
-
Configure pacman {#pacman_configure}
----------------
@@ -119,10 +107,6 @@ and from reading <https://wiki.archlinux.org/index.php/Pacman> (make
sure to read and understand this, it's very important) and
<https://wiki.parabolagnulinux.org/Official_Repositories>
-[Back to top of page.](#pagetop)
-
-
-
Updating Parabola {#pacman_update}
-----------------
@@ -173,10 +157,6 @@ stable and trouble-free, so long as you are aware of how to check for
issues, and are willing to spend some time fixing issues in the rare
event that they do occur.
-[Back to top of page.](#pagetop)
-
-
-
Maintaining Parabola {#pacman_maintain}
--------------------
@@ -187,8 +167,6 @@ before. In general, keeping notes (such as what I have done with this
page) can be very useful as a reference in the future (if you wanted to
re-install it or install the distro on another computer, for example).
-[Back to top of page.](#pagetop)
-
### Cleaning the package cache {#pacman_cacheclean}
**The following is very important as you continue to use, update and
@@ -216,18 +194,12 @@ This is inadvisable, since it means re-downloading the package again if
you wanted to quickly re-install it. This should only be used when disk
space is at a premium.
-[Back to top of page.](#pagetop)
-
### pacman command equivalents {#pacman_commandequiv}
The following table lists other distro package manager commands, and
their equivalent in pacman:\
<https://wiki.archlinux.org/index.php/Pacman_Rosetta>
-[Back to top of page.](#pagetop)
-
-
-
your-freedom {#yourfreedom}
------------
@@ -240,10 +212,6 @@ fail if these packages are installed, citing them as conflicts; the
recommended solution is then to delete the offending packages, and
continue installing *your-freedom*.
-[Back to top of page.](#pagetop)
-
-
-
Add a user {#useradd}
----------
@@ -268,8 +236,6 @@ passphrases (instead of passwords).
[Back to top of page](#pagetop)
-
-
systemd
-------
@@ -344,8 +310,6 @@ the systemd-tmpfiles utility manually at all.
[Back to top of page](#pagetop)
-
-
Interesting repositories {#interesting_repos}
------------------------
@@ -371,17 +335,11 @@ List all available packages in this repository:
In the end, I decided not to install anything from it but I kept the
repository enabled regardless.
-[Back to top of page.](#pagetop)
-
-
-
Setup a network connection in Parabola {#network}
--------------------------------------
Read <https://wiki.archlinux.org/index.php/Configuring_Network>.
-[Back to top of page.](#pagetop)
-
### Set the hostname {#network_hostname}
This should be the same as the hostname that you set in /etc/hostname
@@ -407,8 +365,6 @@ forward-thinking here.
The *hostname* utility is part of the *inetutils* package and is in
core/, installed by default (as part of *base*).
-[Back to top of page.](#pagetop)
-
### Network Status {#network_status}
According to the Arch wiki,
@@ -455,8 +411,6 @@ Show device names:
Changing the device names is possible (I chose not to do it):\
<https://wiki.archlinux.org/index.php/Configuring_Network#Change_device_name>
-[Back to top of page.](#pagetop)
-
### Network setup {#network_setup}
I actually chose to ignore most of Networking section on the wiki.
@@ -467,10 +421,6 @@ If you need to, set a static IP address (temporarily) using the
networking guide and the Arch wiki, or start the dhcpcd service in
systemd. NetworkManager will be setup later, after installing LXDE.
-[Back to top of page.](#pagetop)
-
-
-
System Maintenance {#system_maintain}
------------------
@@ -487,10 +437,6 @@ data comes from it. Therefore, don't rely on it too much):
Read <https://wiki.archlinux.org/index.php/S.M.A.R.T.> to learn how to
use it.
-[Back to top of page.](#pagetop)
-
-
-
Configuring the desktop {#desktop}
-----------------------
@@ -500,9 +446,6 @@ on the Arch wiki. The plan is to use LXDE and LXDM/LightDM, along with
everything else that you would expect on other distributions that
provide LXDE by default.
-[Back to top of page.](#pagetop)
-
-
### Installing Xorg {#desktop_xorg}
Based on <https://wiki.archlinux.org/index.php/Xorg>.
@@ -547,10 +490,6 @@ session.\
xorg-xclock xterm**\
</optional>
-[Back to top of page.](#pagetop)
-
-
-
### Xorg keyboard layout {#desktop_kblayout}
Refer to
@@ -596,10 +535,6 @@ For you, the steps above may differ if you have a different layout. If
you use a US Qwerty keyboard, then you don't even need to do anything
(though it might help, for the sake of being explicit).
-[Back to top of page.](#pagetop)
-
-
-
### Install LXDE {#desktop_lxde}
Desktop choice isn't that important to me, so for simplicity I decided
@@ -658,27 +593,15 @@ exec startlxde\
* Now make sure that it is executable:
$ chmod +x .xinitrc
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - clock {#lxde_clock}
In **Digital Clock Settings** (right click the clock) I set the Clock
Format to *%Y/%m/%d %H:%M:%S*
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - font {#lxde_font}
NOTE TO SELF: come back to this later.
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - screenlock {#lxde_screenlock}
Arch wiki recommends to use *xscreensaver*:
@@ -692,10 +615,6 @@ Screen After* (checked) to 10 minutes.
You can now lock the screen with *Logout :: Lock Screen* in the LXDE
menu.
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - automounting {#lxde_automount}
Refer to
@@ -703,19 +622,11 @@ Refer to
I chose to ignore this for now. NOTE TO SELF: come back to this later.
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - disable suspend {#lxde_suspend}
When closing the laptop lid, the system suspends. This is annoying at
least to me. NOTE TO SELF: disable it, then document the steps here.
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - battery monitor {#lxde_battery}
Right click lxde panel and *Add/Remove Panel Items*. Click *Add* and
@@ -724,10 +635,6 @@ the applet and go to *Battery Monitor Settings*, check the box that says
*Show Extended Information*. Now click *Close*. When you hover the
cursor over it, it'll show information about the battery.
-[Back to top of page.](#pagetop)
-
-
-
### LXDE - Network Manager {#lxde_network}
Refer to <https://wiki.archlinux.org/index.php/LXDE#Network_Management>.
@@ -772,11 +679,6 @@ I added the volume control applet to the panel (right click panel, and
add a new applet). I also later changed the icons to use the gnome icon
theme, in *lxappearance*.
-[Back to top of page.](#pagetop)
-
-
-
-
Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\
Permission is granted to copy, distribute and/or modify this document
under the terms of the Creative Commons Attribution-ShareAlike 4.0
diff --git a/docs/gnulinux/encrypted_debian.md b/docs/gnulinux/encrypted_debian.md
index 6d964b9c..401a9aed 100644
--- a/docs/gnulinux/encrypted_debian.md
+++ b/docs/gnulinux/encrypted_debian.md
@@ -43,8 +43,6 @@ drive.
[Back to previous index](./)
-
-
Set a strong user password (lots of lowercase/uppercase, numbers and
symbols).
@@ -61,8 +59,6 @@ therefore optional, and not recommended. Choose 'no'.**
you will set later on. Your LUKS password should, like the user
password, be secure.**
-
-
Partitioning
============
@@ -103,8 +99,6 @@ Choose 'Manual' partitioning:
- name: **swap** (user this exact name)
- size: press enter
-
-
Further partitioning
====================
@@ -120,16 +114,12 @@ mountpoints and filesystems to use.
- done setting up partition
- Now you select 'Finished partitioning and write changes to disk'.
-
-
Kernel
======
Installation will ask what kernel you want to use. linux-generic is
fine.
-
-
Tasksel
=======
@@ -150,16 +140,12 @@ instead, which contains the most up to date versions of the Linux
kernel. These kernels are also deblobbed, like Debian's kernels, so you
can be sure that no binary blobs are present.
-
-
Postfix configuration
=====================
If asked, choose *"No Configuration"* here (or maybe you want to
select something else. It's up to you.)
-
-
Install the GRUB boot loader to the master boot record
======================================================
@@ -170,15 +156,11 @@ Choice is irrelevant here.
*You do not need to install GRUB at all, since in libreboot you are
using the GRUB payload (for libreboot) to boot your system directly.*
-
-
Clock UTC
=========
Just say 'Yes'.
-
-
Booting your system
===================
@@ -193,8 +175,6 @@ cryptdevice=/dev/mapper/matrix-rootvol:root**\
grub> initrd /initrd.img
grub> boot
-
-
ecryptfs
========
@@ -209,8 +189,6 @@ directory from another system, so write it down and keep the note
somewhere secret. Ideally, you should memorize it and then burn the note
(or not even write it down, and memorize it still)>
-
-
Modify grub.cfg (CBFS)
======================
@@ -235,8 +213,6 @@ hardening your GRUB configuration, for security purposes.
Flash the modified ROM using [this tutorial](../install/#flashrom).
-
-
Troubleshooting
===============
@@ -248,7 +224,6 @@ station.
Further investigation revealed that it was the DVD drive causing
problems. Removing that worked around the issue.
-
"sudo wodim -prcap" shows information about the drive:
Device was not specified. Trying to find an appropriate drive...
Detected CD-R drive: /dev/sr0
@@ -325,8 +300,6 @@ problems. Removing that worked around the issue.
Does write ultra high speed CD-RW media
Does not write ultra high speed+ CD-RW media
-
-
Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\
Permission is granted to copy, distribute and/or modify this document
under the terms of the Creative Commons Attribution-ShareAlike 4.0
diff --git a/docs/gnulinux/encrypted_parabola.md b/docs/gnulinux/encrypted_parabola.md
index af42525b..df0b34e1 100644
--- a/docs/gnulinux/encrypted_parabola.md
+++ b/docs/gnulinux/encrypted_parabola.md
@@ -32,8 +32,6 @@ drive.
[Back to previous index](./)
-
-
Boot Parabola's install environment. [How to boot a GNU+Linux
installer](grub_boot_installer.html).
@@ -49,8 +47,6 @@ to the Parabola wiki at a later date. For up to date Parabola install
guide, go to the Parabola wiki. This guide essentially cherry picks the
useful information (valid at the time of writing: 2015-08-25).
-
-
This section deals with wiping the storage device on which you plan to
install Parabola GNU+Linux. Follow these steps, but if you use an SSD,
also:
@@ -89,8 +85,6 @@ this:
(Wiping the LUKS header is important, since it has hashed passphrases
and so on. It's 'secure', but 'potentially' a risk).
-
-
Change keyboard layout
----------------------
@@ -101,8 +95,6 @@ list the available keymaps and use yours:
# loadkeys LAYOUT
For me, LAYOUT would have been dvorak-uk.
-
-
Establish an internet connection
--------------------------------
@@ -110,8 +102,6 @@ Refer to [this
guide](https://wiki.parabola.nu/Beginners%27_guide#Establish_an_internet_connection).
Wired is recommended, but wireless is also explained there.
-
-
Getting started
---------------
@@ -119,8 +109,6 @@ The beginning is based on
<https://wiki.parabolagnulinux.org/Installation_Guide>. Then I referred
to <https://wiki.archlinux.org/index.php/Partitioning> at first.
-
-
dm-mod
------
@@ -185,8 +173,6 @@ without writing it down or storing it anywhere.
Use of the *diceware method* is recommended, for generating secure
passphrases (instead of passwords).
-
-
Create LVM
----------
@@ -235,8 +221,6 @@ command:
# lvdisplay
-
-
Create / and swap partitions, and mount
---------------------------------------
@@ -255,8 +239,6 @@ Mount the root (/) partition:
# mount /dev/matrix/root /mnt
-
-
Continue with Parabola installation
-----------------------------------
@@ -325,8 +307,6 @@ the install:\
\# **pacstrap /mnt base base-devel wpa\_supplicant dialog iw
wpa\_actiond**
-
-
Configure the system
--------------------
@@ -459,8 +439,6 @@ your LUKS password.
Use of the *diceware method* is recommended, for generating secure
passphrases (instead of passwords).
-
-
Extra security tweaks
---------------------
@@ -487,8 +465,6 @@ Configure sudo - not covered here. Will be covered post-installation in
another tutorial, at a later date. If this is a single-user system, you
don't really need sudo.
-
-
Unmount, reboot!
----------------
@@ -513,8 +489,6 @@ Lock the encrypted partition (close it):
# shutdown -h now
Remove the installation media, then boot up again.
-
-
Booting from GRUB
-----------------
@@ -532,8 +506,6 @@ cryptdevice=/dev/sda1:root**\
You could also make it load /boot/vmlinuz-linux-libre-grsec and
/boot/initramfs-linux-libre-grsec.img
-
-
Follow-up tutorial: configuring Parabola
----------------------------------------
@@ -549,8 +521,6 @@ means that you are in control. For more information, read [The Arch
Way](https://wiki.archlinux.org/index.php/The_Arch_Way) (Parabola also
follows it).
-
-
Modify grub.cfg inside the ROM
------------------------------
@@ -671,14 +641,10 @@ flashed alongside it as a *payload*):
# pacman -R grub
-
-
If you followed all that correctly, you should now have a fully
encrypted Parabola installation. Refer to the wiki for how to do the
rest.
-
-
Bonus: Using a key file to unlock /boot/
----------------------------------------
@@ -713,16 +679,12 @@ above! -, or add it in the kernel command line for GRUB:
You can also place this inside the grub.cfg that exists in CBFS:
[grub\_cbfs.html](grub_cbfs.html).
-
-
Further security tips
---------------------
<https://wiki.archlinux.org/index.php/Security>.\
<https://wiki.parabolagnulinux.org/User:GNUtoo/laptop>
-
-
Troubleshooting
===============
@@ -734,7 +696,6 @@ station.
Further investigation revealed that it was the DVD drive causing
problems. Removing that worked around the issue.
-
"sudo wodim -prcap" shows information about the drive:
Device was not specified. Trying to find an appropriate drive...
Detected CD-R drive: /dev/sr0
@@ -811,8 +772,6 @@ problems. Removing that worked around the issue.
Does write ultra high speed CD-RW media
Does not write ultra high speed+ CD-RW media
-
-
Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\
Copyright © 2015 Jeroen Quint <jezza@diplomail.ch>\
Permission is granted to copy, distribute and/or modify this document
diff --git a/docs/gnulinux/grub_boot_installer.md b/docs/gnulinux/grub_boot_installer.md
index 3275d5a4..d61a2377 100644
--- a/docs/gnulinux/grub_boot_installer.md
+++ b/docs/gnulinux/grub_boot_installer.md
@@ -14,14 +14,10 @@ flash drive (and *dd*).
[Back to previous index](./)
-
-
**This section is only for the GRUB payload. For depthcharge (used on
CrOS devices in libreboot), instructions have yet to be written in the
libreboot documentation.**
-
-
Prepare the USB drive (in GNU+Linux)
------------------------------------
@@ -98,8 +94,6 @@ Continue reading, for information about how to do that.
[Back to top of page](#pagetop).
-
-
Installing GNU+Linux with full disk encryption
----------------------------------------------
@@ -110,8 +104,6 @@ Installing GNU+Linux with full disk encryption
[Back to top of page](#pagetop).
-
-
Debian or Devuan net install?
-----------------------------
@@ -132,8 +124,6 @@ We recommend using the *MATE* desktop.
[Back to top of page](#pagetop).
-
-
Booting ISOLINUX images (automatic method)
------------------------------------------
@@ -144,8 +134,6 @@ that distro.
[Back to top of page](#pagetop).
-
-
Booting ISOLINUX images (manual method)
---------------------------------------
@@ -193,8 +181,6 @@ now be booting your USB drive in the way that you specified.
[Back to top of page](#pagetop).
-
-
Troubleshooting
===============
@@ -237,8 +223,6 @@ debian-installer (text mode) net install method.
[Back to top of page](#pagetop).
-
-
Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\
Copyright © 2016 Scott Bonds <scott@ggr.com>\
Permission is granted to copy, distribute and/or modify this document
diff --git a/docs/gnulinux/grub_cbfs.md b/docs/gnulinux/grub_cbfs.md
index 9809785f..95a46f13 100644
--- a/docs/gnulinux/grub_cbfs.md
+++ b/docs/gnulinux/grub_cbfs.md
@@ -27,8 +27,6 @@ depthcharge payload, ignore this section entirely.**
[Back to previous index](./)
-
-
Table of Contents
=================
@@ -43,9 +41,6 @@ Table of Contents
- [Testing](#testing)
- [Final steps](#final_steps)
-
-
-
Introduction
------------
@@ -53,8 +48,6 @@ Download the latest release from <http://libreboot.org/>\
**If you downloaded from git, refer to
[../git/\#build\_meta](../git/#build_meta) before continuing.**
-[Back to top of page.](#pagetop)
-
There are several advantages to modifying the GRUB configuration stored
in CBFS, but this also means that you have to flash a new libreboot ROM
image on your system (some users feel intimidated by this, to say the
@@ -65,8 +58,6 @@ If you aren't up to that then don't worry; it is possible to use a
custom GRUB menu without flashing a new image, by loading a GRUB
configuration from a partition on the main storage instead.
-
-
1st option: don't re-flash {#option1_dont_reflash}
---------------------------
@@ -103,20 +94,12 @@ of this page is irrelevant to you); **in libreboot\_grub.cfg on disk, if
you are adapting it based on grub.cfg from CBFS then remove the check
for libreboot\_grub.cfg otherwise it will loop.**.
-[Back to top of page.](#pagetop)
-
-
-
2nd option: re-flash {#option2_reflash}
--------------------
You can modify what is stored inside the flash chip quite easily. Read
on to find out how.
-[Back to top of page.](#pagetop)
-
-
-
Acquire the necessary utilities {#tools}
-------------------------------
@@ -126,10 +109,6 @@ Use ***cbfstool*** and ***flashrom***. There are available in the
available from the repositories:
# pacman -S flashrom
-[Back to top of page.](#pagetop)
-
-
-
Acquiring the correct ROM image {#rom}
-------------------------------
@@ -147,10 +126,6 @@ to the command, for example:
# flashrom -c MX25L6405 -p internal -r libreboot.rom
-[Back to top of page.](#pagetop)
-
-
-
Extract grubtest.cfg from the ROM image {#extract_testconfig}
---------------------------------------
@@ -170,10 +145,6 @@ Extract grubtest.cfg from the ROM image:
Modify the grubtest.cfg accordingly.
-[Back to top of page.](#pagetop)
-
-
-
Re-insert the modified grubtest.cfg into the ROM image {#reinsert_modified_testconfig}
------------------------------------------------------
@@ -186,10 +157,6 @@ Next, insert the modified version:\
**\$ ./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t
raw**
-[Back to top of page.](#pagetop)
-
-
-
Testing
-------
@@ -213,10 +180,6 @@ sceptical in any way, then re-do the steps above until you get it right!
Do \*not\* proceed past this point unless you are 100% sure that your
new configuration is safe (or desirable) to use.**
-[Back to top of page.](#pagetop)
-
-
-
Final steps {#final_steps}
-----------
@@ -245,10 +208,6 @@ Add the modified version that you just made:
flash it. It's the same method as you used before. Shut down and then
boot up with your new configuration.**
-[Back to top of page.](#pagetop)
-
-
-
Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\
Copyright © 2015 Jeroen Quint <jezza@diplomail.ch>\
Permission is granted to copy, distribute and/or modify this document
diff --git a/docs/gnulinux/grub_hardening.md b/docs/gnulinux/grub_hardening.md
index 81a3452b..e77168bf 100644
--- a/docs/gnulinux/grub_hardening.md
+++ b/docs/gnulinux/grub_hardening.md
@@ -6,8 +6,6 @@ highly recommended by the Libreboot project.
[Back to previous index](./)
-
-
GRUB secure boot with GPG
=========================
@@ -31,7 +29,6 @@ image:
cbfstool my.rom extract -n grubtest.cfg -f my.grubtest.cfg
cbfstool my.rom remove -n grubtest.cfg
-
Helpful links:
- [GRUB manual
@@ -43,8 +40,6 @@ Helpful links:
- [Coreboot GRUB security
howto](https://www.coreboot.org/GRUB2#Security)
-
-
GRUB Password
=============
@@ -136,8 +131,6 @@ an attacker wants is then just a few GRUB commands away.
As far as basic password setup is concerned we are done and we can now
move on to signing.
-
-
GPG keys
========
@@ -185,8 +178,6 @@ What remains now is to include the modifications into the image (rom):
\... and flashing it.
-
-
Copyright © 2017 Fedja Beader <fedja@protonmail.ch>\
Permission is granted to copy, distribute and/or modify this document
under the terms of the Creative Commons Attribution-ShareAlike 4.0
diff --git a/docs/gnulinux/index.md b/docs/gnulinux/index.md
index 49c04dfd..3be17422 100644
--- a/docs/gnulinux/index.md
+++ b/docs/gnulinux/index.md
@@ -22,8 +22,6 @@ instructions have yet to be written.**
- [How to harden your GRUB configuration, for
security](grub_hardening.html)
-
-
Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\
Permission is granted to copy, distribute and/or modify this document
under the terms of the Creative Commons Attribution-ShareAlike 4.0