Hacking:Parabolaiso - ParabolaWiki

# Hacking:Parabolaiso

Parabolaiso is the Parabola version of Archiso. Source files are in the git repository parabolaiso.git. A new repository was set up for release 2013.09.01 ([Dev] Recreating parabolaiso.git). The previous repository is archived in ~old/parabolaiso.git.

## Git branches

Branch | Description
--- | ---
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.
rebrand/releng | Rebranding branch. helper/rebrand leaving only the directory of releng inside configs/, renamed to profile/. It is possible to create equivalent branches for other ISO variants.
rebrand/baseline | Rebranding branch. Same concept as rebrand/releng.
master | Profile branch "releng". Branch rebrand/releng with Parabola customizations. The files outside configs/ which are common to all variants are packaged from this branch.
baseline | Profile branch "baseline". master is separated from baseline to its own branch. This is now different from Archiso, and enables merging the releng profile in other profiles that use releng as a base.
release | Contains snapshots of releases, with commits showing updates of each profile. It should be updated only by make dist.
release-branches | Snapshots of last commits (HEAD) of each specified profile branch. Same concept as the branch release. It should be updated only by make dist-branches. Using it is not strictly necessary. It does not exist in the public Parabola repository parabolaiso.git.

## Packages

These two packages contain files to create Parabola official ISOs, and it can be used also to create other ISOs.

- parabolaiso
- parabolaiso-data

The package parabolaiso-data, a dependency of the package parabolaiso, should contain all binary files necessary to create all official variant ISOs.

## Working with parabolaiso.git

- Modifications outside the directory configs/ should be first pushed to the master branch. Variants based on releng should not modify outside configs/. This makes it easier to merge master in variant branches. Not doing this can easily create merge conflicts.

- The path of all profile directories is configs/profile/ (for all profile/variant branches). Other files and directories in configs/ are not allowed because they would prevent proper tracking and merging.

- Binary files are not allowed in the git repo nor in the package parabolaiso which is created with data from the git repository. Binary files are not in the git repository; they are distributed in the package parabolaiso-data.

- To create a new variant following releng, you can branch off master anytime and regularly merge master in the new branch. Keeping the wiki updated with information about new branches and variants is recommended. To include the branch in the source tarball and the package parabolaiso, the name of the branch/variant must be added to the for loop in Makefile of the package parabolaiso.

## Packaging

Warning: Packaging using make in parabolaiso.git is not tested

There are two make targets to create source tarballs. The targets update their release branches, and the source tarball is created from the HEAD of the appropriate release branch.

- dist, used to create Parabola releases from signed tags in profile branches. It updates the branch release and creates the release tag on this branch. The source tarball is created from this signed tag.
- dist-branches, used to create a source tarball from last commits (HEAD) of profile branch specified in the script expand. It updates the branch release-branches and creates the source tarball from the last commit of this branch.

## Current status

### Secure Boot vs. Restricted Boot

It was introduced in Archiso and reverted in Parabolaiso: https://projects.archlinux.org/archiso.git/commit/?id=3e4740484edd23d6c1db42ab24c3555e8ab6b03a. Instead of applying this change like Arch, we can follow item 1 of section "Conclusion and recommendations" of Free Software Foundation recommendations for free operating system distributions considering Secure Boot. UEFI booting was not tested after reverting (feedback is welcome).

## Current variants

As of 2013-08-16, the variants Lxde and Gnome are not included in the Parabola packages. The branch lxde was removed from the git repository and the branch gnome is outdated (reason: [Dev] Recreating parabolaiso.git). The next release of parabolaiso and parabolaiso-data could include these variants updated.

## Git repository layouts and packages

### Possible improvements

- Use separate git repositories for each variant?
- Forbid all binaries. It may be possible using git hooks or in Makefile of parabolaiso.
- Only allow changes in the directory configs/ for branch master, not for other profile branches. It may be possible using git hooks or in Makefile of parabolaiso.

## Rebranding

All strings have been rebranded for Parabola, so replace "Arch" or "arch" with "Parabola" or "parabola". The format of the disk label is PARA_YYYYMM (archiso uses ARCH_YYYYMM).

## Arch Linux documents

As the profiles releng and baseline contain only minimal modifications compared to Arch's archiso, these documents are also useful for Parabola.

- a:Archiso
- a:Remastering the Install ISO

Categories:

- LiveImage Maker
- Software
- Hacking