Skip to content
This repository has been archived by the owner on Jul 2, 2022. It is now read-only.

Commit

Permalink
g
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomashighbaugh committed Apr 16, 2022
1 parent c022b37 commit d53108c
Show file tree
Hide file tree
Showing 79 changed files with 4,778 additions and 1,614 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
*.img
*.xz
*.iso
xbps-cache
xbps-cachedir*
tmp.*
56 changes: 45 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,53 @@
# the Electric Tantra ISO Creation Environment
Here are the scripts you can use to build the Electric Tantra Linux's ISO file using an installation of `void-linux` and its associated package manager that leverages `dracut` to assemble the initramfs and pack all of the internals into a neat ISO file you can burn on a flash drive.
``` __ __
| |_| |--.-----.
| _| | -__|
|____|__|__|_____|
_______ __ __ __
| ___| |.-----.----.| |_.----.|__|.----.
| ___| || -__| __|| _| _|| || __|
|_______|__||_____|____||____|__| |__||____|
_______ __
|_ _|.---.-.-----.| |_.----.---.-.
| | | _ | || _| _| _ |
|___| |___._|__|__||____|__| |___._|
_____ __
| |_|__|.-----.--.--.--.--.
| | || | | |_ _|
|_______|__||__|__|_____|__.__|
```

This is based on the `cursed-mklive` project from `Cursed Linux` which while spartan in its documentation, is not dissimilar from the `void-mklive` package in that front while boasting an easier workflow and functionality than the upstream variant as it simplifies the build into two top level scripts and with a more focused set of internal files requiring modification initially that enabled a wider canvas to craft the Electric Tantra Linux upon.
## Introduction

## Dependencies
- **xbps**>=*0.45*
This is the repository from which the Electric Tantra Linux Live ISO is built, using scripts that have been borrowed from the kind folks behind HRMPF, a Void Linux based rescue disk (much of the functionality of which is retained here).

## Usage
Unlike its inspiration, this ISO is not intended as a rescue system enabling the restoration of hardware but is mainly intended as a means of demonstrating my particular, opinionated AwesomeWM configuration to interested third parties who can run the ISO in a virtualized setting or as a live disk and thus get a sense of the way my configuration works within its overall environment.

**Type:**
I also use this ISO on my Ventoy USB as a means of installing my system when I break it playing around with things I shouldn't or what not, thus the rescue system functionality is retained.

```bash
$ sudo bash run.sh
## Features
- all the features of hrmpf, a rescue disk, baked in
-
-
-


## How To Use This
To build your own copy of the ISO (or to acquire it for modifications all your own)

```bash

git clone https://github.com/the-Electric-Tantra-Linux/electric-tantra-mklive

cd electric-tantra-mklive

# edit the rootfs files, the electric.packages file and
# mktantra.sh file to make it your own

sudo bash mktantra.sh
```

## rootfs
Depending on your hardware, this may be a shorter or longer process. The longest part will be the package installation most likely, but only for the first build and afterwards you'll have a `xbps-cachedir-x86_64` folder with the packages stored in it that cuts down the build time considerably.

An inherented idiosyncracity I liked and thus kept from the `Cursed Linux` team was the included directory being called `rootfs`, which is a label better describing the directory's content to those not versed in the spartan documentation for `void-mklive` presently available. In essence, this folder contains a targeted selection of my dotfiles, modified for their employment in the context of the Live Environment, in the subdirectory `rootfs/etc/skel` which is used to populate the `anon` user's home directory. Due to this abstraction and the use of `anon` instead of my usual user name, including my dotfiles and associated repos as subdirectories ma
21 changes: 21 additions & 0 deletions build-arm-images.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh

TARGET="$1"
[ -n "$TARGET" ] && shift

: ${PLATFORMS:="beaglebone cubieboard2 odroid-u2 rpi rpi2 usbarmory"}
DATE=$(date '+%Y%m%d')

for f in ${PLATFORMS} x ${PLATFORMS} ; do
if [ "$f" = "x" ]; then
musl=1
continue
fi
target=$f
if [ -n "$musl" ]; then
target=${f}-musl
fi
if [ -z "$ARGET" -o "$TARGET" = "$target" ]; then
./mkrootfs.sh $@ $target && ./mkimage.sh void-${target}-rootfs-${DATE}.tar.xz && xz -T0 -9 void-${target}-${DATE}.img
fi
done
25 changes: 25 additions & 0 deletions build-rootfs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/sh

TARGET="$1"
[ -n "$TARGET" ] && shift

: ${PLATFORMS:="beaglebone cubieboard2 odroid-u2 rpi rpi2 usbarmory x86_64 i686"}
DATE=$(date '+%Y%m%d')

for f in ${PLATFORMS} x ${PLATFORMS}; do
if [ "$f" = "x" ]; then
musl=1
continue
fi
target=$f
if [ -n "$musl" ]; then
target=${f}-musl
fi
if [ "$target" = "i686-musl" ]; then
# XXX no i686-musl repo yet
continue
fi
if [ -z "$TARGET" -o "$TARGET" = "$target" ]; then
./mkrootfs.sh $@ $target
fi
done
84 changes: 84 additions & 0 deletions build-x86-images.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#!/bin/sh

ARCH=
IMAGE=

while getopts "a:b:hr:" opt; do
case $opt in
a) ARCH="$OPTARG";;
b) IMAGE="$OPTARG";;
h) echo "${0#/*}: [-a arch] [-b base|e|xfce|mate|cinnamon|kde|lxde|lxqt] [-r repo]" >&2; exit 1;;
r) REPO="-r $OPTARG $REPO";;
esac
done
shift $((OPTIND - 1))

: ${ARCH:=$(uname -m)}

readonly DATE=$(date +%Y%m%d)
readonly BASE_IMG=void-live-${ARCH}-${DATE}.iso
readonly E_IMG=void-live-${ARCH}-${DATE}-enlightenment.iso
readonly XFCE_IMG=void-live-${ARCH}-${DATE}-xfce.iso
readonly MATE_IMG=void-live-${ARCH}-${DATE}-mate.iso
readonly CINNAMON_IMG=void-live-${ARCH}-${DATE}-cinnamon.iso
readonly KDE_IMG=void-live-${ARCH}-${DATE}-kde.iso
readonly LXDE_IMG=void-live-${ARCH}-${DATE}-lxde.iso
readonly LXQT_IMG=void-live-${ARCH}-${DATE}-lxqt.iso

case "$ARCH" in
i686*) GRUB="grub";;
x86_64*) GRUB="grub-x86_64-efi";;
esac

readonly BASE_PKGS="dialog cryptsetup lvm2 mdadm $GRUB"
readonly X_PKGS="$BASE_PKGS xorg-minimal xorg-input-drivers xorg-video-drivers setxkbmap xauth font-misc-misc terminus-font dejavu-fonts-ttf alsa-plugins-pulseaudio"
readonly E_PKGS="$X_PKGS lxdm enlightenment terminology econnman udisks2 firefox-esr"
readonly XFCE_PKGS="$X_PKGS lxdm xfce4 gnome-themes-standard gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
readonly MATE_PKGS="$X_PKGS lxdm mate mate-extra gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
readonly CINNAMON_PKGS="$X_PKGS lxdm cinnamon gnome-keyring colord gnome-terminal gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
readonly KDE_PKGS="$X_PKGS kde"
readonly LXDE_PKGS="$X_PKGS lxdm lxde gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox-esr"
readonly LXQT_PKGS="$X_PKGS lxdm lxqt gvfs-afc gvfs-mtp gvfs-smb udisks2 qupzilla"

[ ! -x mklive.sh ] && exit 0

if [ -z "$IMAGE" -o "$IMAGE" = base ]; then
if [ ! -e $BASE_IMG ]; then
./mklive.sh -a $ARCH -o $BASE_IMG -p "$BASE_PKGS" ${REPO} $@
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = e ]; then
if [ ! -e $E_IMG ]; then
./mklive.sh -a $ARCH -o $E_IMG -p "$E_PKGS" ${REPO} $@
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = xfce ]; then
if [ ! -e $XFCE_IMG ]; then
./mklive.sh -a $ARCH -o $XFCE_IMG -p "$XFCE_PKGS" ${REPO} $@
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = mate ]; then
if [ ! -e $MATE_IMG ]; then
./mklive.sh -a $ARCH -o $MATE_IMG -p "$MATE_PKGS" ${REPO} $@
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = cinnamon ]; then
if [ ! -e $CINNAMON_IMG ]; then
./mklive.sh -a $ARCH -o $CINNAMON_IMG -p "$CINNAMON_PKGS" ${REPO} $@
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = lxde ]; then
if [ ! -e $LXDE_IMG ]; then
./mklive.sh -a $ARCH -o $LXDE_IMG -p "$LXDE_PKGS" ${REPO} $@
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = lxqt ]; then
if [ ! -e $LXQT_IMG ]; then
./mklive.sh -a $ARCH -o $LXQT_IMG -p "$LXQT_PKGS" ${REPO} $@
fi
fi
if [ "$IMAGE" = kde ]; then
if [ ! -e $KDE_IMG ]; then
./mklive.sh -a $ARCH -o $KDE_IMG -p "$KDE_PKGS" ${REPO} $@
fi
fi
Loading

0 comments on commit d53108c

Please sign in to comment.