myarchlinux_builder/archiso_make.sh
2021-07-10 14:30:21 +00:00

269 lines
5.0 KiB
Bash

#!/bin/bash
path=`pwd`
echo "Updating packages"
pacman -Syu --noconfirm archiso
echo "Deleting old archiso"
rm -rf $path/archiso
rm -rf $path/archiso_work
echo "Copying new archiso"
cp -r /usr/share/archiso/configs/releng/ $path/archiso
echo "Pasting pacman.conf"
cat > $path/archiso/pacman.conf << EOF
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
ILoveCandy
Color
#TotalDownload
# We cannot check disk space from within a chroot environment
#CheckSpace
#VerbosePkgLists
ParallelDownloads = 3
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# 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
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[multilib]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
EOF
echo "Pasting packages.x86_64"
cat > $path/archiso/packages.x86_64 << EOF
alsa-utils
amd-ucode
arch-install-scripts
b43-fwcutter
base
bind-tools
brltty
broadcom-wl
btrfs-progs
clonezilla
crda
darkhttpd
ddrescue
dhclient
dhcpcd
diffutils
dmraid
dnsmasq
dosfstools
edk2-shell
efibootmgr
espeakup
ethtool
exfatprogs
f2fs-tools
fatresize
fsarchiver
gnu-netcat
gpart
gpm
gptfdisk
grml-zsh-config
hdparm
intel-ucode
ipw2100-fw
ipw2200-fw
irssi
iwd
jfsutils
linux
linux-atm
linux-firmware
livecd-sounds
lsscsi
lvm2
lynx
man-db
man-pages
mc
mdadm
memtest86+
mkinitcpio
mkinitcpio-archiso
mkinitcpio-nfs-utils
mtools
nano
nbd
ndisc6
nfs-utils
nilfs-utils
nmap
ntfs-3g
nvme-cli
openconnect
openssh
openvpn
partclone
parted
partimage
ppp
pptpclient
reflector
reiserfsprogs
rp-pppoe
rsync
sdparm
sg3_utils
smartmontools
squashfs-tools
sudo
syslinux
systemd-resolvconf
tcpdump
terminus-font
testdisk
tmux
udftools
usb_modeswitch
usbutils
vim
vpnc
wireless-regdb
wireless_tools
wpa_supplicant
wvdial
xfsprogs
xl2tpd
zsh
vlc
code
chromium
mpv
libreoffice-fresh
vim
networkmanager
nmap
xorg-drivers
xfce4
xorg-server
lightdm
lightdm-gtk-greeter
noto-fonts
thunar
pulseaudio
libcanberra
libcanberra-pulse
htop
bash-completion
gparted
f2fs-tools
mousepad
ristretto
atril
galculator
EOF
echo "Pasting postinstall commands"
cat >> $path/archiso/airootfs$path/customize_airootfs.sh << _EOF_
systemctl enable lightdm NetworkManager
systemctl set-default graphical.target
useradd -m losted
passwd losted <<EOF
0000
0000
EOF
echo "losted ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sed -i '/^#Color/s/^#//' /etc/pacman.conf #enable colors in pacman
_EOF_
echo "Running mkarchiso"
mkdir $path/archiso_out $path/archiso_work
mkarchiso -v -w $path/archiso_work -o $path/archiso_out $path/archiso
echo "Removing workdir"
rm -rf $path/archiso_work
echo "Done"