From fd3ccb1d3ea53e5da96473558b6c2457ae8affa5 Mon Sep 17 00:00:00 2001 From: Esteban Carnevale Date: Tue, 3 Sep 2013 16:20:57 -0300 Subject: Update profile releng --- docs/README.build | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 docs/README.build (limited to 'docs/README.build') diff --git a/docs/README.build b/docs/README.build new file mode 100644 index 0000000..f2fb594 --- /dev/null +++ b/docs/README.build @@ -0,0 +1,111 @@ +INDEX +----- + +* Build requirements +* Image types generated by mkparabolaiso. +* File format for aitab. +* Why the /isolinux and /parabola/boot/syslinux directories? +* Building the most basic Parabola GNU/Linux-libre live media. (configs/baseline) +* Building official Parabola GNU/Linux-libre live media. (configs/releng) + + + +*** Build requirements + +** For mkparabolaiso script needs these packages (build host): + + squashfs-tools for mksquashfs + + libisoburn for xorriso + + btrfs-progs for mkfs.btrfs (optional) + +** For configs/releng build.sh needs theses packages (build host): + + dosfstools for mkfs.vfat + + lynx for fetching the latest installation guide + +** For these hooks needs these packages (on target root-image) +* parabolaiso + + (none) +* parabolaiso_loop_mnt + + (none) +* parabolaiso_pxe_common + + mkinitcpio-nfs-utils for ipconfig +* parabolaiso_pxe_nbd + + nbd for nbd-client +* parabolaiso_pxe_http + + curl for curl +* parabolaiso_pxe_nfs + + mkinitcpio-nfs-utils for nfsmount +* parabolaiso_shutdown + + (none) + + +*** Image types generated by mkparabolaiso. + +* image-name.sfs SquashFS image with all files directly on it. + [read-only, no dm-snapshot is used] +* image-name.fs.sfs SquashFS with only one file inside (image-name.fs), + which is an image of some type of filesystem + (ext4, ext3, ext2, xfs, btrfs), all files reside on it. + [read-write, via COW image with dm-snapshot] + + +*** File format for aitab. + +The aitab file holds information about the filesystems images that must be +created by mkparabolaiso and mounted at initramfs stage from the parabolaiso hook. +It consists of some fields which define the behaviour of images. + +# + + Image name without extension (.fs .fs.sfs .sfs). + Mount point. + Architecture { i686 | x86_64 | any }. + SquashFS compression type { gzip | lzo | xz }. + Set the filesystem type of the image + { ext4 | ext3 | ext2 | xfs | btrfs }. + A special value of "none" denotes no usage of a filesystem. + In that case all files are pushed directly to SquashFS filesystem. + An absolute value of file system image size in MiB. + (example: 100, 1000, 4096, etc) + A relative value of file system free space [in percent]. + {1%..99%} (example 50%, 10%, 7%). + This is an estimation, and calculated in a simple way. + Space used + 10% (estimated for metadata overhead) + desired % + + +*** Why the /isolinux and /parabola/boot/syslinux directories? + +The /isolinux directory holds files needed for the ISOLINUX boot loader +module of SYSLINUX. ISOLINUX can not find config files on +/parabola/boot/syslinux, like other boot loaders modules (SYSLINUX, PXELINUX). + + + +*** 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) + +* 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. -- cgit v1.2.2