Updated the ISO

This commit is contained in:
adi1090x 2023-07-21 15:43:56 +05:30
parent 7fa3eb272e
commit 7c885f1403
44 changed files with 682 additions and 201 deletions

View File

@ -1,8 +1,8 @@
# Maintainer: Aditya Shakya <adi1090x@gmail.com>
pkgname=archcraft-xfce
pkgver=1.0
pkgrel=4
pkgver=2.0
pkgrel=0
pkgdesc="XFCE desktop configurations for Archcraft"
url="https://github.com/archcraft-os/archcraft-xfce"
arch=('any')

View File

@ -0,0 +1,43 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#
# Catppuccin Frappe Theme
# ------------------------------------------------------------------------------
# Colors
background='#303446'
foreground='#C6D0F5'
color0='#51576D'
color1='#E78284'
color2='#A6D189'
color3='#E5C890'
color4='#8CAAEE'
color5='#F4B8E4'
color6='#81C8BE'
color7='#B5BFE2'
color8='#626880'
color9='#E78284'
color10='#A6D189'
color11='#E5C890'
color12='#8CAAEE'
color13='#F4B8E4'
color14='#81C8BE'
color15='#A5ADCE'
# Wallpaper
wallpaper='/usr/share/backgrounds/frappe.png'
# Terminal
terminal_font_name='JetBrainsMono Nerd Font'
terminal_font_size='10'
# Geany
geany_colors='catppuccin-frappe.conf'
geany_font='JetBrains Mono 10'
# Appearance
xfwm_theme='Catppuccin-Frappe'
gtk_font='Noto Sans 9'
gtk_theme='Catppuccin-Frappe'
icon_theme='Zafiro'
cursor_theme='Fluent'

View File

@ -0,0 +1,43 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#
# Catppuccin Macchiato Theme
# ------------------------------------------------------------------------------
# Colors
background='#24273A'
foreground='#CAD3F5'
color0='#494D64'
color1='#ED8796'
color2='#A6DA95'
color3='#EED49F'
color4='#8AADF4'
color5='#F5BDE6'
color6='#8BD5CA'
color7='#B8C0E0'
color8='#5B6078'
color9='#ED8796'
color10='#A6DA95'
color11='#EED49F'
color12='#8AADF4'
color13='#F5BDE6'
color14='#8BD5CA'
color15='#A5ADCB'
# Wallpaper
wallpaper='/usr/share/backgrounds/macchiato.png'
# Terminal
terminal_font_name='JetBrainsMono Nerd Font'
terminal_font_size='10'
# Geany
geany_colors='catppuccin-macchiato.conf'
geany_font='JetBrains Mono 10'
# Appearance
xfwm_theme='Catppuccin-Macchiato'
gtk_font='Noto Sans 9'
gtk_theme='Catppuccin-Macchiato'
icon_theme='Arc-Circle'
cursor_theme='Qogirr-Dark'

View File

@ -0,0 +1,43 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#
# Catppuccin Mocha Theme
# ------------------------------------------------------------------------------
# Colors
background='#1E1E2E'
foreground='#CDD6F4'
color0='#45475A'
color1='#F38BA8'
color2='#A6E3A1'
color3='#F9E2AF'
color4='#89B4FA'
color5='#F5C2E7'
color6='#94E2D5'
color7='#BAC2DE'
color8='#585B70'
color9='#F38BA8'
color10='#A6E3A1'
color11='#F9E2AF'
color12='#89B4FA'
color13='#F5C2E7'
color14='#94E2D5'
color15='#A6ADC8'
# Wallpaper
wallpaper='/usr/share/backgrounds/mocha.jpg'
# Terminal
terminal_font_name='JetBrainsMono Nerd Font'
terminal_font_size='10'
# Geany
geany_colors='catppuccin-mocha.conf'
geany_font='JetBrains Mono 10'
# Appearance
xfwm_theme='Catppuccin-Mocha'
gtk_font='Noto Sans 9'
gtk_theme='Catppuccin-Mocha'
icon_theme='Luv-Folders-Dark'
cursor_theme='Sweet'

View File

@ -0,0 +1,43 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#
# Dark Red Theme
# ------------------------------------------------------------------------------
# Colors
background='#1e222a'
foreground='#c8ccd4'
color0='#1e222a'
color1='#e06c75'
color2='#98c379'
color3='#e5c07b'
color4='#61afef'
color5='#c678dd'
color6='#56b6c2'
color7='#abb2bf'
color8='#545862'
color9='#e06c75'
color10='#98c379'
color11='#e5c07b'
color12='#61afef'
color13='#c678dd'
color14='#56b6c2'
color15='#c8ccd4'
# Wallpaper
wallpaper='/usr/share/backgrounds/tokyo.png'
# Terminal
terminal_font_name='JetBrainsMono Nerd Font'
terminal_font_size='10'
# Geany
geany_colors='manhattan.conf'
geany_font='JetBrains Mono 10'
# Appearance
xfwm_theme='Manhattan'
gtk_font='Noto Sans 9'
gtk_theme='Manhattan'
icon_theme='Luv-Folders-Dark'
cursor_theme='Qogirr-Dark'

View File

@ -0,0 +1,43 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#
# Everforest Theme
# ------------------------------------------------------------------------------
# Colors
background='#2B3339'
foreground='#D3C6AA'
color0='#48555F'
color1='#E67E80'
color2='#A7C080'
color3='#DBBC7F'
color4='#7FBBB3'
color5='#D699B6'
color6='#83C092'
color7='#D3C6AA'
color8='#48555F'
color9='#E67E80'
color10='#A7C080'
color11='#DBBC7F'
color12='#7FBBB3'
color13='#D699B6'
color14='#83C092'
color15='#D3C6AA'
# Wallpaper
wallpaper='/usr/share/backgrounds/everforest.png'
# Terminal
terminal_font_name='JetBrainsMono Nerd Font'
terminal_font_size='10'
# Geany
geany_colors='manhattan.conf'
geany_font='JetBrains Mono 10'
# Appearance
xfwm_theme='Everforest'
gtk_font='Noto Sans 9'
gtk_theme='Everforest'
icon_theme='Zafiro-Green'
cursor_theme='Qogirr-Dark'

View File

@ -0,0 +1,43 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#
# Kanagawa Theme
# ------------------------------------------------------------------------------
# Colors
background='#2e3440'
foreground='#D8DEE9'
color0='#3B4252'
color1='#BF616A'
color2='#A3BE8C'
color3='#EBCB8B'
color4='#81A1C1'
color5='#B48EAD'
color6='#88C0D0'
color7='#E5E9F0'
color8='#4C566A'
color9='#BF616A'
color10='#A3BE8C'
color11='#EBCB8B'
color12='#81A1C1'
color13='#B48EAD'
color14='#8FBCBB'
color15='#ECEFF4'
# Wallpaper
wallpaper='/usr/share/backgrounds/kanagawa.png'
# Terminal
terminal_font_name='JetBrainsMono Nerd Font'
terminal_font_size='10'
# Geany
geany_colors='nordic.conf'
geany_font='JetBrains Mono 10'
# Appearance
xfwm_theme='Nordic'
gtk_font='Noto Sans 9'
gtk_theme='Nordic'
icon_theme='Qogir-Dark'
cursor_theme='Qogirr-Dark'

View File

@ -1,14 +1,14 @@
# Maintainer: Aditya Shakya <adi1090x@gmail.com>
pkgname=calamares-config-xfce
pkgver=1.0
pkgrel=2
pkgver=2.0
pkgrel=1
pkgdesc="Calamares configuration for Archcraft XFCE."
url="https://github.com/archcraft-os/archcraft-xfce"
arch=('any')
license=('GPL')
provides=($pkgname)
conflicts=('calamares-config')
conflicts=('calamares-config' 'calamares-config-prime' 'calamares-config-wayland')
depends=()
prepare() {
@ -23,8 +23,10 @@ package() {
(find calamares -type f -exec install -Dm 644 "{}" "$pkgdir/etc/{}" \;)
# copy install scripts
install -Dm 755 post_install.sh "$_bindir"/post_install.sh
install -Dm 755 chrooted_post_install.sh "$_bindir"/chrooted_post_install.sh
install -Dm 755 post_install.sh "$_bindir"/post_install.sh
install -Dm 755 chrooted_post_install.sh "$_bindir"/chrooted_post_install.sh
install -Dm 755 post_install_nvidia.sh "$_bindir"/post_install_nvidia.sh
install -Dm 755 chrooted_post_install_nvidia.sh "$_bindir"/chrooted_post_install_nvidia.sh
# make scripts executable
chmod 755 "$pkgdir"/etc/calamares/launch.sh

View File

@ -22,7 +22,7 @@ Presentation
Timer {
id: advanceTimer
interval: 5000
interval: 10000
running: presentation.activatedInCalamares
repeat: true
onTriggered: nextSlide()

View File

@ -1,7 +1,7 @@
#!/usr/bin/bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
## Everyone is permitted to copy and distribute copies of this file under GNU-GPL3
##
## Test Calamares Slides
qmlscene -I /usr/share/calamares/qml show.qml -geometry 825x500

View File

@ -4,14 +4,14 @@
# Configuration for the shell process job.
# Set to true to run in host, rather than target system
dontChroot: false
dontChroot: true
# Tune this for the commands you're actually running
timeout: 999
# Commands
script:
- command: "sed -i -e 's/modconf/modconf kms/g' /etc/mkinitcpio.conf"
- command: "/usr/bin/post_install_nvidia.sh"
# Description of the job
i18n:

View File

@ -21,7 +21,6 @@ requirements:
- storage
- ram
- power
- internet
- root
- screen

View File

@ -1,8 +1,7 @@
#!/bin/bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
## Everyone is permitted to copy and distribute copies of this file under GNU-GPL3
##
## Post installation script for Archcraft (Executes on target system to perform various operations)
## -----------------------------------------------
@ -262,23 +261,6 @@ _perform_various_stuff() {
mkdir -p /boot/grub/themes
cp -rf /usr/share/grub/themes/archcraft /boot/grub/themes
# disabling autologin for lightdm (if exist)
lightdm_config='/etc/lightdm/lightdm.conf'
if [[ -e "$lightdm_config" ]]; then
echo "+---------------------->>"
echo "[*] Disabling autologin for lightdm..."
sed -i -e 's|autologin-user=.*|#autologin-user=username|g' "$lightdm_config"
sed -i -e 's|autologin-session=.*|#autologin-session=openbox|g' "$lightdm_config"
fi
# disabling autologin for lxdm (if exist)
lxdm_config='/etc/lxdm/lxdm.conf'
if [[ -e "$lxdm_config" ]]; then
echo "+---------------------->>"
echo "[*] Disabling autologin for lxdm..."
sed -i -e 's/autologin=.*/#autologin=username/g' "$lxdm_config"
fi
# disabling autologin for sddm (if exist)
sddm_config='/etc/sddm.conf.d/kde_settings.conf'
if [[ -e "$sddm_config" ]]; then
@ -287,6 +269,16 @@ _perform_various_stuff() {
sed -i -e 's/User=liveuser/#User=username/g' "$sddm_config"
fi
# Fix Directory menu in xfce panel
panel_config="/home/${new_user}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml"
if [[ -e "$panel_config" ]]; then
echo "+---------------------->>"
echo "[*] Fixing directory menu in xfce-panel..."
sed -i -e "s|/home/liveuser|/home/$new_user|g" "$panel_config"
sed -i -e "s|/home/liveuser|/home/$new_user|g" /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
chown -R ${new_user}:${new_user} "$panel_config"
fi
# Perform various operations
echo "+---------------------->>"
echo "[*] Running operations as new user : ${new_user}..."

View File

@ -0,0 +1,82 @@
#!/bin/bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Post installation script for Archcraft (Executes on target system to perform nvidia specific operations)
## -----------------------------------------------
## mkinitcpio.conf file
init_file='/etc/mkinitcpio.conf'
## Add `kms` hook in 'init_file' file for in-tree modules (if not already present)
_add_kms() {
if [[ ! `cat $init_file | grep 'kms'` ]]; then
echo "+---------------------->>"
echo "[*] Enabling 'kms' in $init_file file..."
sed -i -e 's/modconf/modconf kms/g' /etc/mkinitcpio.conf
fi
}
## Enable Nvidia Modules and Required Kernel Parameters
_enable_nvidia() {
local nvidia_gpu_file='/var/log/nvidia-gpu-card-info.bash'
local nvidia_card=''
local nvidia_driver=''
if [[ -r "$nvidia_gpu_file" ]] ; then
echo "+---------------------->>"
echo "[*] Getting Nvidia drivers info from $nvidia_gpu_file file..."
source ${nvidia_gpu_file}
else
echo "+---------------------->>"
echo "[!] Warning: file $nvidia_gpu_file does not exist!"
fi
if [[ "$nvidia_card" == 'yes' ]] ; then
if [[ "$nvidia_driver" == 'yes' ]] ; then
# Add nvidia modules in 'init_file' file
if [[ `cat $init_file | grep 'MODULES="'` ]]; then
echo "+---------------------->>"
echo "[*] Adding Nvidia Modules in $init_file file..."
sed -i -e 's|MODULES="|MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm |g' ${init_file}
else
echo "+---------------------->>"
echo "[*] Adding Nvidia Modules in $init_file file..."
sed -i -e 's|MODULES=(|MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm |g' ${init_file}
fi
# Remove `kms` hook from 'init_file' file
echo "+---------------------->>"
echo "[*] Removing 'kms' from $init_file file..."
sed -i -e 's/modconf kms/modconf/g' ${init_file}
# Add kernel parameter in `/etc/default/grub` file
echo "+---------------------->>"
echo "[*] Adding Nvidia Kernel Parameter in '/etc/default/grub' file..."
sed -i -e 's|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia_drm.modeset=1|g' /etc/default/grub
fi
fi
}
## Remove Nvidia Specific Files from Live ISO
_remove_iso_files() {
local _files_to_remove=(
/etc/mkinitcpio-nvidia.conf
/etc/mkinitcpio.d/linux-nvidia.preset
)
local dfile
echo "+---------------------->>"
for dfile in "${_files_to_remove[@]}"; do
echo "[*] Deleting $dfile file from target system..."
rm -rf ${dfile}
done
}
## Execute Script
_add_kms
_enable_nvidia
_remove_iso_files

View File

@ -1,8 +1,7 @@
#!/bin/bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
## Everyone is permitted to copy and distribute copies of this file under GNU-GPL3
##
## Post installation script for Archcraft (Executes on live system, only to detect drivers in use)
##--------------------------------------------------------------------------------

View File

@ -0,0 +1,63 @@
#!/bin/bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
## Everyone is permitted to copy and distribute copies of this file under GNU-GPL3
## Post installation script for Archcraft (only to detect nvidia)
##--------------------------------------------------------------------------------
## Get mount points of target system according to installer being used (calamares or abif)
if [[ `pidof calamares` ]]; then
chroot_path="/tmp/`lsblk | grep 'calamares-root' | awk '{ print $NF }' | sed -e 's/\/tmp\///' -e 's/\/.*$//' | tail -n1`"
else
chroot_path='/mnt'
fi
if [[ "$chroot_path" == '/tmp/' ]] ; then
echo "+---------------------->>"
echo "[!] Fatal error: `basename $0`: chroot_path is empty!"
fi
## Use chroot not arch-chroot
arch_chroot() {
chroot "$chroot_path" /bin/bash -c ${1}
}
## Detect drivers in use in live session
nvidia_gpu_file="$chroot_path"/var/log/nvidia-gpu-card-info.bash
_detect_nvidia_drivers() {
local nvidia_card=no
local nvidia_driver=no
if [[ -n "`lspci -k | grep -P 'VGA|3D|Display' | grep -w 'NVIDIA'`" ]]; then
nvidia_card=yes
if [[ -n "`lsmod | grep -w nvidia`" ]]; then
nvidia_driver=yes
fi
if [[ -n "`lspci -k | grep -wA2 'NVIDIA' | grep 'Kernel driver in use: nvidia'`" ]]; then
nvidia_driver=yes
fi
fi
echo "nvidia_card=$nvidia_card" >> ${nvidia_gpu_file}
echo "nvidia_driver=$nvidia_driver" >> ${nvidia_gpu_file}
}
echo "+---------------------->>"
echo "[*] Detecting NVIDIA GPU card & drivers used in live session..."
_detect_nvidia_drivers
# For logs
echo "+---------------------->>"
echo "[*] Content of $nvidia_gpu_file :"
cat ${nvidia_gpu_file}
##--------------------------------------------------------------------------------
## Run the final script inside calamares chroot (target system)
if [[ `pidof calamares` ]]; then
echo "+---------------------->>"
echo "[*] Running nvidia chroot post installation script in target system..."
arch_chroot "/usr/bin/chrooted_post_install_nvidia.sh"
fi

View File

@ -0,0 +1,67 @@
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(base udev plymouth modconf archiso archiso_loop_mnt block filesystems keyboard)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

View File

@ -57,10 +57,10 @@ HOOKS=(base udev plymouth modconf kms archiso archiso_loop_mnt block filesystems
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
COMPRESSION="zstd"
#COMPRESSION="zstd"
# COMPRESSION_OPTIONS
# Additional options for the compressor

View File

@ -0,0 +1,8 @@
# mkinitcpio preset file for the 'linux' package (nvidia)
PRESETS=('nvidia')
ALL_kver="/boot/vmlinuz-linux"
ALL_config="/etc/mkinitcpio-nvidia.conf"
nvidia_image="/boot/initramfs-linux-nvidia.img"

View File

@ -0,0 +1,2 @@
[Icon Theme]
Inherits=Qogirr

View File

@ -58,7 +58,7 @@ AuthorizedKeysFile .ssh/authorized_keys
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
#KbdInteractiveAuthentication yes
KbdInteractiveAuthentication no
# Kerberos options
#KerberosAuthentication no
@ -75,7 +75,7 @@ AuthorizedKeysFile .ssh/authorized_keys
# be allowed through the KbdInteractiveAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via KbdInteractiveAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# the setting of "PermitRootLogin prohibit-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and KbdInteractiveAuthentication to 'no'.
@ -88,7 +88,7 @@ UsePAM yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no # pam does that
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no

View File

@ -7,6 +7,7 @@ Name=eth*
[Network]
DHCP=yes
MulticastDNS=yes
IPv6PrivacyExtensions=yes
# systemd-networkd does not set per-interface-type default route metrics

View File

@ -3,6 +3,7 @@ Name=wl*
[Network]
DHCP=yes
MulticastDNS=yes
IPv6PrivacyExtensions=yes
# systemd-networkd does not set per-interface-type default route metrics

View File

@ -0,0 +1,4 @@
# Default systemd-resolved configuration for archiso
[Resolve]
MulticastDNS=yes

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/systemd-timesyncd.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/qemu-guest-agent.service

View File

@ -16,7 +16,13 @@ automated_script ()
script="$(script_cmdline)"
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null
# there's no synchronization for network availability before executing this script
printf '%s: waiting for network-online.target\n' "$0"
until systemctl --quiet is-active network-online.target; do
sleep 1
done
printf '%s: downloading %s\n' "$0" "${script}"
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script
rt=$?
else
cp "${script}" /tmp/startup_script
@ -24,6 +30,9 @@ automated_script ()
fi
if [[ ${rt} -eq 0 ]]; then
chmod +x /tmp/startup_script
printf '%s: executing automated script\n' "$0"
# note that script is executed when other services (like pacman-init) may be still in progress, please
# synchronize to "systemctl is-system-running --wait" when your script depends on other services
/tmp/startup_script
fi
fi

View File

@ -28,7 +28,7 @@ _EOF_
## Enable Parallel Downloads
sed -i -e 's|#ParallelDownloads.*|ParallelDownloads = 5|g' /etc/pacman.conf
sed -i -e '/#\[testing\]/Q' /etc/pacman.conf
sed -i -e '/#\[core-testing\]/Q' /etc/pacman.conf
## Append archcraft repository to pacman.conf
cat >> "/etc/pacman.conf" <<- EOL
@ -36,19 +36,16 @@ cat >> "/etc/pacman.conf" <<- EOL
SigLevel = Optional TrustAll
Include = /etc/pacman.d/archcraft-mirrorlist
#[testing]
#[core-testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,

View File

@ -1,7 +1,7 @@
title Boot Archcraft (x86_64, UEFI)
sort-key 01
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n module_blacklist=pcspkr,snd_pcsp

View File

@ -1,7 +1,7 @@
title Boot Archcraft (x86_64, UEFI, open source)
sort-key 02
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm module_blacklist=pcspkr,snd_pcsp

View File

@ -1,7 +0,0 @@
title Boot Archcraft (x86_64, UEFI, open source, no nouveau)
sort-key 03
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=freenonouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes

View File

@ -0,0 +1,7 @@
title Boot Archcraft (x86_64, UEFI, nvidia)
sort-key 03
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-nvidia.img
options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nvidia_drm.modeset=1 nouveau.modeset=0 module_blacklist=nouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=pcspkr,snd_pcsp

View File

@ -0,0 +1,7 @@
title Boot Archcraft (x86_64, UEFI, nomodeset)
sort-key 04
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nomodeset module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes module_blacklist=pcspkr,snd_pcsp

View File

@ -1,7 +0,0 @@
title Boot Archcraft (x86_64, UEFI, NVIDIA)
sort-key 04
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfree nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes

View File

@ -1,7 +0,0 @@
title Boot Archcraft (x86_64, UEFI, NVIDIA, no nouveau)
sort-key 05
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfreenonouveau nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes

View File

@ -1,7 +0,0 @@
title Boot Archcraft (x86_64, UEFI, nomodeset)
sort-key 06
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nomodeset nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes

View File

@ -3,15 +3,18 @@ insmod part_gpt
insmod part_msdos
insmod fat
insmod iso9660
insmod ntfs
insmod ntfscomp
insmod exfat
insmod udf
# Use graphics-mode output
insmod all_video
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
insmod gfxterm
set gfxmode="auto"
terminal_input console
terminal_output gfxterm
terminal_output console
fi
# Enable serial console
@ -20,6 +23,15 @@ if serial --unit=0 --speed=115200; then
terminal_output --append serial
fi
# Search for the ISO volume
if [ -z "${ARCHISO_UUID}" ]; then
if [ -z "${ARCHISO_HINT}" ]; then
regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}"
fi
search --no-floppy --set=root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}"
probe --set ARCHISO_UUID --fs-uuid "${root}"
fi
# Set default menu entry
default=archcraft
timeout=10
@ -28,57 +40,37 @@ timeout_style=menu
# Menu entries
menuentry "Boot Archcraft (x86_64, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n module_blacklist=pcspkr,snd_pcsp
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
}
menuentry "Boot Archcraft (x86_64, UEFI, open source)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftos' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm module_blacklist=pcspkr,snd_pcsp
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
}
menuentry "Boot Archcraft (x86_64, UEFI, open source, no nouveau)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftnn' {
menuentry "Boot Archcraft (x86_64, UEFI, nvidia)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftpn' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=freenonouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
}
menuentry "Boot Archcraft (x86_64, UEFI, NVIDIA)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftpn' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfree nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
}
menuentry "Boot Archcraft (x86_64, UEFI, NVIDIA, no nouveau)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftpnn' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfreenonouveau nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nvidia_drm.modeset=1 nouveau.modeset=0 module_blacklist=nouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=pcspkr,snd_pcsp
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-nvidia.img
}
menuentry "Boot Archcraft (x86_64, UEFI, nomodeset)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftnm' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nomodeset nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nomodeset module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes module_blacklist=pcspkr,snd_pcsp
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
}
if [ "${grub_platform}" == "efi" ]; then
if [ "${grub_cpu}" == "x86_64" ]; then
menuentry "UEFI Shell" --class recovery {
menuentry "UEFI Shell" --class recovery --class efi {
insmod chain
search --no-floppy --set=root --label %ARCHISO_LABEL%
chainloader /shellx64.efi
}
elif [ "${grub_cpu}" == "i386" ]; then
menuentry "UEFI Shell" --class recovery {
menuentry "UEFI Shell" --class recovery --class efi {
insmod chain
search --no-floppy --set=root --label %ARCHISO_LABEL%
chainloader /shellia32.efi
}
fi

View File

@ -29,6 +29,7 @@ gpg_key=""
gpg_sender=""
iso_name=""
iso_label=""
iso_uuid=""
iso_publisher=""
iso_application=""
iso_version=""
@ -38,6 +39,7 @@ pacman_conf=""
packages=""
bootstrap_packages=""
pacstrap_dir=""
declare -i rm_work_dir=0
buildmodes=()
bootmodes=()
airootfs_image_type=""
@ -86,7 +88,7 @@ usage: ${app_name} [options] <profile_dir>
Default: '${iso_application}'
-C <file> pacman configuration file.
Default: '${pacman_conf}'
-D <install_dir> Set an install_dir. All files will by located here.
-D <install_dir> Set an install_dir. All files will be located here.
Default: '${install_dir}'
NOTE: Max 8 characters, use only [a-z0-9]
-L <label> Set the ISO volume label
@ -109,6 +111,7 @@ usage: ${app_name} [options] <profile_dir>
Default: '${out_dir}'
-p [package ..] Package(s) to install.
Multiple packages are provided as quoted, space delimited list.
-r Delete the working directory at the end.
-v Enable verbose output
-w <work_dir> Set the working directory
Default: '${work_dir}'
@ -395,7 +398,7 @@ _make_customize_airootfs() {
if [[ ! -d "${pacstrap_dir}${passwd[5]}" ]]; then
install -d -m 0750 -o "${passwd[2]}" -g "${passwd[3]}" -- "${pacstrap_dir}${passwd[5]}"
fi
cp -dnRT --preserve=mode,timestamps,links -- "${pacstrap_dir}/etc/skel/." "${pacstrap_dir}${passwd[5]}"
cp -dRT --update=none --preserve=mode,timestamps,links -- "${pacstrap_dir}/etc/skel/." "${pacstrap_dir}${passwd[5]}"
chmod -f 0750 -- "${pacstrap_dir}${passwd[5]}"
chown -hR -- "${passwd[2]}:${passwd[3]}" "${pacstrap_dir}${passwd[5]}"
else
@ -463,6 +466,7 @@ _make_bootmode_bios.syslinux.mbr() {
install -d -m 0755 -- "${isofs_dir}/boot/syslinux"
for _cfg in "${profile}/syslinux/"*.cfg; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%ARCHISO_UUID%|${iso_uuid}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \
"${_cfg}" > "${isofs_dir}/boot/syslinux/${_cfg##*/}"
@ -570,26 +574,25 @@ _make_common_bootmode_grub_copy_to_isofs() {
files_to_copy+=("${profile}/grub/"!(*.cfg))
fi
install -d -m 0755 -- "${isofs_dir}/boot/grub"
install -m 0644 -- "${files_to_copy[@]}" "${isofs_dir}/boot/grub/"
cp -r --remove-destination -- "${files_to_copy[@]}" "${isofs_dir}/boot/grub/"
}
# Prepare GRUB configuration files
_make_common_bootmode_grub_cfg(){
local _cfg archiso_uuid search_filename
local _cfg search_filename
install -d -- "${work_dir}/grub"
# Precalculate the ISO's modification date in UTC, i.e. its "UUID"
TZ=UTC printf -v archiso_uuid '%(%F-%H-%M-%S-00)T' "$SOURCE_DATE_EPOCH"
# Create a /boot/grub/YYYY-mm-dd-HH-MM-SS-00.uuid file on ISO 9660. GRUB will search for it to find the ISO
# volume. This is similar to what grub-mkrescue does, except it places the file in /.disk/, but we opt to use a
# directory that does not start with a dot to avoid it being accidentally missed when copying the ISO's contents.
: > "${work_dir}/grub/${archiso_uuid}.uuid"
search_filename="/boot/grub/${archiso_uuid}.uuid"
: > "${work_dir}/grub/${iso_uuid}.uuid"
search_filename="/boot/grub/${iso_uuid}.uuid"
# Fill GRUB configuration files
for _cfg in "${profile}/grub/"*'.cfg'; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%ARCHISO_UUID%|${iso_uuid}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g;
s|%ARCHISO_SEARCH_FILENAME%|${search_filename}|g" \
@ -838,6 +841,7 @@ _make_bootmode_uefi-x64.systemd-boot.esp() {
mcopy -i "${efibootimg}" "${profile}/efiboot/loader/loader.conf" ::/loader/
for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%ARCHISO_UUID%|${iso_uuid}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \
"${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}"
@ -1673,10 +1677,15 @@ _set_overrides() {
elif [[ -z "$quiet" ]]; then
quiet="y"
fi
if [[ -v override_rm_work_dir ]]; then
rm_work_dir="$override_rm_work_dir"
fi
# Set variables that do not have overrides
[[ -n "$airootfs_image_type" ]] || airootfs_image_type="squashfs"
[[ -n "$iso_name" ]] || iso_name="${app_name}"
# Precalculate the ISO's modification date in UTC, i.e. its "UUID"
TZ=UTC printf -v iso_uuid '%(%F-%H-%M-%S-00)T' "$SOURCE_DATE_EPOCH"
}
_export_gpg_publickey() {
@ -1743,6 +1752,16 @@ _make_pkglist() {
_msg_info "Done!"
}
# Create working directory
_make_work_dir() {
if [[ ! -d "${work_dir}" ]]; then
install -d -- "${work_dir}"
elif (( rm_work_dir )); then
rm_work_dir=0
_msg_warning "Working directory removal requested, but '${work_dir}' already exists. It will not be removed!" 0
fi
}
# build the base for an ISO and/or a netboot target
_build_iso_base() {
local run_once_mode="base"
@ -1754,13 +1773,9 @@ _build_iso_base() {
isofs_dir="${work_dir}/iso"
# Create working directory
[[ -d "${work_dir}" ]] || install -d -- "${work_dir}"
# Write build date to file or if the file exists, read it from there
if [[ -e "${work_dir}/build_date" ]]; then
SOURCE_DATE_EPOCH="$(<"${work_dir}/build_date")"
else
printf '%s\n' "$SOURCE_DATE_EPOCH" > "${work_dir}/build_date"
fi
_run_once _make_work_dir
# Write build date to file if it does not exist already
[[ -e "${work_dir}/build_date" ]] || printf '%s\n' "$SOURCE_DATE_EPOCH" > "${work_dir}/build_date"
[[ "${quiet}" == "y" ]] || _show_config
_run_once _make_pacman_conf
@ -1837,9 +1852,14 @@ _build() {
for buildmode in "${buildmodes[@]}"; do
_run_once "_build_buildmode_${buildmode}"
done
if (( rm_work_dir )); then
_msg_info 'Removing the working directory...'
rm -rf -- "${work_dir:?}/"
_msg_info 'Done!'
fi
}
while getopts 'c:p:C:L:P:A:D:w:m:o:g:G:vh?' arg; do
while getopts 'c:p:C:L:P:A:D:w:m:o:g:G:vrh?' arg; do
case "${arg}" in
p) read -r -a override_pkg_list <<< "${OPTARG}" ;;
C) override_pacman_conf="${OPTARG}" ;;
@ -1854,6 +1874,7 @@ while getopts 'c:p:C:L:P:A:D:w:m:o:g:G:vh?' arg; do
g) override_gpg_key="${OPTARG}" ;;
G) override_gpg_sender="${OPTARG}" ;;
v) override_quiet="n" ;;
r) declare -i override_rm_work_dir=1 ;;
h|?) _usage 0 ;;
*)
_msg_error "Invalid argument '${arg}'" 0
@ -1876,6 +1897,13 @@ fi
# get the absolute path representation of the first non-option argument
profile="$(realpath -- "${1}")"
# Read SOURCE_DATE_EPOCH from file early
build_date_file="$(realpath -q -- "${override_work_dir:-./work}/build_date")" || :
if [[ -f "$build_date_file" ]]; then
SOURCE_DATE_EPOCH="$(<"$build_date_file")"
fi
unset build_date_file
_read_profile
_set_overrides
_validate_options

View File

@ -29,6 +29,7 @@ ethtool
exfatprogs
f2fs-tools
fatresize
foot-terminfo
fsarchiver
gnu-netcat
gpart
@ -61,6 +62,7 @@ man-pages
mc
mdadm
#memtest86+
#memtest86+-efi
mkinitcpio
mkinitcpio-archiso
mkinitcpio-nfs-utils
@ -114,6 +116,7 @@ usbutils
vim
#virtualbox-guest-utils-nox
vpnc
wezterm-terminfo
wireless-regdb
wireless_tools
wpa_supplicant
@ -149,6 +152,8 @@ xf86-video-vesa
xf86-video-intel
xf86-video-amdgpu
xf86-video-ati
mesa
mesa-utils
## GPU Drivers (Nvidia) ------------------------------
xf86-video-nouveau
@ -188,6 +193,7 @@ pipewire-alsa
pipewire-pulse
pipewire-jack
pulsemixer
pavucontrol
gst-plugin-pipewire
## Video
@ -229,14 +235,35 @@ kvantum
qt5ct
## Display Manager ------------------------------
sddm
sddm-git
archcraft-sddm-theme
## DE/WMs ------------------------------
## Desktop ------------------------------
xfce4
xfce4-goodies
archcraft-xfce
# Apps
firefox
geany
geany-plugins
atril
# Utilities
acpi
galculator
gparted
gnome-keyring
meld
polkit
simplescreenrecorder
udisks2
xclip
xcolor
xdotool
yad
# Archcraft Packages
archcraft-cursors
archcraft-icons
archcraft-themes
@ -253,16 +280,12 @@ archcraft-config-geany
archcraft-config-qt
archcraft-hooks-zsh
firefox
geany
geany-plugins
atril
## Functionality ------------------------------
## Fonts
noto-fonts
noto-fonts-emoji
noto-fonts-cjk
terminus-font
## Multimedia
@ -307,7 +330,9 @@ xarchiver
## Misc ------------------------------
## Package Tools
bison
fakeroot
flex
make
automake
autoconf
@ -323,18 +348,9 @@ powertop
ranger
vim
## Utilities
acpi
gparted
polkit
udisks2
yad
xcolor
meld
xclip
## AUR Packages
downgrade
gtk3-nocsd-git
ksuperkey
mkinitcpio-firmware
mugshot

View File

@ -70,23 +70,20 @@ LocalFileSigLevel = Optional
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[archcraft]
SigLevel = Optional TrustAll
Include = /etc/pacman.d/archcraft-mirrorlist
#[core-testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,

View File

@ -2,10 +2,10 @@
# shellcheck disable=SC2034
iso_name="archcraft-xfce"
iso_label="ARCHCRAFT_$(date +%Y%m)"
iso_label="ARCHCRAFT_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
iso_publisher="Aditya Shakya <http://www.github.com/adi1090x>"
iso_application="Archcraft Live/Installation/Rescue CD"
iso_version="$(date +%Y.%m.%d)"
iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
install_dir="arch"
buildmodes=('iso')
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'

View File

@ -8,7 +8,7 @@ MENU AUTOBOOT Starting Archcraft in # second{,s}.
# Menu items width
MENU WIDTH 70
# Gap from top
MENU VSHIFT 8
MENU VSHIFT 9
# Gap from sides
MENU HSHIFT 6
# Gap from left
@ -16,11 +16,11 @@ MENU MARGIN 4
# How many visible rows
MENU ROWS 10
# Tab message row height
MENU TABMSGROW 16
MENU TABMSGROW 15
# CMD line height
MENU CMDLINEROW 16
MENU CMDLINEROW 15
# Help message row
MENU HELPMSGROW 19
MENU HELPMSGROW 18
# Help message ending row
MENU HELPMSGENDROW 30

View File

@ -4,9 +4,9 @@ Boot Archcraft install medium using NBD.
It allows you to install Archcraft or perform system maintenance.
ENDTEXT
MENU LABEL Boot Archcraft (x86_64, NBD)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y
SYSAPPEND 3
LABEL arch64_nfs
@ -15,9 +15,9 @@ Boot Archcraft install medium using NFS.
It allows you to install Archcraft or perform system maintenance.
ENDTEXT
MENU LABEL Boot Archcraft (x86_64, NFS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt checksum verify
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y
SYSAPPEND 3
LABEL arch64_http
@ -26,7 +26,7 @@ Boot Archcraft install medium using HTTP.
It allows you to install Archcraft or perform system maintenance.
ENDTEXT
MENU LABEL Boot Archcraft (x86_64, HTTP)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ checksum verify
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y
SYSAPPEND 3

View File

@ -7,7 +7,7 @@ ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n module_blacklist=pcspkr,snd_pcsp
# Open Source
LABEL arch64free
@ -18,40 +18,18 @@ ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, open source)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes
# Open Source, No Nouveau
LABEL arch64freenonouveau
TEXT HELP
Boot Archcraft install medium on BIOS with open source drivers.
It allows you to install Archcraft or perform system maintenance.
ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, open source, no nouveau)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=freenonouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm module_blacklist=pcspkr,snd_pcsp
# NVIDIA Proprietary
LABEL arch64nonfree
TEXT HELP
Boot Archcraft install medium on BIOS with proprietary drivers (NVIDIA).
Boot Archcraft install medium on BIOS with proprietary nvidia drivers.
It allows you to install Archcraft or perform system maintenance.
ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, NVIDIA)
MENU LABEL Boot Archcraft (x86_64, BIOS, nvidia)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfree nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes
# NVIDIA Proprietary, No Nouveau
LABEL arch64nonfreenonouveau
TEXT HELP
Boot Archcraft install medium on BIOS with proprietary drivers (NVIDIA).
It allows you to install Archcraft or perform system maintenance.
ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, NVIDIA, no nouveau)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfreenonouveau nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux-nvidia.img
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nvidia_drm.modeset=1 nouveau.modeset=0 module_blacklist=nouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=pcspkr,snd_pcsp
# Nomodeset
LABEL arch64nomodeset
@ -62,4 +40,4 @@ ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, nomodeset)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nomodeset nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n nomodeset module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes module_blacklist=pcspkr,snd_pcsp