fix locales in containers and tarball

This commit is contained in:
Tobias Powalowski 2022-02-23 09:04:55 +01:00
parent 8508963400
commit 6f081af2d0
5 changed files with 41 additions and 41 deletions

View file

@ -12,11 +12,11 @@ echo "Starting container creation ..."
if [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then
_prepare_pacman "${1}" || exit 1
_install_base_packages "${1}" || exit 1
_clean_mkinitcpio "${1}" || exit 1
_clean_cache "${1}" || exit 1
_clean_mkinitcpio "${1}"
_clean_cache "${1}"
_install_archboot "${1}" || exit 1
_umount_special "${1}" || exit 1
_generate_locales "${1}" || exit 1
_generate_locales "${1}"
_clean_container "${1}"
_clean_archboot_cache
_generate_keyring "${1}" || exit 1
@ -26,12 +26,12 @@ fi
if [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then
_aarch64_pacman_chroot "${1}" || exit 1
_aarch64_install_base_packages "${1}" || exit 1
_clean_mkinitcpio "${1}" || exit 1
_clean_cache "${1}" || exit 1
_clean_mkinitcpio "${1}"
_clean_cache "${1}"
_aarch64_install_archboot "${1}" || exit 1
_clean_mkinitcpio "${1}" || exit 1
_clean_cache "${1}" || exit 1
_generate_locales "${1}" || exit 1
_clean_mkinitcpio "${1}"
_clean_cache "${1}"
_generate_locales "${1}"
_clean_container "${1}" 2>/dev/null
fi
_reproducibility "${1}"

View file

@ -15,6 +15,15 @@ _usage () {
exit 0
}
_fix_network() {
echo "Fix network settings in ${1} ..."
# enable parallel downloads
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${1}"/etc/pacman.conf
# fix network in container
rm "${1}"/etc/resolv.conf
echo "nameserver 8.8.8.8" > "${1}"/etc/resolv.conf
}
[[ -z "${1}" ]] && _usage
_root_check
@ -28,27 +37,17 @@ echo "Downloading archlinuxarm aarch64 ..."
bsdtar -xf ArchLinuxARM-aarch64-latest.tar.gz -C "${1}"
echo "Removing installation tarball ..."
rm ArchLinuxARM-aarch64-latest.tar.gz
_generate_locales "${1}" || exit 1
_generate_locales "${1}"
_generate_keyring "${1}" || exit 1
# enable parallel downloads
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${1}"/etc/pacman.conf
# fix network in container
rm "${1}/etc/resolv.conf"
echo "nameserver 8.8.8.8" > "${1}/etc/resolv.conf"
_fix_network "${1}"
# update container to latest packages
echo "Installing pacman to container ..."
mkdir -p "${1}/${_PACMAN_AARCH64}/var/lib/pacman"
systemd-nspawn -D "${1}" pacman --root "/${_PACMAN_AARCH64}" -Sy awk pacman --ignore systemd-resolvconf --noconfirm >/dev/null 2>&1
# copy locale
echo "Copying locales to container ..."
cp "${1}/usr/lib/locale/locale-archive" "${1}/${_PACMAN_AARCH64}/usr/lib/locale/locale-archive" || exit 1
# generate pacman keyring
# gzip and sed for locale-gen
systemd-nspawn -D "${1}" pacman --root "/${_PACMAN_AARCH64}" -Sy awk sed gzip pacman --ignore systemd-resolvconf --noconfirm >/dev/null 2>&1
_generate_locales "${1}/${_PACMAN_AARCH64}"
_generate_keyring "${1}/${_PACMAN_AARCH64}" || exit 1
# enable parallel downloads
sed -i -e 's:^#ParallelDownloads:ParallelDownloads:g' "${1}/${_PACMAN_AARCH64}"/etc/pacman.conf
# fix network in container
rm "${1}/${_PACMAN_AARCH64}/etc/resolv.conf"
echo "nameserver 8.8.8.8" > "${1}/${_PACMAN_AARCH64}/etc/resolv.conf"
_fix_network "${1}/${_PACMAN_AARCH64}"
_CLEANUP_CONTAINER="1" _clean_container "${1}/${_PACMAN_AARCH64}" 2>/dev/null
_CLEANUP_CACHE="1" _clean_cache "${1}/${_PACMAN_AARCH64}" 2>/dev/null
echo "Generating tarball ..."

View file

@ -14,12 +14,12 @@ echo "Starting container creation ..."
_create_pacman_conf "${1}"
_prepare_pacman "${1}" || exit 1
_install_base_packages "${1}" || exit 1
_clean_mkinitcpio "${1}" || exit 1
_clean_cache "${1}" || exit 1
_clean_mkinitcpio "${1}"
_clean_cache "${1}"
_install_archboot "${1}" || exit 1
_umount_special "${1}" || exit 1
_generate_locales "${1}" || exit 1
_clean_container "${1}" || exit 1
_generate_locales "${1}"
_clean_container "${1}"
_clean_archboot_cache
_generate_keyring "${1}" || exit 1
_copy_mirrorlist_and_pacman_conf "${1}"

View file

@ -34,19 +34,18 @@ _clean_cache() {
}
_aarch64_pacman_chroot() {
if ! [[ -f pacman-aarch64-chroot-latest.tar.zst && -f pacman-aarch64-chroot-latest.tar.zst.sig ]]; then
if ! [[ -f ${_PACMAN_AARCH64_CHROOT} && -f ${_PACMAN_AARCH64_CHROOT}.sig ]]; then
echo "Downloading ${_PACMAN_AARCH64_CHROOT} ..."
wget ${_ARCHBOOT_AARCH64_CHROOT_PUBLIC}/${_PACMAN_AARCH64_CHROOT}{,.sig} >/dev/null 2>&1
echo "Verifing ${_PACMAN_AARCH64_CHROOT} ..."
gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1
bsdtar -C "${1}" -xf "${_PACMAN_AARCH64_CHROOT}"
echo "Removing installation tarball ..."
rm ${_PACMAN_AARCH64_CHROOT}{,.sig}
else
echo "Using local ${_PACMAN_AARCH64_CHROOT} ..."
echo "Verifing ${_PACMAN_AARCH64_CHROOT} ..."
gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1
bsdtar -C "${1}" -xf "${_PACMAN_AARCH64_CHROOT}"
fi
echo "Verifying ${_PACMAN_AARCH64_CHROOT} ..."
gpg --verify "${_PACMAN_AARCH64_CHROOT}.sig" >/dev/null 2>&1 || exit 1
bsdtar -C "${1}" -xf "${_PACMAN_AARCH64_CHROOT}"
if [[ -f ${_PACMAN_AARCH64_CHROOT} && -f ${_PACMAN_AARCH64_CHROOT}.sig ]]; then
echo "Removing installation tarball ${_PACMAN_AARCH64_CHROOT} ..."
rm ${_PACMAN_AARCH64_CHROOT}{,.sig}
fi
echo "Update container to latest packages..."
systemd-nspawn -D "${1}" pacman -Syu --noconfirm >/dev/null 2>&1
@ -58,7 +57,7 @@ _clean_container() {
echo "Clean container, delete not needed files from ${1} ..."
rm -r "${1}"/usr/include
rm -r "${1}"/usr/share/{aclocal,applications,audit,avahi,awk,bash-completion,cmake,common-lisp,cracklib,dhclient,dhcpcd,dict,dnsmasq,emacs,et,fish,gdb,gettext,gettext-0.21,glib-2.0,gnupg,graphite2,gtk-doc,iana-etc,icons,icu,iptables,keyutils,libalpm,libgpg-error,makepkg-template,misc,mkinitcpio,ncat,ntp,p11-kit,pixmaps,pkgconfig,readline,screen,smartmontools,ss,stoken,tabset,texinfo,vala,xml,xtables,zoneinfo-leaps,man,doc,info,perl5,i18n,locale}
rm -r "${1}"/usr/lib/{audit,avahi,awk,bash,binfmt.d,cifs-utils,cmake,coreutils,cryptsetup,cups,dracut,e2fsprogs,engines-1.1,environment.d,gawk,getconf,gettext,girepository-1.0,glib-2.0,gnupg,gssproxy,guile,icu,itcl4.2.2,iwd,krb5,ldb,ldscripts,libnl,libproxy,ntfs-3g,openconnect,openssl-1.0,p11-kit,pcsc,perl5,pkcs11,pkgconfig,python3.10,rsync,samba,sasl2,siconv,sysctl.d,sysusers.d,tar,tcl8.6,tcl8,tdbc1.1.3,tdbcmysql1.1.3,tdbcodbc1.1.3,tdbcpostgres1.1.3,terminfo,texinfo,thread2.8.7,valgrind,xfsprogs,xplc-0.3.13,xtables} || return 0
rm -r "${1}"/usr/lib/{audit,avahi,awk,bash,binfmt.d,cifs-utils,cmake,coreutils,cryptsetup,cups,dracut,e2fsprogs,engines-1.1,environment.d,gawk,getconf,gettext,girepository-1.0,glib-2.0,gnupg,gssproxy,guile,icu,itcl4.2.2,iwd,krb5,ldb,ldscripts,libnl,libproxy,ntfs-3g,openconnect,openssl-1.0,p11-kit,pcsc,perl5,pkcs11,pkgconfig,python3.10,rsync,samba,sasl2,siconv,sysctl.d,sysusers.d,tar,tcl8.6,tcl8,tdbc1.1.3,tdbcmysql1.1.3,tdbcodbc1.1.3,tdbcpostgres1.1.3,terminfo,texinfo,thread2.8.7,valgrind,xfsprogs,xplc-0.3.13,xtables}
fi
}

View file

@ -41,9 +41,11 @@ _buildserver_check() {
# generate locales
_generate_locales() {
echo "Generate locales in container ..."
sed -i -e 's:#C.UTF-8 UTF-8:C.UTF-8 UTF-8:g' "${1}/etc/locale.gen"
systemd-nspawn -q -D "${1}" locale-gen >/dev/null 2>&1
if [[ -d ${1}/usr/share/locale ]]; then
echo "Generate locales in container ..."
sed -i -e 's:#C.UTF-8 UTF-8:C.UTF-8 UTF-8:g' "${1}/etc/locale.gen"
systemd-nspawn -q -D "${1}" locale-gen >/dev/null 2>&1 || exit 1
fi
}
_generate_keyring() {