summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xliveusb/build.sh16
-rw-r--r--liveusb/packages.x86_641
-rw-r--r--liveusb/pacman.conf92
3 files changed, 108 insertions, 1 deletions
diff --git a/liveusb/build.sh b/liveusb/build.sh
index e0663a0..be18c69 100755
--- a/liveusb/build.sh
+++ b/liveusb/build.sh
@@ -10,6 +10,7 @@ arch=$(uname -m)
work_dir=work
out_dir=out
+pacman_conf=${work_dir}/pacman.conf
script_path=$(readlink -f ${0%/*})
# Helper function to run make_*() only one time per architecture.
@@ -20,9 +21,21 @@ 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 > ${pacman_conf}
+}
+
# Base installation (airootfs)
make_basefs() {
- mkarchiso -v -w "${work_dir}" -D "${install_dir}" init
+ mkarchiso -v -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" init
+}
+
+# Additional packages (airootfs)
+make_packages() {
+ mkarchiso -v -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.x86_64)" install
}
# Copy mkinitcpio archiso hooks and build initramfs (airootfs)
@@ -73,6 +86,7 @@ make_iso() {
}
run_once make_basefs
+run_once make_packages
run_once make_setup_mkinitcpio
run_once make_boot
run_once make_syslinux
diff --git a/liveusb/packages.x86_64 b/liveusb/packages.x86_64
new file mode 100644
index 0000000..7b445fb
--- /dev/null
+++ b/liveusb/packages.x86_64
@@ -0,0 +1 @@
+figlet \ No newline at end of file
diff --git a/liveusb/pacman.conf b/liveusb/pacman.conf
new file mode 100644
index 0000000..45fe03d
--- /dev/null
+++ b/liveusb/pacman.conf
@@ -0,0 +1,92 @@
+#
+# /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/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -C - -f %u > %o
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+#UseDelta = 0.7
+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
+
+# 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
+