Verified Commit e264b446 authored by David Runge's avatar David Runge
Browse files

Add license and basic documentation

LICENSE:
Add GPL-3.0 license.

{{archiso,configs}/*,.editorconfig,.gitlab-ci.yml}:
Add SPDX license identifier.

Makefile:
Add SPDX license identifier.
Install the `run_archiso.sh` script as global executable `run_archiso`.
Use -D and -t flags to install to install files more generically (without a previous call to install the directory).

README.rst:
Add README outlining the project's scope, how to build images from the profiles and how to test.

AUTHORS.rst:
Add list of all direct contributors to the repository.

CONTRIBUTING.rst:
Add basic contribution guidelines, explaining the linter and the license in use.

Closes #7
Closes #3
parent 47e11125
Pipeline #654 passed with stage
in 33 seconds
# EditorConfig configuration for archiso
# http://EditorConfig.org
# EditorConfig for archiso
# https://editorconfig.org/
#
# SPDX-License-Identifier: GPL-3.0-or-later
# Top-most EditorConfig file
root = true
......@@ -22,3 +24,11 @@ trim_trailing_whitespace = true
charset = utf-8
indent_style = space
indent_size = 2
[*.rst]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
indent_style = space
indent_size = 2
---
#
# SPDX-License-Identifier: GPL-3.0-or-later
default:
image: archlinux/base
......
===============
Archiso Authors
===============
* Aaron Griffin <aaron@archlinux.org>
* Adam Purkrt <adam@purkrt.net>
* Chandan Singh <cks071g2@gmail.com>
* Charles Vejnar <ce@vejnar.org>
* Christian Hesse <mail@eworm.de>
* Christopher Brannon <cmbrannon79@gmail.com>
* Dan McGee <dan@archlinux.org>
* David Runge <dvzrv@archlinux.org>
* David Thurstenson <thurstylark@gmail.com>
* Dieter Plaetinck <dieter@plaetinck.be>
* Eli Schwartz <eschwartz@archlinux.org>
* Florian Pritz <bluewind@xinu.at>
* Gerardo Exequiel Pozzi <vmlinuz386@gmail.com>
* Gerhard Brauer <gerbra@archlinux.de>
* James Sitegen <jamesm.sitegen@gmail.com>
* Justin Kromlinger <hashworks@archlinux.org>
* Keshav Amburay <the.ridikulus.rat@gmail.com>
* Loui Chang <louipc.ist@gmail.com>
* Lukas Fleischer <archlinux@cryptocrack.de>
* Martin Damian Fernandez <martin.damian.fernandez@gmail.com>
* Pierre Schmitz <pierre@archlinux.de>
* Sean Enck <enckse@voidedtech.com>
* Simo Leone <simo@archlinux.org>
* Steffen Bönigk <boenki@gmx.de>
* Sven-Hendrik Haase <sh@lutzhaase.com>
* Thomas Bächler <thomas@archlinux.org>
* Yu Li-Yu <afg984@gmail.com>
* nl6720 <nl6720@gmail.com>
* Øyvind Heggstad <heggstad@gmail.com>
============
Contributing
============
These are the contribution guidelines for archiso.
All contributions fall under the terms of the GPL-3.0-or-later (see `LICENSE <LICENSE>`_).
Editorconfig
============
A top-level editorconfig file is provided. Please configure your text editor to use it.
Linting
=======
All ash and bash scripts are linted using shellcheck:
.. code:: bash
make check
Testing
=======
Contributors are expected to test their contributions by building the releng profile and running the resulting image
using `run_archiso <scripts/run_archiso.sh>`_.
This diff is collapsed.
#
# SPDX-License-Identifier: GPL-3.0-or-later
INSTALL_FILES=$(wildcard archiso/initcpio/install/*)
HOOKS_FILES=$(wildcard archiso/initcpio/hooks/*)
SCRIPT_FILES=$(wildcard archiso/initcpio/script/*)
......@@ -6,7 +9,7 @@ INSTALL_DIR=$(DESTDIR)/usr/lib/initcpio/install
HOOKS_DIR=$(DESTDIR)/usr/lib/initcpio/hooks
SCRIPT_DIR=$(DESTDIR)/usr/lib/initcpio
DOC_FILES=$(wildcard docs/*)
DOC_FILES=$(wildcard docs/*) $(wildcard *.rst)
DOC_DIR=$(DESTDIR)/usr/share/doc/archiso
......@@ -25,7 +28,8 @@ check:
install: install-program install-initcpio install-examples install-doc
install-program:
install -D -m 755 archiso/mkarchiso $(DESTDIR)/usr/bin/mkarchiso
install -vDm 755 archiso/mkarchiso -t "$(DESTDIR)/usr/bin/"
install -vDm 755 scripts/run_archiso.sh "$(DESTDIR)/usr/bin/run_archiso"
install-initcpio:
install -d $(SCRIPT_DIR) $(HOOKS_DIR) $(INSTALL_DIR)
......@@ -38,7 +42,6 @@ install-examples:
cp -a --no-preserve=ownership configs $(DESTDIR)/usr/share/archiso/
install-doc:
install -d $(DOC_DIR)
install -m 644 -t $(DOC_DIR) $(DOC_FILES)
install -vDm 644 $(DOC_FILES) -t $(DOC_DIR)
.PHONY: check install install-program install-initcpio install-examples install-doc
=======
archiso
=======
The archiso project features scripts and configuration templates to build installation media (*.iso* images) for BIOS
and UEFI based systems on the x86_64 architecture.
Currently creating the images is only supported on Arch Linux.
Requirements
============
The following packages need to be installed to be able to create an image with the included scripts:
* arch-install-scripts
* dosfstools
* e2fsprogs
* edk2-shell
* libisoburn
* squashfs-tools
For running the images in a virtualized test environment the following packages are required:
* edk2-ovmf
* qemu
For linting the shell scripts the following package is required:
* shellcheck
Profiles
========
Archiso comes with two profiles: **baseline** and **releng**. While both can serve as starting points for creating
custom live media, **releng** is used to create the monthly installation medium.
They can be found below `configs/baseline/ <configs/baseline/>`_ and `configs/releng/ <configs/releng/>`_
(respectively). Both profiles are defined by files to be placed into overlays (e.g. *airootfs* -> *the image's /*) and
dynamic actions (i.e. *build.sh* scripts).
Create images
=============
Usually the archiso tools are installed as a package. However, it is also possible to clone this repository and create
images without installing archiso system-wide.
As filesystems are created and various mount actions have to be done when creating an image, **root** is required to run
the scripts.
When archiso is installed system-wide and the modification of a profile is desired, it is necessary to copy it to a
writeable location, as */usr/share/archiso* is tracked by the package manager and only writeable by root (changes will
be lost on update).
The examples below will assume an unmodified profile in a system location (unless noted otherwise).
It is advised to check the help information of the **build.sh** scripts in the profiles:
.. code:: bash
/usr/share/archiso/configs/releng/build.sh --help
Create images with packaged archiso
-----------------------------------
.. code:: bash
/usr/share/archiso/configs/releng/build.sh -w path/to/work_dir -o path/to/out_dir
Create images with local clone
------------------------------
Clone this repository and make sure to run with the local `mkarchiso <archiso/mkarchiso>`_ script in *PATH* (if it has
been modified):
.. code:: bash
PATH="archiso:$PATH" ./configs/releng/build.sh -w path/to/work_dir -o path/to/out_dir
Testing
=======
The convenience script **run_archiso** is provided to boot into the medium using qemu.
It is advised to read its help information:
.. code:: bash
run_archiso -h
Run the following to boot the iso using BIOS:
.. code:: bash
run_archiso -i path/to/an/arch.iso
Run the following to boot the iso using UEFI:
.. code:: bash
run_archiso -i path/to/an/arch.iso -u
The script can of course also be executed from this repository:
.. code:: bash
./scripts/run_archiso.sh -i path/to/an/arch.iso
Installation
============
To install archiso system-wide use the included **Makefile**:
.. code:: bash
make install
License
=======
Archiso is licensed under the terms of the **GPL-3.0-or-later** (see `LICENSE <LICENSE>`_).
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
# args: source, newroot, mountpoint
_mnt_dmsnapshot() {
......
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
run_hook () {
# shellcheck disable=SC2154
......
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
run_hook () {
# Do *not* declare 'bootif_dev' local! We need it in run_latehook().
......
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
run_hook() {
# shellcheck disable=SC2154
......
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
run_earlyhook() {
# shellcheck disable=SC2154
......
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
run_hook() {
# shellcheck disable=SC2154
......
#!/bin/ash
#
# SPDX-License-Identifier: GPL-3.0-or-later
run_cleanuphook() {
rm -rf /usr/lib/modules
......
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
build() {
add_module "cdrom"
......
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
build() {
add_module "amdgpu"
......
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
build() {
add_runscript
......
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
build() {
add_checked_modules -f "(irda|phy|wimax|wireless|ppp_|plip|pppoe)" "/drivers/net/"
......
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
build() {
add_runscript
......
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
build() {
add_module "nbd"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment