summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2017-10-19 02:49:34 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2018-01-01 00:53:10 -0500
commitc35bf09cf851335fc96312796b523f4dcaea8afc (patch)
treeb7234d71094298ee360d56c51e1bfaeed528c786
parent29d6684b62948101a46ba0baa10fd322242101f5 (diff)
update docs
-rw-r--r--docs/README.altbootmethods78
-rw-r--r--docs/README.build106
2 files changed, 119 insertions, 65 deletions
diff --git a/docs/README.altbootmethods b/docs/README.altbootmethods
index d9acc89..dfa8d67 100644
--- a/docs/README.altbootmethods
+++ b/docs/README.altbootmethods
@@ -10,36 +10,54 @@ INDEX
* HTTP/NFS/NBD [second stage]
-
*** Alternative boot methods (configs/releng)
-ISO images names consist of: parabola-<YYYY>.<MM>.<DD>-dual.iso
-
-Where:
- <YYYY> Year
- <MM> Month
- <DD> Day
+Release image filesystem labels consist of: PARA_<YYYY><MM>
+Release image filenames consist of: parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso
+ Where:
+ <EDITION> consist of either <INIT_SYSTEM> or <INIT_SYSTEM>-<DESKTOP_ENVIRONMENT>
+ <ISO_TYPE> consist of either <ARCH>-netinstall or <ARCH>-complete
+ <VERSION> consist of <YYYY>.<MM>.<DD>
+ Where:
+ <INIT_SYSTEM> such as 'systend', 'openrc'
+ <DESKTOP_ENVIRONMENT> such as 'cli', 'lxde'
+ <ARCH> such as 'i686', 'x86_64', or 'dual'
+ <YYYY> is the 4-digit year of the build date
+ <MM> is the 2-digit month of the build date
+ <DD> is the 2-digit day of the build date
+ e.g. parabola-systemd-cli-i686-netinstall-2017-09-30.iso
+ parabola-openrc-lxde-dual-complete-2017-09-30.iso
** ISO in loopback mode.
Note: Described method is for using with GRUB2.
- GRUB2 is installed on target media and parabola-<YYYY>.<MM>.<DD>-dual.iso
- is at path <TARGET-PATH> on disk <D> and partition <P>,
- where filesystem is labeled as <TARGET-FS-LABEL>.
-
-menuentry "Parabola GNU/Linux-libre (x86_64)" {
- set isofile="/<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso"
- loopback loop (hd<D>,<P>)$isofile
- linux (loop)/parabola/boot/x86_64/vmlinuz parabolaisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile
- initrd (loop)/parabola/boot/x86_64/parabolaiso.img
+ GRUB2 is installed on source media and parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso
+ is at path <ISO_PATH> on disk <D> and partition <P>,
+ where the ISO filesystem label is <ISO_FS_LABEL>
+ and filesystem is labeled as <SOURCE_FS_LABEL>.
+ <BOOT_DIRNAME> is the root directory of the kernel and initrd in the ISO,
+ which corresponds to the $boot_dirname variable in build.sh (default: 'parabola').
+Note: The 'dual' architecture ISOs can make use of both of the entries below.
+
+menuentry "Parabola GNU/Linux-libre Live (x86_64)" {
+ set boot_dirname="<BOOT_DIRNAME>"
+ set iso_fs_label="<ISO_FS_LABEL>"
+ set target_fs_label="<SOURCE_FS_LABEL>"
+ set iso_file="/<ISO_PATH>/parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso"
+ loopback loop (hd<D>,<P>)$iso_file
+ linux (loop)/$boot_dirname/boot/x86_64/vmlinuz parabolaisolabel=$iso_fs_label img_label=$target_fs_label img_loop=$iso_file
+ initrd (loop)/$boot_dirname/boot/x86_64/parabolaiso.img
}
-menuentry "Parabola GNU/Linux-libre (i686)" {
- set isofile="/<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso"
- loopback loop (hd<D>,<P>)$isofile
- linux (loop)/parabola/boot/i686/vmlinuz parabolaisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile
- initrd (loop)/parabola/boot/i686/parabolaiso.img
+menuentry "Parabola GNU/Linux-libre Live (i686)" {
+ set boot_dirname="<BOOT_DIRNAME>"
+ set iso_fs_label="<ISO_FS_LABEL>"
+ set target_fs_label="<SOURCE_FS_LABEL>"
+ set iso_file="/<ISO_PATH>/parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso"
+ loopback loop (hd<D>,<P>)$iso_file
+ linux (loop)/$boot_dirname/boot/i686/vmlinuz parabolaisolabel=$iso_fs_label img_label=$target_fs_label img_loop=$iso_file
+ initrd (loop)/$boot_dirname/boot/i686/parabolaiso.img
}
@@ -47,20 +65,20 @@ menuentry "Parabola GNU/Linux-libre (i686)" {
Note: Described method is for using with SYSLINUX. Anyway MEMDISK from SYSLINUX can work
with other bootloaders.
- SYSLINUX is installed on target media and parabola-<YYYY>.<MM>.<DD>-dual.iso
- is at path <TARGET-PATH>.
+ SYSLINUX is installed on target media and parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso
+ is at path <ISO_PATH>.
On 32-bit systems, is needed to pass vmalloc=nnM to the kernel, where nn is the size
of the ISO image plus 64 MiB (or 128 MiB).
-
+Note: The 'dual' architecture ISOs can make use of both of the entries below.
LABEL parabola_x64
LINUX memdisk
- INITRD /<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso
+ INITRD /<ISO_PATH>/parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso
APPEND iso
LABEL parabola_x32
LINUX memdisk
- INITRD /<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso
+ INITRD /<ISO_PATH>/parabola-<EDITION>-<ISO_TYPE>-<VERSION>.iso
APPEND iso
@@ -96,7 +114,6 @@ Note: Not all NIC firmware supports HTTP and DNS (if domain name is used).
--dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \
--dhcp-option-force=210,http://192.168.0.7/parabola/
-
Once the kernel is started from PXE, SquashFS files and other misc files
inside "parabola" directory must be loaded (second stage). One of the following
methods can be used to serve the rest of live-medium.
@@ -105,21 +122,20 @@ methods can be used to serve the rest of live-medium.
# darkhttpd /run/parabolaiso/bootmnt
-
* NFS
# echo "/run/parabolaiso/bootmnt 192.168.0.*(ro,no_subtree_check,no_root_squash)" >> /etc/exports
# systemctl start rpc-mountd.service
-
* NBD
-Note: Adjust PARA_201302 as needed.
+Note: The ISO filesystem label is <ISO_FS_LABEL>. Get this with the following command:
+ $ isoinfo -d -i path/to/the.iso | grep 'Volume id:'
# cat << EOF > /tmp/nbd-server.conf
[generic]
[parabolaiso]
readonly = true
- exportname = /dev/disk/by-label/PARA_201302
+ exportname = /dev/disk/by-label/<ISO_FS_LABEL>
EOF
# nbd-server -C /tmp/nbd-server.conf
diff --git a/docs/README.build b/docs/README.build
index 8a95625..eae43fe 100644
--- a/docs/README.build
+++ b/docs/README.build
@@ -6,9 +6,7 @@ INDEX
* File format for aitab.
* Why the /isolinux and /parabola/boot/syslinux directories?
* Git branches and build configurations.
-* Building the most basic Parabola GNU/Linux-libre live media. (configs/baseline)
-* Building official Parabola GNU/Linux-libre live media. (configs/releng)
-
+* Building Parabola GNU/Linux-libre live media.
*** Build requirements
@@ -39,6 +37,27 @@ INDEX
+ (none)
+*** Temporary filesystems generated by mkparabolaiso.
+
+* work/x86_64/root-image/
+ => # x86_64 chroot install target
+* work/i686/root-image/
+ => # i686 chroot install target
+* work/root-image/
+ => # transient per-arch hard copy of each work/<ARCH>/root-image/
+ => # transient source for each per-arch ./work/root-image.fs
+* work/root-image.fs
+ => # transient source for per-arch root-image.fs.sfs
+* work/mnt/root-image/
+ => # mountpoint for packing work/root-image.fs
+* work/iso/parabola/x86_64/root-image.fs.sfs or
+ work/iso/parabola/x86_64/root-image.sfs
+ => # r/o loopback filesystem for live x86_64 environment (see "Image types " section)
+* work/iso/parabola/i686/root-image.fs.sfs or
+ work/iso/parabola/i686/root-image.sfs
+ => # r/o loopback filesystem for live i686 environment (see "Image types " section)
+
+
*** Image types generated by mkparabolaiso.
* image-name.sfs SquashFS image with all files directly on it.
@@ -84,6 +103,10 @@ module of SYSLINUX. ISOLINUX can not find config files on
The parabolaiso git repo consists of several branches; only some of which are useful for building ISOs. Others exist only for merging with upstream. The build configurations on the 'master' branch are used to build the official release ISOs.
+Note that the ISOs can built by an unprivileged user with sudo but all files under the configs/releng/root-image directory must be owned by root during the build process. The configs/releng/build.sh script manages this automatically; but it will cause problems when checking-out or switching branches if the git command is not also run as a superuser. To avoid a corrupted working tree, the entire contents of the configs/releng/root-image directory should be chown'ed to the unprivileged user before running any git command that would modify them.
+
+ $ sudo chown -R user:group root-image/
+
** Branches not intended for building ISOs.
* helper/rebrand - Branch to aid rebranding. Branch master of archiso.git plus Parabola rebranding of filenames and file contents. It is used as an intermediate step to merge Archiso, to aid git detecting file renames.
@@ -102,40 +125,55 @@ The parabolaiso git repo consists of several branches; only some of which are us
* master - Profile branch a.k.a "releng". Branch rebrand/releng with Parabola customizations. The files outside configs/ which are common to all variants are packaged from this branch.
-** Build configurations.
+NOTE: This distinction is in the process of being deprecated or reverted. In the future, there will be only one 'releng' profile which is capable of building any of the variant editions via command-line options a single ./build.sh script on the master branch. See the "Package Lists" section the '-E' ./build.sh option below.
-* configs/profile - the Parabola standard CLI release ISO
-* configs/mate - the Parabola Mate release ISO
-* configs/talkingparabola - the TalkingParabola CLI release ISO
-* configs/talkingparabola-X11- the TalkingParabola Mate release ISO
+** Package Lists
+For each valid edition, a file named 'packages/packages-<WM>.both' must exist, even if empty
+where: <WM> is 'cli' by default, or:
+ <WM> corresponds to the part of the '-E' CLI option after the '/'
+This file lists the packages that are to be installed
+in one specific edition of live system for all architectures;
+but are not shared by other editions and are not coupled to a particular init system
+Files named 'packages-<WM>.<ARCH>' cat exist optionally to specify the packages
+that are to be installed for that same edition but only for specific architectures
+ e.g. 'packages-lxde.x86_64'
+All packages/packages-* files must be named in lowercase.
-*** Building the most basic Parabola GNU/Linux-libre live media. (configs/baseline)
-
-* Install needed packages.
- # pacman -S git make squashfs-tools libisoburn rsync --needed
-* Install parabolaiso.
- # git clone git://projects.parabolagnulinux.org/parabolaiso.git
- # make -C parabolaiso install
-
-* Build a basic iso.
- # /usr/share/parabolaiso/configs/baseline/build.sh
-
-Note: If you want to customize, just see the configs/releng directory which is
-used to build official images with much more things.
-
-
-*** Building official Parabola GNU/Linux-libre live media. (configs/releng)
+*** Building Parabola GNU/Linux-libre Live ISOs.
* Install needed packages.
- # pacman -S git make squashfs-tools libisoburn dosfstools lynx --needed
-
-* Install parabolaiso.
- # git clone git://projects.parabolagnulinux.org/parabolaiso.git
- # make -C parabolaiso install
-
-* Build them!
- # /usr/share/parabolaiso/configs/releng/build.sh
-
-Note: See build.sh -h for more options. This only runs on x86_64.
+ # pacman -S squashfs-tools libisoburn rsync --needed # 'baseline' ISO
+ # pacman -S squashfs-tools libisoburn dosfstools --needed # 'releng' derrived ISOs
+
+* Install parabolaiso via pacman to build the standard releases.
+ # pacman -S parabolaiso
+ # cd /usr/share/parabolaiso/configs/releng
+
+* Clone parabolaiso from git for development.
+ # pacman -R parabolaiso
+ # pacman -S parabolaiso-data git
+ # git clone git://git.parabola.nu/packages/parabolaiso.git
+ # cd parabolaiso/configs/releng
+
+* Build one or more ISOs.
+ # ./build.sh # dual-architecture SystemD/CLI
+ # ./build.sh -T i686 # 32-bit x86 target SystemD/CLI
+ # ./build.sh -T x86_64 # 64-bit x86 target SystemD/CLI
+ # ./build.sh -E OpenRC/CLI -O # OpenRC/CLI for offline install
+ # ./build.sh -E OpenRC/LXDE -O # OpenRC/LXDE for offline install
+ # ./build.sh -E SystemD/Talking # SystemD/TalkingParabola
+ # ./build.sh -T x86_64 -V "`date +%Y.%m.%d.%H.%M`-alpha" # development filename
+
+Note: See build.sh -h for more options.
+Note: This script needs to be run on an x86_64 ArchLinux derrivative
+Note: Specifying a single architecture with the -T option builds in half of the time
+ and results in the ISO being about half of the size as the dual-architecture ISO.
+Note: The argument to the -E option must consist of an init/wm pair separated by a '/' slash.
+ This will determine which package lists will be used. Although the package lists
+ files are named in lowercase, this argument may contain captial letters.
+ It will be printed verbatim in the titles of the boot menu and the MOTD.
+Note: The rebuild.sh script can be handly during development. Among other things,
+ it can delete the work directory while retaining the chroot package caches
+ (the 'wipe' option); which will speed up repeated clean re-builds.