Merge remote-tracking branch 'upstream/dev' into dev
This commit is contained in:
commit
0808c8affc
28 changed files with 193 additions and 66 deletions
|
|
@ -31,6 +31,11 @@ BOOT_FILES = {
|
||||||
'/boot/grub': 'cfg',
|
'/boot/grub': 'cfg',
|
||||||
'/EFI/boot': 'conf',
|
'/EFI/boot': 'conf',
|
||||||
}
|
}
|
||||||
|
IMAGE_BOOT_ENTRIES = {
|
||||||
|
'El Capitan': 'UFD-MACOS-10.11',
|
||||||
|
'High Sierra': 'UFD-MACOS-10.13',
|
||||||
|
'Catalina': 'UFD-MACOS-10.15',
|
||||||
|
}
|
||||||
|
|
||||||
# Definitions: Sources and Destinations
|
# Definitions: Sources and Destinations
|
||||||
## NOTES: Paths are relative to the root of the ISO/UFD
|
## NOTES: Paths are relative to the root of the ISO/UFD
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,22 @@ import logging
|
||||||
import math
|
import math
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
from subprocess import CalledProcessError
|
||||||
|
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from docopt import docopt
|
from docopt import docopt
|
||||||
|
|
||||||
from wk import io, log, std
|
from wk import io, log, std
|
||||||
from wk.cfg.main import KIT_NAME_FULL, KIT_NAME_SHORT
|
from wk.cfg.main import KIT_NAME_FULL, KIT_NAME_SHORT
|
||||||
from wk.cfg.ufd import BOOT_ENTRIES, BOOT_FILES, ITEMS, ITEMS_HIDDEN, SOURCES
|
from wk.cfg.ufd import (
|
||||||
from wk.exe import run_program
|
BOOT_ENTRIES,
|
||||||
|
BOOT_FILES,
|
||||||
|
IMAGE_BOOT_ENTRIES,
|
||||||
|
ITEMS,
|
||||||
|
ITEMS_HIDDEN,
|
||||||
|
SOURCES,
|
||||||
|
)
|
||||||
|
from wk.exe import get_json_from_command, run_program
|
||||||
from wk.os import linux
|
from wk.os import linux
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -108,7 +116,7 @@ def build_ufd():
|
||||||
function=create_table,
|
function=create_table,
|
||||||
dev_path=ufd_dev,
|
dev_path=ufd_dev,
|
||||||
use_mbr=args['--use-mbr'],
|
use_mbr=args['--use-mbr'],
|
||||||
images=args['EXTRA_IMAGES'],
|
images=extra_images,
|
||||||
)
|
)
|
||||||
try_print.run(
|
try_print.run(
|
||||||
message='Setting boot flag...',
|
message='Setting boot flag...',
|
||||||
|
|
@ -174,6 +182,8 @@ def build_ufd():
|
||||||
try_print.run(
|
try_print.run(
|
||||||
message='Updating boot entries...',
|
message='Updating boot entries...',
|
||||||
function=update_boot_entries,
|
function=update_boot_entries,
|
||||||
|
ufd_dev=ufd_dev,
|
||||||
|
images=extra_images,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Install syslinux (to partition)
|
# Install syslinux (to partition)
|
||||||
|
|
@ -263,7 +273,7 @@ def copy_source(source, items, overwrite=False):
|
||||||
|
|
||||||
|
|
||||||
def create_table(dev_path, use_mbr=False, images=None):
|
def create_table(dev_path, use_mbr=False, images=None):
|
||||||
"""Create GPT or DOS partition table."""
|
"""Create GPT or DOS partition table, returns dict."""
|
||||||
cmd = [
|
cmd = [
|
||||||
'sudo',
|
'sudo',
|
||||||
'parted', dev_path,
|
'parted', dev_path,
|
||||||
|
|
@ -488,10 +498,10 @@ def show_selections(args, sources, ufd_dev, ufd_sources, extra_images):
|
||||||
std.print_standard(' ')
|
std.print_standard(' ')
|
||||||
|
|
||||||
|
|
||||||
def update_boot_entries():
|
def update_boot_entries(ufd_dev, images=None):
|
||||||
"""Update boot files for UFD usage"""
|
"""Update boot files for UFD usage"""
|
||||||
configs = []
|
configs = []
|
||||||
uuid = get_uuid('/mnt/UFD')
|
uuids = [get_uuid('/mnt/UFD')]
|
||||||
|
|
||||||
# Find config files
|
# Find config files
|
||||||
for c_path, c_ext in BOOT_FILES.items():
|
for c_path, c_ext in BOOT_FILES.items():
|
||||||
|
|
@ -511,8 +521,8 @@ def update_boot_entries():
|
||||||
'--in-place',
|
'--in-place',
|
||||||
'--regexp-extended',
|
'--regexp-extended',
|
||||||
(
|
(
|
||||||
f's#archisolabel={ISO_LABEL}#archisodevice=/dev/disk/by-uuid/{uuid}#; '
|
f's#archisolabel={ISO_LABEL}#archisodevice=/dev/disk/by-uuid/{uuids[0]}#; '
|
||||||
f's#by-label/(eSysRescueLiveCD|{ISO_LABEL}|{UFD_LABEL})#by-uuid/{uuid}#'
|
f's#by-label/(eSysRescueLiveCD|{ISO_LABEL}|{UFD_LABEL})#by-uuid/{uuids[0]}#'
|
||||||
),
|
),
|
||||||
*configs,
|
*configs,
|
||||||
]
|
]
|
||||||
|
|
@ -536,6 +546,43 @@ def update_boot_entries():
|
||||||
]
|
]
|
||||||
run_program(cmd, check=False)
|
run_program(cmd, check=False)
|
||||||
|
|
||||||
|
# Bail early
|
||||||
|
if not images:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Get PARTUUID values
|
||||||
|
cmd = ['lsblk', '--json', '--output', 'partuuid', ufd_dev]
|
||||||
|
try:
|
||||||
|
uuids = get_json_from_command(cmd)
|
||||||
|
except (CalledProcessError, ValueError):
|
||||||
|
# Bail
|
||||||
|
return
|
||||||
|
uuids = [v['partuuid'] for v in uuids['blockdevices']]
|
||||||
|
|
||||||
|
# Uncomment extra image entries if present
|
||||||
|
for _i, image in enumerate(images):
|
||||||
|
for name, comment in IMAGE_BOOT_ENTRIES.items():
|
||||||
|
if name.lower() in image.name.lower():
|
||||||
|
cmd = [
|
||||||
|
'sudo',
|
||||||
|
'sed',
|
||||||
|
'--in-place',
|
||||||
|
'--regexp-extended',
|
||||||
|
fr's/(#{comment}#.*)"PARTUUID/\1"{uuids[_i+2]}/',
|
||||||
|
*configs,
|
||||||
|
]
|
||||||
|
run_program(cmd, check=False)
|
||||||
|
cmd = [
|
||||||
|
'sudo',
|
||||||
|
'sed',
|
||||||
|
'--in-place',
|
||||||
|
f's/#{comment}#//',
|
||||||
|
*configs,
|
||||||
|
]
|
||||||
|
run_program(cmd, check=False)
|
||||||
|
IMAGE_BOOT_ENTRIES.pop(name)
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
def verify_sources(args, ufd_sources):
|
def verify_sources(args, ufd_sources):
|
||||||
"""Check all sources and abort if necessary, returns dict."""
|
"""Check all sources and abort if necessary, returns dict."""
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ PROFILE_DIR="$BUILD_DIR/archiso-profile"
|
||||||
REPO_DIR="$BUILD_DIR/repo"
|
REPO_DIR="$BUILD_DIR/repo"
|
||||||
SKEL_DIR="$PROFILE_DIR/airootfs/etc/skel"
|
SKEL_DIR="$PROFILE_DIR/airootfs/etc/skel"
|
||||||
TEMP_DIR="$BUILD_DIR/temp"
|
TEMP_DIR="$BUILD_DIR/temp"
|
||||||
|
WORK_DIR="$(mktemp -dt archiso-tmp.XXXXXXXXXX)"
|
||||||
|
ISO_DIR="${WORK_DIR}/iso"
|
||||||
MIRRORLIST_SOURCE='https://archlinux.org/mirrorlist/?country=US&protocol=http&protocol=https&ip_version=4&use_mirror_status=on'
|
MIRRORLIST_SOURCE='https://archlinux.org/mirrorlist/?country=US&protocol=http&protocol=https&ip_version=4&use_mirror_status=on'
|
||||||
if command -v nano >/dev/null 2>&1; then
|
if command -v nano >/dev/null 2>&1; then
|
||||||
EDITOR=nano
|
EDITOR=nano
|
||||||
|
|
@ -121,15 +123,14 @@ function update_live_env() {
|
||||||
sed -i -r "s/SUPPORT_URL/$KIT_NAME_SHORT/" "$PROFILE_DIR/profiledef.sh"
|
sed -i -r "s/SUPPORT_URL/$KIT_NAME_SHORT/" "$PROFILE_DIR/profiledef.sh"
|
||||||
|
|
||||||
# Boot config (legacy)
|
# Boot config (legacy)
|
||||||
mkdir -p "$PROFILE_DIR/arch"
|
mkdir -p "$PROFILE_DIR/syslinux/wimboot"
|
||||||
cp "$ROOT_DIR/images/Syslinux.jpg" "$PROFILE_DIR/syslinux/syslinux.jpg"
|
cp "$ROOT_DIR/images/Syslinux.jpg" "$PROFILE_DIR/syslinux/syslinux.jpg"
|
||||||
sed -i -r "s/__+/$KIT_NAME_FULL/" "$PROFILE_DIR/syslinux/syslinux.cfg"
|
sed -i -r "s/__+/$KIT_NAME_FULL/" "$PROFILE_DIR/syslinux/syslinux.cfg"
|
||||||
mkdir -p "$TEMP_DIR" 2>/dev/null
|
mkdir -p "$TEMP_DIR" 2>/dev/null
|
||||||
curl -Lo "$TEMP_DIR/wimboot.zip" "http://git.ipxe.org/releases/wimboot/wimboot-latest.zip"
|
curl -Lo "$TEMP_DIR/wimboot.zip" "http://git.ipxe.org/releases/wimboot/wimboot-latest.zip"
|
||||||
7z e -aoa "$TEMP_DIR/wimboot.zip" -o"$PROFILE_DIR/arch/boot" 'wimboot*/LICENSE.txt' 'wimboot*/README.txt' 'wimboot*/wimboot'
|
7z e -aoa "$TEMP_DIR/wimboot.zip" -o"$PROFILE_DIR/syslinux/wimboot" 'wimboot*/LICENSE.txt' 'wimboot*/README.txt' 'wimboot*/wimboot'
|
||||||
|
|
||||||
# Boot config (UEFI)
|
# Boot config (UEFI)
|
||||||
mkdir -p "$PROFILE_DIR/EFI/boot"
|
|
||||||
cp "/usr/share/refind/refind_x64.efi" "$PROFILE_DIR/EFI/boot/bootx64.efi"
|
cp "/usr/share/refind/refind_x64.efi" "$PROFILE_DIR/EFI/boot/bootx64.efi"
|
||||||
cp "$ROOT_DIR/images/rEFInd.png" "$PROFILE_DIR/EFI/boot/rEFInd.png"
|
cp "$ROOT_DIR/images/rEFInd.png" "$PROFILE_DIR/EFI/boot/rEFInd.png"
|
||||||
rsync -aI "/usr/share/refind/drivers_x64/" "$PROFILE_DIR/EFI/boot/drivers_x64/"
|
rsync -aI "/usr/share/refind/drivers_x64/" "$PROFILE_DIR/EFI/boot/drivers_x64/"
|
||||||
|
|
@ -170,6 +171,9 @@ function update_live_env() {
|
||||||
# MOTD
|
# MOTD
|
||||||
sed -i -r "s/_+/$KIT_NAME_FULL Linux Environment/" "$PROFILE_DIR/airootfs/etc/motd"
|
sed -i -r "s/_+/$KIT_NAME_FULL Linux Environment/" "$PROFILE_DIR/airootfs/etc/motd"
|
||||||
|
|
||||||
|
# Network
|
||||||
|
ln -s "/run/systemd/resolve/stub-resolv.conf" "$PROFILE_DIR/airootfs/etc/resolv.conf"
|
||||||
|
|
||||||
# Oh My ZSH
|
# Oh My ZSH
|
||||||
git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git "$SKEL_DIR/.oh-my-zsh"
|
git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git "$SKEL_DIR/.oh-my-zsh"
|
||||||
rm -Rf "$SKEL_DIR/.oh-my-zsh/.git"
|
rm -Rf "$SKEL_DIR/.oh-my-zsh/.git"
|
||||||
|
|
@ -206,7 +210,7 @@ function update_live_env() {
|
||||||
# Tech user
|
# Tech user
|
||||||
echo "tech:$(echo "$TECH_PASSWORD" | openssl passwd -6 -stdin):14871::::::" >> "$PROFILE_DIR/airootfs/etc/shadow"
|
echo "tech:$(echo "$TECH_PASSWORD" | openssl passwd -6 -stdin):14871::::::" >> "$PROFILE_DIR/airootfs/etc/shadow"
|
||||||
|
|
||||||
# Timezonew
|
# Timezone
|
||||||
ln -sf "/usr/share/zoneinfo/$LINUX_TIME_ZONE" "$PROFILE_DIR/airootfs/etc/localtime"
|
ln -sf "/usr/share/zoneinfo/$LINUX_TIME_ZONE" "$PROFILE_DIR/airootfs/etc/localtime"
|
||||||
|
|
||||||
if [[ "${1:-}" != "--minimal" ]]; then
|
if [[ "${1:-}" != "--minimal" ]]; then
|
||||||
|
|
@ -338,16 +342,29 @@ function build_iso() {
|
||||||
# Build ISO
|
# Build ISO
|
||||||
prefix="${KIT_NAME_SHORT}-Linux"
|
prefix="${KIT_NAME_SHORT}-Linux"
|
||||||
label="${KIT_NAME_SHORT}_LINUX"
|
label="${KIT_NAME_SHORT}_LINUX"
|
||||||
#mkarchiso -w "$BUILD_DIR/work" -o "$OUT_DIR" -v "$PROFILE_DIR" | tee -a "$LOG_DIR/$DATETIME.log"
|
mkarchiso \
|
||||||
mkarchiso -w /tmp/archiso-tmp -o "$OUT_DIR" -v "$PROFILE_DIR" | tee -a "$LOG_DIR/$DATETIME.log"
|
-o "$OUT_DIR" \
|
||||||
|
-w ${WORK_DIR} \
|
||||||
|
-v "$PROFILE_DIR" \
|
||||||
|
| tee -a "$LOG_DIR/$DATETIME.log"
|
||||||
|
|
||||||
|
# Build better ISO
|
||||||
|
rm -r "${ISO_DIR:-safety}/EFI"
|
||||||
|
rm -r "${ISO_DIR:-safety}/loader"
|
||||||
|
rsync -aI "$PROFILE_DIR/EFI/" "${ISO_DIR:-safety}/EFI/"
|
||||||
|
rsync -aI --ignore-existing "$PROFILE_DIR/syslinux/" "${ISO_DIR:-safety}/syslinux/"
|
||||||
|
## Sketchy bit ##
|
||||||
|
. /usr/bin/mkarchiso -o "${OUT_DIR}" -w "${WORK_DIR}" "${PROFILE_DIR}"
|
||||||
|
isofs_dir="${ISO_DIR}"
|
||||||
|
image_name="${KIT_NAME_SHORT}-Linux-${DATE}-x86_64.iso"
|
||||||
|
rm "${OUT_DIR}/${image_name}"
|
||||||
|
_build_iso_image
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
echo "Removing temp files..."
|
echo "Removing temp files..."
|
||||||
rm "$TEMP_DIR/Linux" -Rf | tee -a "$LOG_DIR/$DATETIME.log"
|
rm "$TEMP_DIR/Linux" -Rf | tee -a "$LOG_DIR/$DATETIME.log"
|
||||||
#sudo umount -R "$BUILD_DIR/work" || true
|
sudo umount -R ${WORK_DIR} || true
|
||||||
#sudo rm -rf "$BUILD_DIR/work"
|
sudo rm -rf ${WORK_DIR}
|
||||||
sudo umount -R /tmp/archiso-tmp || true
|
|
||||||
sudo rm -rf /tmp/archiso-tmp
|
|
||||||
|
|
||||||
echo "Reverting permissions..."
|
echo "Reverting permissions..."
|
||||||
chown $REAL_USER:$REAL_USER "$PROFILE_DIR" -R
|
chown $REAL_USER:$REAL_USER "$PROFILE_DIR" -R
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ mkinitcpio-archiso
|
||||||
mprime
|
mprime
|
||||||
nano
|
nano
|
||||||
ncdu
|
ncdu
|
||||||
|
openssh
|
||||||
p7zip
|
p7zip
|
||||||
perl
|
perl
|
||||||
pipes.sh
|
pipes.sh
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ attr
|
||||||
base-devel
|
base-devel
|
||||||
curl
|
curl
|
||||||
dos2unix
|
dos2unix
|
||||||
|
erofs-utils
|
||||||
git
|
git
|
||||||
gtk-doc
|
gtk-doc
|
||||||
gtk3
|
gtk3
|
||||||
|
|
|
||||||
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_10.11.png
Normal file
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_10.11.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 338 KiB |
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_10.13.png
Normal file
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_10.13.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 373 KiB |
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_10.15.png
Normal file
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_10.15.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 320 KiB |
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_11.png
Normal file
BIN
setup/linux/profile_base/EFI/boot/icons/wk_mac_11.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 116 KiB |
|
|
@ -17,7 +17,7 @@ hideui arrows,badges
|
||||||
# Entries
|
# Entries
|
||||||
menuentry "MemTest86" {
|
menuentry "MemTest86" {
|
||||||
icon /EFI/boot/icons/wk_memtest.png
|
icon /EFI/boot/icons/wk_memtest.png
|
||||||
loader /EFI/memtest86/memtestx64.efi
|
loader /EFI/memtest86/bootx64.efi
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry "Linux" {
|
menuentry "Linux" {
|
||||||
|
|
@ -41,6 +41,36 @@ menuentry "Linux" {
|
||||||
#UFD-MINIMAL#}
|
#UFD-MINIMAL#}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#UFD-MACOS-10.11#menuentry "macOS (El Capitan)" {
|
||||||
|
#UFD-MACOS-10.11# icon /EFI/boot/icons/wk_mac_10.11.png
|
||||||
|
#UFD-MACOS-10.11# volume "PARTUUID"
|
||||||
|
#UFD-MACOS-10.11# loader /System/Library/CoreServices/secretboot.efi
|
||||||
|
#UFD-MACOS-10.11# graphics
|
||||||
|
#UFD-MACOS-10.11# submenuentry "Mac MemTest" {
|
||||||
|
#UFD-MACOS-10.11# add_options "-s"
|
||||||
|
#UFD-MACOS-10.11# }
|
||||||
|
#UFD-MACOS-10.11#}
|
||||||
|
|
||||||
|
#UFD-MACOS-10.13#menuentry "macOS (High Sierra)" {
|
||||||
|
#UFD-MACOS-10.13# icon /EFI/boot/icons/wk_mac_10.13.png
|
||||||
|
#UFD-MACOS-10.13# volume "PARTUUID"
|
||||||
|
#UFD-MACOS-10.13# loader /System/Library/CoreServices/secretboot.efi
|
||||||
|
#UFD-MACOS-10.13# graphics
|
||||||
|
#UFD-MACOS-10.13# submenuentry "Mac MemTest" {
|
||||||
|
#UFD-MACOS-10.13# add_options "-s"
|
||||||
|
#UFD-MACOS-10.13# }
|
||||||
|
#UFD-MACOS-10.13#}
|
||||||
|
|
||||||
|
#UFD-MACOS-10.15#menuentry "macOS (Catalina)" {
|
||||||
|
#UFD-MACOS-10.15# icon /EFI/boot/icons/wk_mac_10.15.png
|
||||||
|
#UFD-MACOS-10.15# volume "PARTUUID"
|
||||||
|
#UFD-MACOS-10.15# loader /System/Library/CoreServices/secretboot.efi
|
||||||
|
#UFD-MACOS-10.15# graphics
|
||||||
|
#UFD-MACOS-10.15# submenuentry "Mac MemTest" {
|
||||||
|
#UFD-MACOS-10.15# add_options "-s"
|
||||||
|
#UFD-MACOS-10.15# }
|
||||||
|
#UFD-MACOS-10.15#}
|
||||||
|
|
||||||
#UFD-WINPE#menuentry "WindowsPE" {
|
#UFD-WINPE#menuentry "WindowsPE" {
|
||||||
#UFD-WINPE# ostype windows
|
#UFD-WINPE# ostype windows
|
||||||
#UFD-WINPE# icon /EFI/boot/icons/wk_win.png
|
#UFD-WINPE# icon /EFI/boot/icons/wk_win.png
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# The broadcom-wl package requires some modules to be disabled in order to use
|
||||||
|
# wl. Since the ISO image needs to cover many hardware cases, this file
|
||||||
|
# overrides the default blacklist in /usr/lib/modprobe.d/
|
||||||
|
#
|
||||||
|
# If you need to use wl, you may need to delete this file, then `rmmod` any
|
||||||
|
# already-loaded modules that are now blacklisted before proceeding to modprobe
|
||||||
|
# wl itself.
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
# remove from airootfs!
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Type = Package
|
||||||
|
Target = glibc
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Uncommenting en_US.UTF-8 locale and running locale-gen...
|
||||||
|
When = PostTransaction
|
||||||
|
Depends = glibc
|
||||||
|
Depends = sed
|
||||||
|
Depends = sh
|
||||||
|
Exec = /bin/sh -c "sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen && locale-gen"
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
# remove from airootfs!
|
||||||
|
# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process.
|
||||||
|
# If not, they would be used when pacstrap is run in the live environment.
|
||||||
|
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Operation = Remove
|
||||||
|
Type = Package
|
||||||
|
Target = *
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build...
|
||||||
|
When = PostTransaction
|
||||||
|
Depends = sh
|
||||||
|
Depends = coreutils
|
||||||
|
Depends = grep
|
||||||
|
Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)"
|
||||||
|
|
@ -2,24 +2,42 @@
|
||||||
#
|
#
|
||||||
## Setup network and update hostname
|
## Setup network and update hostname
|
||||||
|
|
||||||
# Wait for WiFi
|
IP=
|
||||||
|
NEW_HOSTNAME=
|
||||||
|
|
||||||
|
# Load test station details if present
|
||||||
|
if [[ -s "/run/archiso/bootmnt/teststation.name" ]]; then
|
||||||
|
NEW_HOSTNAME="$(head -1 "/run/archiso/bootmnt/teststation.name" \
|
||||||
|
| sed -r 's/\s//g')"
|
||||||
|
fi
|
||||||
|
if [[ -s "/run/archiso/bootmnt/teststation.wall" ]]; then
|
||||||
|
rm "${HOME}/.wallpaper" >/dev/null 2>&1
|
||||||
|
ln -s "/run/archiso/bootmnt/teststation.wall" "${HOME}/.wallpaper"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wait for network connection and get IP
|
||||||
echo -n "Waiting for network... "
|
echo -n "Waiting for network... "
|
||||||
sleep 3s
|
for x in {1..3}; do
|
||||||
|
sleep 1s
|
||||||
|
IP="$(ip a show scope global \
|
||||||
|
| grep inet \
|
||||||
|
| head -1 \
|
||||||
|
| sed -r 's#.*inet ([0-9]+.[0-9]+.[0-9]+.[0-9]+)/.*#\1#')"
|
||||||
|
if [[ "${IP:+x}" ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
||||||
# Set hostname
|
# Set hostname
|
||||||
echo -n "Updating hostname... "
|
if [[ -z "${NEW_HOSTNAME:+x}" && "${IP:+x}" ]]; then
|
||||||
IP="$(ip a show scope global \
|
|
||||||
| grep inet \
|
|
||||||
| head -1 \
|
|
||||||
| sed -r 's#.*inet ([0-9]+.[0-9]+.[0-9]+.[0-9]+.)/.*#\1#')"
|
|
||||||
if [[ "${IP:+x}" ]]; then
|
|
||||||
NEW_HOSTNAME="$(dig +noall +answer +short -x "$IP" \
|
NEW_HOSTNAME="$(dig +noall +answer +short -x "$IP" \
|
||||||
| grep -v ';' \
|
| grep -v ';' \
|
||||||
| head -1 \
|
| head -1 \
|
||||||
| sed 's/\.$//')"
|
| sed 's/\.$//')"
|
||||||
fi
|
fi
|
||||||
if [[ "${NEW_HOSTNAME:+x}" ]]; then
|
if [[ "${NEW_HOSTNAME:+x}" ]]; then
|
||||||
|
echo -n "Updating hostname... "
|
||||||
sudo hostnamectl set-hostname "${NEW_HOSTNAME}"
|
sudo hostnamectl set-hostname "${NEW_HOSTNAME}"
|
||||||
fi
|
fi
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,2 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
[Journal]
|
[Journal]
|
||||||
Storage=volatile
|
Storage=volatile
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
[Login]
|
[Login]
|
||||||
HandleSuspendKey=ignore
|
HandleSuspendKey=ignore
|
||||||
HandleHibernateKey=ignore
|
HandleHibernateKey=ignore
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
[Match]
|
[Match]
|
||||||
Name=en*
|
Name=en*
|
||||||
Name=eth*
|
Name=eth*
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
[Match]
|
[Match]
|
||||||
Name=wlp*
|
Name=wlp*
|
||||||
Name=wlan*
|
Name=wlan*
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Temporary /etc/pacman.d/gnupg directory
|
Description=Temporary /etc/pacman.d/gnupg directory
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Initializes Pacman keyring
|
Description=Initializes Pacman keyring
|
||||||
Wants=haveged.service
|
Wants=haveged.service
|
||||||
|
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/env bash
|
|
||||||
#
|
|
||||||
# Warning: customize_airootfs.sh is deprecated! Support for it will be removed in a future archiso version.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o errtrace
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
|
|
||||||
locale-gen
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
title Arch Linux (x86_64, UEFI)
|
title Arch Linux (x86_64, UEFI)
|
||||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
title Arch Linux (x86_64, UEFI) Copy to RAM
|
||||||
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||||
|
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||||
|
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram
|
||||||
|
|
@ -1,5 +1,2 @@
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
timeout 3
|
timeout 3
|
||||||
default archiso-x86_64-linux.conf
|
default 01-archiso-x86_64-linux.conf
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
[options]
|
[options]
|
||||||
HoldPkg = pacman glibc
|
HoldPkg = pacman glibc
|
||||||
Architecture = auto
|
Architecture = auto
|
||||||
|
ParallelDownloads = 5
|
||||||
SigLevel = Required DatabaseOptional
|
SigLevel = Required DatabaseOptional
|
||||||
LocalFileSigLevel = Optional
|
LocalFileSigLevel = Optional
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ iso_publisher="SUPPORT_URL"
|
||||||
iso_application="KIT_NAME_FULL Linux Environment"
|
iso_application="KIT_NAME_FULL Linux Environment"
|
||||||
iso_version="$(date +%Y-%m-%d)"
|
iso_version="$(date +%Y-%m-%d)"
|
||||||
install_dir="arch"
|
install_dir="arch"
|
||||||
|
buildmodes=('iso')
|
||||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
|
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
|
||||||
arch="x86_64"
|
arch="x86_64"
|
||||||
pacman_conf="pacman.conf"
|
pacman_conf="pacman.conf"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
SERIAL 0 38400
|
SERIAL 0 115200
|
||||||
UI vesamenu.c32
|
UI vesamenu.c32
|
||||||
MENU TITLE _______
|
MENU TITLE _______
|
||||||
MENU BACKGROUND syslinux.jpg
|
MENU BACKGROUND syslinux.jpg
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ A live Windows environment
|
||||||
ENDTEXT
|
ENDTEXT
|
||||||
MENU LABEL Windows PE
|
MENU LABEL Windows PE
|
||||||
COM32 linux.c32
|
COM32 linux.c32
|
||||||
APPEND wimboot gui initrdfile=/sources/BOOTMGR,/sources/BCD,/sources/boot.sdi,/sources/boot.wim
|
APPEND wimboot/wimboot gui initrdfile=/sources/BOOTMGR,/sources/BCD,/sources/boot.sdi,/sources/boot.wim
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue