64 changes: 0 additions & 64 deletions channels/serene/airootfs.any/etc/skel/.config/mimeapps.list

This file was deleted.

This file was deleted.

@@ -1,2 +1,2 @@
[user]
pinned=/usr/share/applications/firefox.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/medit.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
pinned=/usr/share/applications/firefox.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
Expand Up @@ -12,7 +12,6 @@ max-tab-name-length=100
mouse-display=false
open-tab-cwd=true
prompt-on-quit=true
quick-open-command-line='medit -t %(file_path)s'
quick-open-enable=true
restore-tabs-notify=true
restore-tabs-startup=false
Expand Down
@@ -1,5 +1,5 @@
[user]
pinned=/usr/share/applications/chromium.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/medit.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
pinned=/usr/share/applications/chromium.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
indicatorStyle=1
forceIconSize=false
iconSize=32
@@ -1,5 +1,5 @@
[user]
pinned=/usr/share/applications/chromium.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/medit.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
pinned=/usr/share/applications/chromium.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
indicatorStyle=1
forceIconSize=false
iconSize=32
@@ -1,5 +1,5 @@
[user]
pinned=/usr/share/applications/firefox.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/medit.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
pinned=/usr/share/applications/firefox.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
indicatorStyle=1
forceIconSize=false
iconSize=32
@@ -1,5 +1,5 @@
[user]
pinned=/usr/share/applications/firefox.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/medit.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
pinned=/usr/share/applications/firefox.desktop;/usr/share/applications/thunar.desktop;/usr/share/applications/thunderbird.desktop;/usr/share/applications/vlc.desktop;/usr/share/applications/xfce4-screenshooter.desktop;/usr/share/applications/xfce4-terminal.desktop;/usr/share/applications/xfce-settings-manager.desktop;
indicatorStyle=1
forceIconSize=false
iconSize=32
4 changes: 4 additions & 0 deletions default.conf
Expand Up @@ -306,6 +306,10 @@ additional_exclude_pkg=()
# This array is not available in the configuration files in the channel.
additional_modules=()


# Module list
exclude_modules=()

# Run with tee command
# Set to "false" to disable logging
# If not false, the log will be saved in the specified path.
Expand Down
135 changes: 75 additions & 60 deletions modules/base/config.i686
Expand Up @@ -9,66 +9,81 @@
# Config files for all i686 channel
#

# この設定ファイルだけで使える変数
UNSETVAR=false
if [[ -z "${AURHELPER-""}" ]]; then
AURHELPER="paru"
UNSETVAR=true
fi

#-- Use trizen --#

#aur_helper_command="trizen"
#aur_helper_package="trizen"
#aur_helper_depends=(
# 'git'
# 'pacutils'
# 'perl'
# 'perl-libwww'
# 'perl-term-ui'
# 'pacman'
# 'perl-json'
# 'perl-data-dump'
# 'perl-lwp-protocol-https'
# 'perl-term-readline-gnu'
# 'highlight'
#)
#aur_helper_args=(
# #--mflags "-AcC,--skippgpcheck"
# --aur
# --noedit
#)
case "$AURHELPER" in
"trizen")
#-- Use trizen --#
aur_helper_command="trizen"
aur_helper_package="trizen"
aur_helper_depends=(
'git'
'pacutils'
'perl'
'perl-libwww'
'perl-term-ui'
'pacman'
'perl-json'
'perl-data-dump'
'perl-lwp-protocol-https'
'perl-term-readline-gnu'
'highlight'
)
aur_helper_args=(
#--mflags "-AcC,--skippgpcheck"
--aur
--noedit
)
;;
"wfa")
#-- Use wfa --#
aur_helper_package="wfa-git"
aur_helper_command="wfa"
aur_helper_depends=('sudo' 'pacman' 'jq' 'python3' 'curl' 'pyalpm' 'python-srcinfo')
aur_helper_args=(
--mflags "-AcC"
--mflags "--skippgpcheck"
--aur
)
;;
"paru")
#-- Use paru --#
aur_helper_package="paru"
aur_helper_command="paru"
aur_helper_depends=("cargo" "asp" "bat")
aur_helper_args=(
--useask
--mflags "-AcC"
--mflags "--skippgpcheck"
--aur
--skipreview
--noupgrademenu
--removemake
)
;;
"pikaur")
#-- Use pikaur --#
aur_helper_package="pikaur"
aur_helper_command="pikaur"
aur_helper_depends=('pyalpm' 'git' 'python-commonmark')
aur_helper_args=(
"--aur"
"--noedit"
"--rebuild"
"--pikaur-debug"
)
;;
*)
echo "module/base/config.i686: Unknown AUR Helper name \"$AURHELPER\"" >&2
exit 1
;;
esac
msg_debug "Use AUR helper $AURHELPER" >&2

#-- Use wfa --#
#aur_helper_package="wfa-git"
#aur_helper_command="wfa"
#aur_helper_depends=('sudo' 'pacman' 'jq' 'python3' 'curl' 'pyalpm' 'python-srcinfo')
#aur_helper_args=(
# --mflags "-AcC"
# --mflags "--skippgpcheck"
# --aur
#)

#-- Use pikaur --#
#aur_helper_package="pikaur"
#aur_helper_command="pikaur"
#aur_helper_depends=("pyalpm" "asp" "python-commonmark")
#aur_helper_args=(
# --aur
# --noedit
# --noconfirm
# --nodiff
# --rebuild
# --mflags="-AcC,--skippgpcheck"
#)

#-- Use paru --#
aur_helper_package="paru"
aur_helper_command="paru"
aur_helper_depends=("cargo" "asp" "bat")
aur_helper_args=(
--useask
--mflags "-AcC"
--mflags "--skippgpcheck"
--aur
# --nocleanmenu
# --nodiffmenu
--skipreview
# --noeditmenu
--noupgrademenu
--removemake
)
[[ "$UNSETVAR" = false ]] || unset AURHELPER
1 change: 1 addition & 0 deletions modules/base/packages.i486/init.i486
Expand Up @@ -11,3 +11,4 @@

base
syslinux
pv
1 change: 1 addition & 0 deletions modules/base/packages.i686/init.i686
Expand Up @@ -11,3 +11,4 @@

base
syslinux
pv
1 change: 1 addition & 0 deletions modules/base/packages.pen4/init.pen4
Expand Up @@ -11,3 +11,4 @@

base
syslinux
pv
1 change: 1 addition & 0 deletions modules/base/packages.x86_64/init.x86_64
Expand Up @@ -11,3 +11,4 @@

base
syslinux
pv
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,3 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin %USERNAME% --noclear %I 38400 linux
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin %USERNAME% - $TERM
Expand Up @@ -9,8 +9,7 @@ After=etc-pacman.d-gnupg.mount
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/pacman-key --init
ExecStart=/usr/bin/pacman-key --populate archlinux
ExecStart=/usr/bin/pacman-key --populate alterlinux
ExecStart=/usr/bin/pacman-key --populate

[Install]
WantedBy=multi-user.target
Expand Up @@ -3,4 +3,4 @@ Description=Pacman mirrorlist update

[Service]
Type=oneshot
ExecStart=/usr/bin/reflector --protocol https --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist
ExecStart=/usr/bin/reflector --protocol https --latest 20 --number 20 --sort rate --save /etc/pacman.d/mirrorlist
11 changes: 2 additions & 9 deletions modules/share/airootfs.any/root/.automated_script.sh
@@ -1,11 +1,4 @@
#!/usr/bin/env bash
#
# Yamada Hayao
# Twitter: @Hayao0819
# Email : hayao@fascode.net
#
# (c) 2019-2021 Fascode Network.
#

script_cmdline ()
{
Expand All @@ -23,7 +16,7 @@ automated_script ()
script="$(script_cmdline)"
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then
curl "${script}" --retry-connrefused -s -o /tmp/startup_script >/dev/null
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null
rt=$?
else
cp "${script}" /tmp/startup_script
Expand All @@ -36,6 +29,6 @@ automated_script ()
fi
}
if [[ "$(tty)" = "/dev/tty1" ]]; then
if [[ $(tty) == "/dev/tty1" ]]; then
automated_script
fi
2 changes: 1 addition & 1 deletion modules/share/packages.i486/hardware.i486
Expand Up @@ -15,7 +15,7 @@
b43-fwcutter
ipw2100-fw
ipw2200-fw

sof-firmware

#-- interface support --#
lsscsi
Expand Down
1 change: 1 addition & 0 deletions modules/share/packages.i486/other.i486
Expand Up @@ -28,6 +28,7 @@ xdg-user-dirs
#-- linux --#
linux-atm
linux-firmware
linux-firmware-marvell


#-- man --#
Expand Down
2 changes: 1 addition & 1 deletion modules/share/packages.i686/hardware.i686
Expand Up @@ -15,7 +15,7 @@
b43-fwcutter
ipw2100-fw
ipw2200-fw

sof-firmware

#-- interface support --#
lsscsi
Expand Down
1 change: 1 addition & 0 deletions modules/share/packages.i686/other.i686
Expand Up @@ -29,6 +29,7 @@ xdg-user-dirs
#-- linux --#
linux-atm
linux-firmware
linux-firmware-marvell


#-- man --#
Expand Down
2 changes: 1 addition & 1 deletion modules/share/packages.pen4/hardware.pen4
Expand Up @@ -15,7 +15,7 @@
b43-fwcutter
ipw2100-fw
ipw2200-fw

sof-firmware

#-- interface support --#
lsscsi
Expand Down
1 change: 1 addition & 0 deletions modules/share/packages.pen4/other.pen4
Expand Up @@ -29,6 +29,7 @@ xdg-user-dirs
#-- linux --#
linux-atm
linux-firmware
linux-firmware-marvell


#-- man --#
Expand Down
2 changes: 1 addition & 1 deletion modules/share/packages.x86_64/hardware.x86_64
Expand Up @@ -15,7 +15,7 @@
b43-fwcutter
ipw2100-fw
ipw2200-fw

sof-firmware

#-- interface support --#
lsscsi
Expand Down
1 change: 1 addition & 0 deletions modules/share/packages.x86_64/other.x86_64
Expand Up @@ -29,6 +29,7 @@ xdg-user-dirs
#-- linux --#
linux-atm
linux-firmware
linux-firmware-marvell


#-- man --#
Expand Down
4 changes: 2 additions & 2 deletions syslinux/archiso_head.cfg
Expand Up @@ -5,7 +5,7 @@
# (c) 2019-2021 Fascode Network.
#

SERIAL 0 38400
SERIAL 0 115200
UI syslinux/vesamenu.c32
MENU TITLE %OS_NAME%
MENU BACKGROUND syslinux/splash.png
Expand All @@ -31,4 +31,4 @@ MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std

MENU CLEAR
MENU CLEAR
189 changes: 103 additions & 86 deletions system/aur.sh
Expand Up @@ -71,70 +71,11 @@ remove() {
}

# user_check <name>
function user_check () {
user_check () {
if [[ ! -v 1 ]]; then return 2; fi
getent passwd "${1}" > /dev/null
}

# Creating a aur user.
if ! user_check "${aur_username}"; then
useradd -m -d "/aurbuild_temp" "${aur_username}"
fi
mkdir -p "/aurbuild_temp"
chmod 700 -R "/aurbuild_temp"
chown "${aur_username}:${aur_username}" -R "/aurbuild_temp"
echo "${aur_username} ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/aurbuild"

# Setup keyring
pacman-key --init
pacman-key --populate

# Un comment the mirror list.
#sed -i "s/#Server/Server/g" "/etc/pacman.d/mirrorlist"

# Set pacman args
pacman_args=("--config" "/etc/alteriso-pacman.conf" "--noconfirm")
if [[ "${pacman_debug}" = true ]]; then
pacman_args+=("--debug")
fi

# Install
if ! pacman -Qq "${aur_helper_package}" 1> /dev/null 2>&1; then
_oldpwd="$(pwd)"

# Install depends
for _pkg in "${aur_helper_depends[@]}"; do
if ! pacman -Qq "${_pkg}" > /dev/null 2>&1 | grep -q "${_pkg}"; then
# --asdepsをつけているのでaur.shで削除される --neededをつけているので明示的にインストールされている場合削除されない
pacman -S --asdeps --needed "${pacman_args[@]}" "${_pkg}"
#remove_list+=("${_pkg}")
fi
done

# Build
sudo -u "${aur_username}" git clone "https://aur.archlinux.org/${aur_helper_package}.git" "/tmp/${aur_helper_package}"
cd "/tmp/${aur_helper_package}"
sudo -u "${aur_username}" makepkg --ignorearch --clean --cleanbuild --force --skippgpcheck --noconfirm --syncdeps

# Install
for _pkg in $(cd "/tmp/${aur_helper_package}"; sudo -u "${aur_username}" makepkg --packagelist); do
pacman "${pacman_args[@]}" -U "${_pkg}"
done

# Remove debtis
cd ..
remove "/tmp/${aur_helper_package}"
cd "${_oldpwd}"
fi

if ! type -p "${aur_helper_command}" > /dev/null; then
echo "Failed to install ${aur_helper_package}"
exit 1
fi

# Update database
pacman -Syy "${pacman_args[@]}"

installpkg(){
yes | sudo -u "${aur_username}" \
"${aur_helper_command}" -S \
Expand All @@ -146,37 +87,113 @@ installpkg(){
}


# Build and install
chmod +s /usr/bin/sudo
for _pkg in "${@}"; do
pacman -Qq "${_pkg}" > /dev/null 2>&1 && continue
installpkg "${_pkg}"
#-- main funtions --#
prepare_env(){
# Creating a aur user.
if ! user_check "${aur_username}"; then
useradd -m -d "/aurbuild_temp" "${aur_username}"
fi
mkdir -p "/aurbuild_temp"
chmod 700 -R "/aurbuild_temp"
chown "${aur_username}:${aur_username}" -R "/aurbuild_temp"
echo "${aur_username} ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/aurbuild"

# Setup keyring
pacman-key --init
pacman-key --populate

# Un comment the mirror list.
#sed -i "s/#Server/Server/g" "/etc/pacman.d/mirrorlist"


if ! pacman -Qq "${_pkg}" > /dev/null 2>&1; then
echo -e "\n[aur.sh] Failed to install ${_pkg}\n"
failedpkg+=("${_pkg}")
# Set pacman args
pacman_args=("--config" "/etc/alteriso-pacman.conf" "--noconfirm")
if [[ "${pacman_debug}" = true ]]; then
pacman_args+=("--debug")
fi
done
}

# Reinstall failed package
for _pkg in "${failedpkg[@]}"; do
installpkg "${_pkg}"
if ! pacman -Qq "${_pkg}" > /dev/null 2>&1; then
echo -e "\n[aur.sh] Failed to install ${_pkg}\n"
install_aur_helper(){
# Install
if ! pacman -Qq "${aur_helper_package}" 1> /dev/null 2>&1; then
_oldpwd="$(pwd)"

# Install depends
for _pkg in "${aur_helper_depends[@]}"; do
if ! pacman -Qq "${_pkg}" > /dev/null 2>&1 | grep -q "${_pkg}"; then
# --asdepsをつけているのでaur.shで削除される --neededをつけているので明示的にインストールされている場合削除されない
pacman -S --asdeps --needed "${pacman_args[@]}" "${_pkg}"
#remove_list+=("${_pkg}")
fi
done

# Build
sudo -u "${aur_username}" git clone "https://aur.archlinux.org/${aur_helper_package}.git" "/tmp/${aur_helper_package}"
cd "/tmp/${aur_helper_package}"
sudo -u "${aur_username}" makepkg --ignorearch --clean --cleanbuild --force --skippgpcheck --noconfirm --syncdeps

# Install
for _pkg in $(cd "/tmp/${aur_helper_package}"; sudo -u "${aur_username}" makepkg --packagelist); do
pacman "${pacman_args[@]}" -U "${_pkg}"
done

# Remove debtis
cd ..
remove "/tmp/${aur_helper_package}"
cd "${_oldpwd}"
fi

if ! type -p "${aur_helper_command}" > /dev/null; then
echo "Failed to install ${aur_helper_package}"
exit 1
fi
done
}

install_aur_pkgs(){
# Update database
pacman -Syy "${pacman_args[@]}"

# Build and install
chmod +s /usr/bin/sudo
for _pkg in "${@}"; do
pacman -Qq "${_pkg}" > /dev/null 2>&1 && continue
installpkg "${_pkg}"

if ! pacman -Qq "${_pkg}" > /dev/null 2>&1; then
echo -e "\n[aur.sh] Failed to install ${_pkg}\n"
failedpkg+=("${_pkg}")
fi
done

# Reinstall failed package
for _pkg in "${failedpkg[@]}"; do
installpkg "${_pkg}"
if ! pacman -Qq "${_pkg}" > /dev/null 2>&1; then
echo -e "\n[aur.sh] Failed to install ${_pkg}\n"
exit 1
fi
done
}

cleanup(){
# Remove packages
readarray -t -O "${#remove_list[@]}" remove_list < <(pacman -Qttdq)
(( "${#remove_list[@]}" != 0 )) && pacman -Rsnc "${remove_list[@]}" "${pacman_args[@]}"

# Clean up
"${aur_helper_command}" -Sccc "${pacman_args[@]}" || true

# remove user and file
userdel "${aur_username}"
remove /aurbuild_temp
remove /etc/sudoers.d/aurbuild
remove "/etc/alteriso-pacman.conf"
remove "/var/cache/pacman/pkg/"
}

# Remove packages
readarray -t -O "${#remove_list[@]}" remove_list < <(pacman -Qttdq)
(( "${#remove_list[@]}" != 0 )) && pacman -Rsnc "${remove_list[@]}" "${pacman_args[@]}"

# Clean up
"${aur_helper_command}" -Sccc "${pacman_args[@]}"
prepare_env
install_aur_helper
install_aur_pkgs "$@"
cleanup

# remove user and file
userdel "${aur_username}"
remove /aurbuild_temp
remove /etc/sudoers.d/aurbuild
remove "/etc/alteriso-pacman.conf"
remove "/var/cache/pacman/pkg/"
66 changes: 20 additions & 46 deletions system/initcpio/hooks/archiso
Expand Up @@ -13,7 +13,6 @@ _mnt_dmsnapshot() {
local ro_dev ro_dev_size rw_dev

ro_dev="$(losetup --find --show --read-only -- "${img}")"
printf '%s\n' "${ro_dev}" >>/run/archiso/used_block_devices
ro_dev_size="$(blockdev --getsz "${ro_dev}")"

if [ "${cow_persistent}" = "P" ]; then
Expand All @@ -33,7 +32,6 @@ _mnt_dmsnapshot() {
fi

rw_dev="$(losetup --find --show "/run/archiso/cowspace/${cow_directory}/${img_name}.cow")"
printf '%s\n' "${rw_dev}" >>/run/archiso/used_block_devices

dmsetup create "${dm_snap_name}" --table \
"0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}"
Expand All @@ -43,7 +41,6 @@ _mnt_dmsnapshot() {
fi

_mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w" "defaults"
readlink -f "/dev/mapper/${dm_snap_name}" >>/run/archiso/used_block_devices
}

# args: source, newroot, mountpoint
Expand All @@ -58,16 +55,16 @@ _mnt_overlayfs() {
}

# args: /path/to/image_file, mountpoint
_mnt_sfs() {
_mnt_fs() {
local img="${1}"
local mnt="${2}"
local img_fullname="${img##*/}"
local sfs_dev
local img_loopdev

# shellcheck disable=SC2154
# defined via initcpio's parse_cmdline()
if [ "${copytoram}" = "y" ]; then
msg -n ":: Copying squashfs image to RAM..."
msg -n ":: Copying rootfs image to RAM..."

# in case we have pv use it to display copy progress feedback otherwise
# fallback to using plain cp
Expand All @@ -88,32 +85,8 @@ _mnt_sfs() {
img="/run/archiso/copytoram/${img_fullname}"
msg "done."
fi
sfs_dev="$(losetup --find --show --read-only -- "${img}")"
echo "${sfs_dev}" >>/run/archiso/used_block_devices
_mnt_dev "${sfs_dev}" "${mnt}" "-r" "defaults"
}

# args: /path/to/image_file, mountpoint
_mnt_erofs() {
local img="${1}"
local mnt="${2}"
local img_fullname="${img##*/}"
local erofs_dev

# shellcheck disable=SC2154
# defined via initcpio's parse_cmdline()
if [ "${copytoram}" = "y" ]; then
msg -n ":: Copying EROFS image to RAM..."
if ! cp -- "${img}" "/run/archiso/copytoram/${img_fullname}"; then
echo "ERROR: while copy '${img}' to '/run/archiso/copytoram/${img_fullname}'"
launch_interactive_shell
fi
img="/run/archiso/copytoram/${img_fullname}"
msg "done."
fi
erofs_dev="$(losetup --find --show --read-only -- "${img}")"
echo "${erofs_dev}" >>/run/archiso/used_block_devices
_mnt_dev "${erofs_dev}" "${mnt}" "-r" "defaults" "erofs"
img_loopdev="$(losetup --find --show --read-only -- "${img}")"
_mnt_dev "${img_loopdev}" "${mnt}" "-r" "defaults"
}

# args: device, mountpoint, flags, opts
Expand All @@ -122,7 +95,6 @@ _mnt_dev() {
local mnt="${2}"
local flg="${3}"
local opts="${4}"
local fstype="${5:-auto}"

mkdir -p "${mnt}"

Expand All @@ -135,7 +107,7 @@ _mnt_dev() {
launch_interactive_shell
done

if mount -t "${fstype}" -o "${opts}" "${flg}" "${dev}" "${mnt}"; then
if mount -o "${opts}" "${flg}" "${dev}" "${mnt}"; then
msg ":: Device '${dev}' mounted successfully."
else
echo "ERROR; Failed to mount '${dev}'"
Expand All @@ -158,7 +130,7 @@ _verify_signature() {
local _status
local sigfile="${1}"
cd "/run/archiso/bootmnt/${archisobasedir}/${arch}" || exit 1
gpg --homedir /gpg --status-fd 1 --verify "${sigfile}" 2>/dev/null | grep -qE '^\[GNUPG:\] GOODSIG'
gpg --homedir /gpg --status-fd 1 --verify "${sigfile}" 2>/dev/null | grep -E '^\[GNUPG:\] GOODSIG'
_status=$?
cd -- "${OLDPWD}" || exit 1
return ${_status}
Expand Down Expand Up @@ -197,22 +169,19 @@ run_hook() {
# args: /path/to/newroot
archiso_mount_handler() {
local newroot="${1}"
local sigfile
local sigfile fs_img

if ! mountpoint -q "/run/archiso/bootmnt"; then
_mnt_dev "${archisodevice}" "/run/archiso/bootmnt" "-r" "defaults"
if [ "${copytoram}" != "y" ]; then
readlink -f "${archisodevice}" >>/run/archiso/used_block_devices
fi
fi

# shellcheck disable=SC2154
# defined via initcpio's parse_cmdline()
if [ "${checksum}" = "y" ]; then
if [ -f "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sha512" ]; then
msg -n ":: Self-test requested, please wait..."
msg ":: Self-test requested, please wait..."
if _verify_checksum; then
msg "done. Checksum is OK, continue booting."
msg "Checksum is OK, continue booting."
else
echo "ERROR: one or more files are corrupted"
echo "see /tmp/checksum.log for details"
Expand All @@ -233,9 +202,9 @@ archiso_mount_handler() {
sigfile="airootfs.erofs.sig"
fi
if [ -n "${sigfile}" ]; then
msg -n ":: Signature verification requested, please wait..."
msg ":: Signature verification requested, please wait..."
if _verify_signature "${sigfile}"; then
msg "done. Signature is OK, continue booting."
msg "Signature is OK, continue booting."
else
echo "ERROR: one or more files are corrupted"
launch_interactive_shell
Expand All @@ -253,8 +222,9 @@ archiso_mount_handler() {
fi

if [ -n "${cow_device}" ]; then
# Mount cow_device read-only at first and remount it read-write right after. This prevents errors when the
# device is already mounted read-only somewhere else (e.g. if cow_device and archisodevice are the same).
_mnt_dev "${cow_device}" "/run/archiso/cowspace" "-r" "${cow_flags}"
readlink -f "${cow_device}" >>/run/archiso/used_block_devices
mount -o remount,rw "/run/archiso/cowspace"
else
msg ":: Mounting /run/archiso/cowspace (tmpfs) filesystem, size=${cow_spacesize}..."
Expand All @@ -265,10 +235,14 @@ archiso_mount_handler() {
chmod 0700 "/run/archiso/cowspace/${cow_directory}"

if [ -f "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sfs" ]; then
_mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sfs" "/run/archiso/airootfs"
fs_img="/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sfs"
elif [ -f "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.erofs" ]; then
_mnt_erofs "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.erofs" "/run/archiso/airootfs"
fs_img="/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.erofs"
else
echo "ERROR: no root file system image found"
launch_interactive_shell
fi
_mnt_fs "${fs_img}" "/run/archiso/airootfs"
if [ -f "/run/archiso/airootfs/airootfs.img" ]; then
_mnt_dmsnapshot "/run/archiso/airootfs/airootfs.img" "${newroot}" "/"
else
Expand Down
7 changes: 2 additions & 5 deletions system/initcpio/hooks/archiso_loop_mnt
Expand Up @@ -21,11 +21,6 @@ archiso_loop_mount_handler() {

msg ":: Setup a loop device from ${img_loop} located at device ${img_dev}"
_mnt_dev "${img_dev}" "/run/archiso/img_dev" "-r" "${img_flags}"
# shellcheck disable=SC2154
# defined via initcpio's parse_cmdline()
if [ "${copytoram}" != "y" ]; then
readlink -f "${img_dev}" >>/run/archiso/used_block_devices
fi

if _dev_loop=$(losetup --find --show --read-only "/run/archiso/img_dev/${img_loop}"); then
export archisodevice="${_dev_loop}"
Expand All @@ -36,6 +31,8 @@ archiso_loop_mount_handler() {

archiso_mount_handler "${newroot}"

# shellcheck disable=SC2154
# defined via initcpio's parse_cmdline()
if [ "${copytoram}" = "y" ]; then
losetup -d "${_dev_loop}" 2>/dev/null
umount /run/archiso/img_dev
Expand Down
4 changes: 3 additions & 1 deletion system/initcpio/hooks/archiso_pxe_common
Expand Up @@ -32,7 +32,9 @@ run_hook() {
fi

# setup network and save some values
if ! ipconfig -t 20 "ip=${ip}"; then
# Timeout is set to 60 by default to avoid issues with STP default values
# (15 second listening, 15 seconds learning and 20 seconds for max age)
if ! ipconfig -t 60 "ip=${ip}"; then
echo "ERROR; Failed to configure network"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
Expand Down
42 changes: 16 additions & 26 deletions system/pacman-x86_64.conf
Expand Up @@ -29,7 +29,7 @@ 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
Architecture = x86_64

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
Expand Down Expand Up @@ -98,40 +98,32 @@ Server = https://osdn.dl.osdn.net/storage/g/s/se/serene/repo/$repo/$arch
#Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch

[core]
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.jp/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch

[extra]
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.jp/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

[extra]
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

#[community-testing]
#Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
#Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
#Server = http://mirror.archlinux.jp/$repo/os/$arch
#Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
#Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
#Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
#Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch
#Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
#Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
#Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

[community]
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.jp/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
Expand All @@ -146,13 +138,11 @@ Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch
#Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch

[multilib]
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.jp/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://jpn.mirror.pkgbuild.com/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

# This is Yamada Hayao's personal repository.
# It was used early but is now disabled.
Expand Down