summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornl6720 <nl6720@gmail.com>2020-07-17 11:35:55 +0300
committernl6720 <nl6720@gmail.com>2020-07-28 11:47:42 +0300
commitc54a41fb3db67e9ec1c614476193e905e2ebafdc (patch)
tree9b9d5fabf2be9b66363ca6603eb344fc8127b130
parent6689537563b5115f0fbd9088fe8ff8c91e5c6b14 (diff)
downloadarchiso32-c54a41fb3db67e9ec1c614476193e905e2ebafdc.tar.xz
Fix baseline profile
Install linux and mkinitcpio packages. Remove root user's password. Fixes https://bugs.archlinux.org/task/64236 .
-rwxr-xr-xconfigs/baseline/build.sh16
-rw-r--r--configs/baseline/packages.x86_642
-rw-r--r--configs/baseline/pacman.conf100
3 files changed, 118 insertions, 0 deletions
diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh
index d283408..2258772 100755
--- a/configs/baseline/build.sh
+++ b/configs/baseline/build.sh
@@ -22,11 +22,25 @@ run_once() {
fi
}
+# Setup custom pacman.conf with current cache directories.
+make_pacman_conf() {
+ local _cache_dirs
+ _cache_dirs=("$(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')")
+ sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n "${_cache_dirs[@]}")|g" \
+ "${script_path}/pacman.conf" > "${work_dir}/pacman.conf"
+}
+
# Base installation (airootfs)
make_basefs() {
mkarchiso -v -w "${work_dir}" -D "${install_dir}" init
}
+# Packages (airootfs)
+make_packages() {
+ mkarchiso -v -w "${work_dir}" -C "${work_dir}/pacman.conf" -D "${install_dir}" \
+ -p "$(grep -h -v '^#' "${script_path}/packages.x86_64"| sed ':a;N;$!ba;s/\n/ /g')" install
+}
+
# Copy mkinitcpio archiso hooks and build initramfs (airootfs)
make_setup_mkinitcpio() {
mkdir -p "${work_dir}/airootfs/etc/initcpio/hooks"
@@ -88,7 +102,9 @@ make_iso() {
"${iso_name}-${iso_version}-${arch}.iso"
}
+run_once make_pacman_conf
run_once make_basefs
+run_once make_packages
run_once make_setup_mkinitcpio
run_once make_custom_airootfs
run_once make_boot
diff --git a/configs/baseline/packages.x86_64 b/configs/baseline/packages.x86_64
new file mode 100644
index 0000000..ecbebe4
--- /dev/null
+++ b/configs/baseline/packages.x86_64
@@ -0,0 +1,2 @@
+linux
+mkinitcpio
diff --git a/configs/baseline/pacman.conf b/configs/baseline/pacman.conf
new file mode 100644
index 0000000..bbca42f
--- /dev/null
+++ b/configs/baseline/pacman.conf
@@ -0,0 +1,100 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# 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
+#Color
+#TotalDownload
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+
+# 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