On system with empty /boot (example: /boot on external device and not mounted: * `vkpurge list` reports `*`, which is incorrect, and * `vkpurge rm all` run `remove_kernel` for all file names in $PWD, this will normally harmless except when efibootmgr is used and some files with special name, let's say "V" "o" "i" "d" in $PWD, then, efibootmgr will remove all boot entries. Fix it by checking for `vmlinu[xz]-*` explicitly. A sane system shouldn't have that file.
98 lines
2.6 KiB
Bash
98 lines
2.6 KiB
Bash
# Template file for 'base-files'
|
|
pkgname=base-files
|
|
version=0.141
|
|
revision=1
|
|
bootstrap=yes
|
|
depends="xbps-triggers"
|
|
short_desc="Void Linux base system files"
|
|
maintainer="Enno Boland <orphan@voidlinux.org>"
|
|
license="Public Domain"
|
|
homepage="https://www.voidlinux.org"
|
|
conf_files="
|
|
/etc/inputrc
|
|
/etc/profile
|
|
/etc/hosts
|
|
/etc/host.conf
|
|
/etc/securetty
|
|
/etc/skel/.bash_profile
|
|
/etc/skel/.bash_logout
|
|
/etc/skel/.bashrc
|
|
/etc/skel/.inputrc
|
|
/etc/subuid
|
|
/etc/subgid
|
|
/etc/issue
|
|
/etc/passwd
|
|
/etc/group
|
|
/etc/fstab
|
|
/etc/crypttab
|
|
/etc/nsswitch.conf"
|
|
|
|
replaces="base-directories>=0"
|
|
# New system groups
|
|
system_groups="kvm:24"
|
|
|
|
do_install() {
|
|
# Create bin and lib dirs and symlinks.
|
|
for d in bin lib; do
|
|
vmkdir "usr/${d}"
|
|
ln -snrf "${DESTDIR}/usr/${d}" "${DESTDIR}/${d}"
|
|
done
|
|
# Symlink sbin paths to /usr/bin.
|
|
for d in sbin usr/sbin; do
|
|
ln -snrf "${DESTDIR}/usr/bin" "${DESTDIR}/${d}"
|
|
done
|
|
# Symlink word-specific lib paths to /usr/lib.
|
|
for d in lib usr/lib; do
|
|
ln -snrf "${DESTDIR}/usr/lib" \
|
|
"${DESTDIR}/${d}${XBPS_TARGET_WORDSIZE}"
|
|
done
|
|
# Populate 32-bit lib files on 64-bit systems, for multilib.
|
|
if [ "${XBPS_TARGET_WORDSIZE}" = "64" ]; then
|
|
vmkdir usr/lib32
|
|
ln -snrf "${DESTDIR}/usr/lib32" "${DESTDIR}/lib32"
|
|
ln -sf ../lib/locale "${DESTDIR}/usr/lib32/locale"
|
|
vinstall "${FILESDIR}/ld.so.lib32.conf" 644 etc/ld.so.conf.d lib32.conf
|
|
fi
|
|
|
|
# Install misc config files.
|
|
for f in bash_logout bash_profile bashrc inputrc; do
|
|
vinstall ${FILESDIR}/dot_${f} 644 etc/skel .${f}
|
|
done
|
|
|
|
vinstall ${FILESDIR}/securetty 600 etc
|
|
for f in profile hosts host.conf issue subuid subgid \
|
|
inputrc fstab passwd group crypttab nsswitch.conf; do
|
|
vinstall ${FILESDIR}/${f} 644 etc
|
|
done
|
|
vmkdir etc/colors
|
|
vmkdir etc/profile.d
|
|
install -m644 ${FILESDIR}/*.sh ${DESTDIR}/etc/profile.d
|
|
install -m644 ${FILESDIR}/DIR_COLORS* ${DESTDIR}/etc/colors
|
|
|
|
# modprobe(8) files
|
|
vinstall ${FILESDIR}/usb-load-ehci-first 644 usr/lib/modprobe.d usb-load-ehci-first.conf
|
|
vinstall ${FILESDIR}/blacklist.conf 644 usr/lib/modprobe.d
|
|
# sysctl(8) files
|
|
vinstall ${FILESDIR}/sysctl.conf 644 usr/lib/sysctl.d 10-void.conf
|
|
|
|
# Install common licenses, from Debian.
|
|
vmkdir usr/share/licenses
|
|
install -m644 ${FILESDIR}/licenses/* ${DESTDIR}/usr/share/licenses
|
|
|
|
# vkpurge
|
|
vbin ${FILESDIR}/vkpurge
|
|
vman ${FILESDIR}/vkpurge.8
|
|
|
|
vbin ${FILESDIR}/lsb_release
|
|
|
|
# Install default dracut configuration.
|
|
vinstall ${FILESDIR}/dracut.conf.d.voidlinux.conf 644 \
|
|
usr/lib/dracut/dracut.conf.d 00-void.conf
|
|
|
|
# Create /proc/self/mounts -> /etc/mtab symlink.
|
|
ln -sf /proc/self/mounts ${DESTDIR}/etc/mtab
|
|
|
|
# udev rules
|
|
vmkdir usr/lib/udev/rules.d
|
|
install -m644 ${FILESDIR}/*.rules ${DESTDIR}/usr/lib/udev/rules.d
|
|
}
|