Updated ISO Profile

This commit is contained in:
adi1090x 2023-07-05 16:08:42 +05:30
parent b6de5a090d
commit 8b611cf654
19 changed files with 149 additions and 80 deletions

View File

@ -1,5 +1,26 @@
<h2 align="center">Archcraft : Changelogs</h2> <h2 align="center">Archcraft : Changelogs</h2>
### July 2023
- Updated ISO profile with latest archiso
- Latest base with new packages
- Fixed `xfce-power-manager` issue (not locking the screen on lid close)
- Fixed sddm not saving the last used session issue
- Added a calculator app
- **`Openbox WM`**
- Added `tint2` as alternate panel (in all themes)
- Ability to switch between panels
- Added `bluetooth` module on both panels
- Added a rofi `bluetooth` applet
- Fixed window resizing issue via each side of window
- etc
- **`BSPWM`**
- Added `bluetooth` module on polybar (in all themes)
- Added a rofi `bluetooth` applet
- etc
- Many small bugs fixed.
#
### April 2023 ### April 2023
**`Update (1st May): `** **`Update (1st May): `**
- Fixed `pacman-init` issue in last ISO. - Fixed `pacman-init` issue in last ISO.

View File

@ -0,0 +1,8 @@
<!-- Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com> -->
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-session" version="1.0">
<property name="general" type="empty">
<property name="LockCommand" type="string" value="xflock4"/>
</property>
</channel>

View File

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

View File

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

@ -16,7 +16,13 @@ automated_script ()
script="$(script_cmdline)" script="$(script_cmdline)"
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
if [[ "${script}" =~ ^((http|https|ftp)://) ]]; 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=$? rt=$?
else else
cp "${script}" /tmp/startup_script cp "${script}" /tmp/startup_script
@ -24,6 +30,9 @@ automated_script ()
fi fi
if [[ ${rt} -eq 0 ]]; then if [[ ${rt} -eq 0 ]]; then
chmod +x /tmp/startup_script 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 /tmp/startup_script
fi fi
fi fi

View File

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

View File

@ -4,4 +4,4 @@
## Script to Lock the session by xfce-power-manager ## Script to Lock the session by xfce-power-manager
betterlockscreen --lock betterlockscreen --lock &

View File

@ -4,4 +4,4 @@ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.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 module_blacklist=pcspkr,snd_pcsp 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

@ -4,4 +4,4 @@ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.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 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 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

@ -4,4 +4,4 @@ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-nvidia.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-nvidia.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 nvidia_drm.modeset=1 nouveau.modeset=0 module_blacklist=nouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes module_blacklist=pcspkr,snd_pcsp 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

@ -4,4 +4,4 @@ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.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 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 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

@ -40,43 +40,41 @@ timeout_style=menu
# Menu entries # Menu entries
menuentry "Boot Archcraft (x86_64, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' { menuentry "Boot Archcraft (x86_64, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' {
set gfxpayload=keep set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL% 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
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 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 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' { menuentry "Boot Archcraft (x86_64, UEFI, open source)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftos' {
set gfxpayload=keep set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL% 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
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 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 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' { menuentry "Boot Archcraft (x86_64, UEFI, nvidia)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftpn' {
set gfxpayload=keep set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL% 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
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 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 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' { menuentry "Boot Archcraft (x86_64, UEFI, nomodeset)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftnm' {
set gfxpayload=keep set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL% 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
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 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 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_platform}" == "efi" ]; then
if [ "${grub_cpu}" == "x86_64" ]; then if [ "${grub_cpu}" == "x86_64" ]; then
menuentry "UEFI Shell" --class recovery { menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class memtest --class gnu --class tool {
set gfxpayload=800x600,1024x768
linux /boot/memtest86+/memtest.efi
}
menuentry "UEFI Shell" --class recovery --class efi {
insmod chain insmod chain
search --no-floppy --set=root --label %ARCHISO_LABEL%
chainloader /shellx64.efi chainloader /shellx64.efi
} }
elif [ "${grub_cpu}" == "i386" ]; then elif [ "${grub_cpu}" == "i386" ]; then
menuentry "UEFI Shell" --class recovery { menuentry "UEFI Shell" --class recovery --class efi {
insmod chain insmod chain
search --no-floppy --set=root --label %ARCHISO_LABEL%
chainloader /shellia32.efi chainloader /shellia32.efi
} }
fi fi

View File

@ -29,6 +29,7 @@ gpg_key=""
gpg_sender="" gpg_sender=""
iso_name="" iso_name=""
iso_label="" iso_label=""
iso_uuid=""
iso_publisher="" iso_publisher=""
iso_application="" iso_application=""
iso_version="" iso_version=""
@ -38,6 +39,7 @@ pacman_conf=""
packages="" packages=""
bootstrap_packages="" bootstrap_packages=""
pacstrap_dir="" pacstrap_dir=""
declare -i rm_work_dir=0
buildmodes=() buildmodes=()
bootmodes=() bootmodes=()
airootfs_image_type="" airootfs_image_type=""
@ -86,7 +88,7 @@ usage: ${app_name} [options] <profile_dir>
Default: '${iso_application}' Default: '${iso_application}'
-C <file> pacman configuration file. -C <file> pacman configuration file.
Default: '${pacman_conf}' 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}' Default: '${install_dir}'
NOTE: Max 8 characters, use only [a-z0-9] NOTE: Max 8 characters, use only [a-z0-9]
-L <label> Set the ISO volume label -L <label> Set the ISO volume label
@ -109,6 +111,7 @@ usage: ${app_name} [options] <profile_dir>
Default: '${out_dir}' Default: '${out_dir}'
-p [package ..] Package(s) to install. -p [package ..] Package(s) to install.
Multiple packages are provided as quoted, space delimited list. Multiple packages are provided as quoted, space delimited list.
-r Delete the working directory at the end.
-v Enable verbose output -v Enable verbose output
-w <work_dir> Set the working directory -w <work_dir> Set the working directory
Default: '${work_dir}' Default: '${work_dir}'
@ -395,7 +398,7 @@ _make_customize_airootfs() {
if [[ ! -d "${pacstrap_dir}${passwd[5]}" ]]; then if [[ ! -d "${pacstrap_dir}${passwd[5]}" ]]; then
install -d -m 0750 -o "${passwd[2]}" -g "${passwd[3]}" -- "${pacstrap_dir}${passwd[5]}" install -d -m 0750 -o "${passwd[2]}" -g "${passwd[3]}" -- "${pacstrap_dir}${passwd[5]}"
fi 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]}" chmod -f 0750 -- "${pacstrap_dir}${passwd[5]}"
chown -hR -- "${passwd[2]}:${passwd[3]}" "${pacstrap_dir}${passwd[5]}" chown -hR -- "${passwd[2]}:${passwd[3]}" "${pacstrap_dir}${passwd[5]}"
else else
@ -463,6 +466,7 @@ _make_bootmode_bios.syslinux.mbr() {
install -d -m 0755 -- "${isofs_dir}/boot/syslinux" install -d -m 0755 -- "${isofs_dir}/boot/syslinux"
for _cfg in "${profile}/syslinux/"*.cfg; do for _cfg in "${profile}/syslinux/"*.cfg; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g; sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%ARCHISO_UUID%|${iso_uuid}|g;
s|%INSTALL_DIR%|${install_dir}|g; s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \ s|%ARCH%|${arch}|g" \
"${_cfg}" > "${isofs_dir}/boot/syslinux/${_cfg##*/}" "${_cfg}" > "${isofs_dir}/boot/syslinux/${_cfg##*/}"
@ -570,26 +574,25 @@ _make_common_bootmode_grub_copy_to_isofs() {
files_to_copy+=("${profile}/grub/"!(*.cfg)) files_to_copy+=("${profile}/grub/"!(*.cfg))
fi fi
install -d -m 0755 -- "${isofs_dir}/boot/grub" 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 # Prepare GRUB configuration files
_make_common_bootmode_grub_cfg(){ _make_common_bootmode_grub_cfg(){
local _cfg archiso_uuid search_filename local _cfg search_filename
install -d -- "${work_dir}/grub" 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 # 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 # 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. # 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" : > "${work_dir}/grub/${iso_uuid}.uuid"
search_filename="/boot/grub/${archiso_uuid}.uuid" search_filename="/boot/grub/${iso_uuid}.uuid"
# Fill GRUB configuration files # Fill GRUB configuration files
for _cfg in "${profile}/grub/"*'.cfg'; do for _cfg in "${profile}/grub/"*'.cfg'; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g; sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%ARCHISO_UUID%|${iso_uuid}|g;
s|%INSTALL_DIR%|${install_dir}|g; s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g; s|%ARCH%|${arch}|g;
s|%ARCHISO_SEARCH_FILENAME%|${search_filename}|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/ mcopy -i "${efibootimg}" "${profile}/efiboot/loader/loader.conf" ::/loader/
for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g; sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%ARCHISO_UUID%|${iso_uuid}|g;
s|%INSTALL_DIR%|${install_dir}|g; s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \ s|%ARCH%|${arch}|g" \
"${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}" "${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}"
@ -1673,10 +1677,15 @@ _set_overrides() {
elif [[ -z "$quiet" ]]; then elif [[ -z "$quiet" ]]; then
quiet="y" quiet="y"
fi fi
if [[ -v override_rm_work_dir ]]; then
rm_work_dir="$override_rm_work_dir"
fi
# Set variables that do not have overrides # Set variables that do not have overrides
[[ -n "$airootfs_image_type" ]] || airootfs_image_type="squashfs" [[ -n "$airootfs_image_type" ]] || airootfs_image_type="squashfs"
[[ -n "$iso_name" ]] || iso_name="${app_name}" [[ -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() { _export_gpg_publickey() {
@ -1743,6 +1752,16 @@ _make_pkglist() {
_msg_info "Done!" _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 the base for an ISO and/or a netboot target
_build_iso_base() { _build_iso_base() {
local run_once_mode="base" local run_once_mode="base"
@ -1754,13 +1773,9 @@ _build_iso_base() {
isofs_dir="${work_dir}/iso" isofs_dir="${work_dir}/iso"
# Create working directory # Create working directory
[[ -d "${work_dir}" ]] || install -d -- "${work_dir}" _run_once _make_work_dir
# Write build date to file or if the file exists, read it from there # Write build date to file if it does not exist already
if [[ -e "${work_dir}/build_date" ]]; then [[ -e "${work_dir}/build_date" ]] || printf '%s\n' "$SOURCE_DATE_EPOCH" > "${work_dir}/build_date"
SOURCE_DATE_EPOCH="$(<"${work_dir}/build_date")"
else
printf '%s\n' "$SOURCE_DATE_EPOCH" > "${work_dir}/build_date"
fi
[[ "${quiet}" == "y" ]] || _show_config [[ "${quiet}" == "y" ]] || _show_config
_run_once _make_pacman_conf _run_once _make_pacman_conf
@ -1837,9 +1852,14 @@ _build() {
for buildmode in "${buildmodes[@]}"; do for buildmode in "${buildmodes[@]}"; do
_run_once "_build_buildmode_${buildmode}" _run_once "_build_buildmode_${buildmode}"
done 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 case "${arg}" in
p) read -r -a override_pkg_list <<< "${OPTARG}" ;; p) read -r -a override_pkg_list <<< "${OPTARG}" ;;
C) override_pacman_conf="${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_key="${OPTARG}" ;;
G) override_gpg_sender="${OPTARG}" ;; G) override_gpg_sender="${OPTARG}" ;;
v) override_quiet="n" ;; v) override_quiet="n" ;;
r) declare -i override_rm_work_dir=1 ;;
h|?) _usage 0 ;; h|?) _usage 0 ;;
*) *)
_msg_error "Invalid argument '${arg}'" 0 _msg_error "Invalid argument '${arg}'" 0
@ -1876,6 +1897,13 @@ fi
# get the absolute path representation of the first non-option argument # get the absolute path representation of the first non-option argument
profile="$(realpath -- "${1}")" 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 _read_profile
_set_overrides _set_overrides
_validate_options _validate_options

View File

@ -29,6 +29,7 @@ ethtool
exfatprogs exfatprogs
f2fs-tools f2fs-tools
fatresize fatresize
foot-terminfo
fsarchiver fsarchiver
gnu-netcat gnu-netcat
gpart gpart
@ -61,6 +62,7 @@ man-pages
mc mc
mdadm mdadm
#memtest86+ #memtest86+
#memtest86+-efi
mkinitcpio mkinitcpio
mkinitcpio-archiso mkinitcpio-archiso
mkinitcpio-nfs-utils mkinitcpio-nfs-utils
@ -114,6 +116,7 @@ usbutils
vim vim
#virtualbox-guest-utils-nox #virtualbox-guest-utils-nox
vpnc vpnc
wezterm-terminfo
wireless-regdb wireless-regdb
wireless_tools wireless_tools
wpa_supplicant wpa_supplicant
@ -267,8 +270,10 @@ acpi
arandr arandr
dialog dialog
dunst dunst
galculator
gparted gparted
gtk-engine-murrine gtk-engine-murrine
gnome-keyring
inetutils inetutils
inotify-tools inotify-tools
jq jq

View File

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

View File

@ -2,10 +2,10 @@
# shellcheck disable=SC2034 # shellcheck disable=SC2034
iso_name="archcraft" iso_name="archcraft"
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_publisher="Aditya Shakya <http://www.github.com/adi1090x>"
iso_application="Archcraft Live/Installation/Rescue CD" 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" install_dir="arch"
buildmodes=('iso') buildmodes=('iso')
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'

View File

@ -4,9 +4,9 @@ Boot Archcraft install medium using NBD.
It allows you to install Archcraft or perform system maintenance. It allows you to install Archcraft or perform system maintenance.
ENDTEXT ENDTEXT
MENU LABEL Boot Archcraft (x86_64, NBD) MENU LABEL Boot Archcraft (x86_64, NBD)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 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 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 APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y
SYSAPPEND 3 SYSAPPEND 3
LABEL arch64_nfs LABEL arch64_nfs
@ -15,9 +15,9 @@ Boot Archcraft install medium using NFS.
It allows you to install Archcraft or perform system maintenance. It allows you to install Archcraft or perform system maintenance.
ENDTEXT ENDTEXT
MENU LABEL Boot Archcraft (x86_64, NFS) MENU LABEL Boot Archcraft (x86_64, NFS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 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 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 APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y
SYSAPPEND 3 SYSAPPEND 3
LABEL arch64_http LABEL arch64_http
@ -26,7 +26,7 @@ Boot Archcraft install medium using HTTP.
It allows you to install Archcraft or perform system maintenance. It allows you to install Archcraft or perform system maintenance.
ENDTEXT ENDTEXT
MENU LABEL Boot Archcraft (x86_64, HTTP) MENU LABEL Boot Archcraft (x86_64, HTTP)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 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 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 APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y
SYSAPPEND 3 SYSAPPEND 3

View File

@ -7,7 +7,7 @@ ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS) MENU LABEL Boot Archcraft (x86_64, BIOS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 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 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 module_blacklist=pcspkr,snd_pcsp 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 # Open Source
LABEL arch64free LABEL arch64free
@ -18,7 +18,7 @@ ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, open source) MENU LABEL Boot Archcraft (x86_64, BIOS, open source)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 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 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 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 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 # NVIDIA Proprietary
LABEL arch64nonfree LABEL arch64nonfree
@ -29,7 +29,7 @@ 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 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-nvidia.img 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% archisolabel=%ARCHISO_LABEL% 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 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 # Nomodeset
LABEL arch64nomodeset LABEL arch64nomodeset
@ -40,4 +40,4 @@ ENDTEXT
MENU LABEL Boot Archcraft (x86_64, BIOS, nomodeset) MENU LABEL Boot Archcraft (x86_64, BIOS, nomodeset)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux 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 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 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 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