void-packages/srcpkgs/base-files/template
Andrew J. Hesford 2e6e0d6e80 base-files: Restore mdns ordering in nsswitch.conf
Placing mdns after dns in the host database resolution can cause
unintuitive failures for users without nss-mdns or mDNSResponder. When
looking up an invalid host, having order "dns mdns" will cause a dns
"notfound" result to fall through to mdns, which will yield
"unavailable" for users without an mdns provider. This causes clients
like ssh to report "Device or resource busy" rather than a more
meaningful message to indicate that the hostname is not valid. Flipping
back to order "mdns dns" will case an "unavailable" mdns result to fall
through to dns, which then returns "notfound" that clients interpret as
expected.

Because both mDNSResponder and nss-mdns offer a generic mdns provider.
The mdns4 and mdns4_minimal providers offered by nss-mdns are subsets of
the generic mdns provider, so there is no value in restoring the
original "mdns mdns4_minimal mdns4" ordering (in fact, this may have
caused failed mdns lookups to be repeated three times). All have been
coalesced into the single mdns provider.

This (partially) reverts commit cc11e17fab.
2021-01-23 11:00:34 -05:00

98 lines
2.6 KiB
Bash

# Template file for 'base-files'
pkgname=base-files
version=0.141
revision=7
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
}