From d36e9b086282dddff0f9064fcaf65f7a1422ea96 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Sat, 16 Oct 2004 23:50:51 +0000 Subject: Add baselayout-1.9.4-r5 with splash patch from Spock for the sake of 2004.3; this version will need to go stable in a day or so. baselayout-1.11.x will go into testing and then stable post-release. baselayout-1.10.x will never go stable because there's no point switching networking setup twice --- sys-apps/baselayout/ChangeLog | 11 +- sys-apps/baselayout/Manifest | 31 +- sys-apps/baselayout/baselayout-1.9.4-r5.ebuild | 579 +++++++++++++++++++++ .../baselayout/files/digest-baselayout-1.9.4-r5 | 2 + .../files/rc-scripts-1.4.16-splash.patch | 476 +++++++++++++++++ 5 files changed, 1079 insertions(+), 20 deletions(-) create mode 100644 sys-apps/baselayout/baselayout-1.9.4-r5.ebuild create mode 100644 sys-apps/baselayout/files/digest-baselayout-1.9.4-r5 create mode 100644 sys-apps/baselayout/files/rc-scripts-1.4.16-splash.patch (limited to 'sys-apps/baselayout') diff --git a/sys-apps/baselayout/ChangeLog b/sys-apps/baselayout/ChangeLog index 7703265dc5ef..ea83d260574b 100644 --- a/sys-apps/baselayout/ChangeLog +++ b/sys-apps/baselayout/ChangeLog @@ -1,10 +1,19 @@ # ChangeLog for sys-apps/baselayout # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/baselayout/ChangeLog,v 1.178 2004/10/13 23:20:03 agriffis Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/baselayout/ChangeLog,v 1.179 2004/10/16 23:50:51 agriffis Exp $ # See the gentoo-src rc-scripts ChangeLog for up-to-date release information: # http://www.gentoo.org/cgi-bin/viewcvs.cgi/rc-scripts/ChangeLog?rev=HEAD&cvsroot=gentoo-src&content-type=text/vnd.viewcvs-markup +*baselayout-1.9.4-r5 (16 Oct 2004) + + 16 Oct 2004; Aron Griffis + +files/rc-scripts-1.4.16-splash.patch, +baselayout-1.9.4-r5.ebuild: + Add baselayout-1.9.4-r5 with splash patch from Spock for the sake of 2004.3; + this version will need to go stable in a day or so. baselayout-1.11.x will + go into testing and then stable post-release. baselayout-1.10.x will never + go stable because there's no point switching networking setup twice + 13 Oct 2004; Aron Griffis baselayout-1.11.2.ebuild: Remove rogue doexe that installed init-scripts to / diff --git a/sys-apps/baselayout/Manifest b/sys-apps/baselayout/Manifest index d35a327e6d09..1daf13bd875c 100644 --- a/sys-apps/baselayout/Manifest +++ b/sys-apps/baselayout/Manifest @@ -1,26 +1,19 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -MD5 9b1e606d008daa436b585bb8afbdf8f7 ChangeLog 40316 -MD5 3f3f39bcffef2bbd97cfdda19434f442 baselayout-1.9.4-r3.ebuild 17751 MD5 a86cd31cbe72598d2495ed0e026e3ca3 baselayout-1.10.3.ebuild 15539 -MD5 e732366f1c9633439cfa0ebc303897e0 baselayout-1.10.4.ebuild 15539 +MD5 3f3f39bcffef2bbd97cfdda19434f442 baselayout-1.9.4-r3.ebuild 17751 +MD5 9a0d6a92aea1a5bfc702144c469ee40b ChangeLog 40776 MD5 e02bb32cac91dad28d3c05b731b37b04 metadata.xml 385 +MD5 e732366f1c9633439cfa0ebc303897e0 baselayout-1.10.4.ebuild 15539 MD5 e8247bd1882a2f981e3c355deb8a57e8 baselayout-1.9.4-r4.ebuild 16536 MD5 0018faae3fc89efaa44334c803c820bd baselayout-1.11.2.ebuild 16334 -MD5 7c0cd50e4ac1dc062f5e6ab578e95659 files/copyright 2099 -MD5 d69d18485e6cfc948d9f39b2b766a406 files/digest-baselayout-1.9.4-r3 134 +MD5 100c73bb9f1d2860854e820d06235f38 baselayout-1.9.4-r5.ebuild 16772 +MD5 dd7fbce62822fed1595f11078e23aa32 files/baselayout-1.8.6.13-r1-gcc2.patch 443 +MD5 d50ca91cbb58c7528a60ddf5bb172956 files/sysvinit-2.84-selinux.patch 3206 MD5 ab3b5bbd5ce8a8b1386c834ff4a118b4 files/digest-baselayout-1.10.3 69 MD5 2a99e8726f3939af8e637269f4fd4818 files/digest-baselayout-1.10.4 69 -MD5 d69d18485e6cfc948d9f39b2b766a406 files/digest-baselayout-1.9.4-r4 134 -MD5 d50ca91cbb58c7528a60ddf5bb172956 files/sysvinit-2.84-selinux.patch 3206 -MD5 dd7fbce62822fed1595f11078e23aa32 files/baselayout-1.8.6.13-r1-gcc2.patch 443 -MD5 adc667ea815b256d6f39259f4134f6df files/sysvinit-2.84-selinux1.patch 3556 MD5 9e63fdc2b39bbe5ce72630dcc7e1f65b files/digest-baselayout-1.11.2 69 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.9.10 (GNU/Linux) - -iD8DBQFBcVTMHTu7gpaalycRAkZqAJ0Z7jB63zQrVWCtJY9D434cIeZB0ACfd5SW -U3n/MnW8cPRQiVz+bTKNs9U= -=s82s ------END PGP SIGNATURE----- +MD5 adc667ea815b256d6f39259f4134f6df files/sysvinit-2.84-selinux1.patch 3556 +MD5 7c0cd50e4ac1dc062f5e6ab578e95659 files/copyright 2099 +MD5 d69d18485e6cfc948d9f39b2b766a406 files/digest-baselayout-1.9.4-r3 134 +MD5 d69d18485e6cfc948d9f39b2b766a406 files/digest-baselayout-1.9.4-r4 134 +MD5 7b2f5e48c4d9056df539620299c20641 files/rc-scripts-1.4.16-splash.patch 11251 +MD5 d69d18485e6cfc948d9f39b2b766a406 files/digest-baselayout-1.9.4-r5 134 diff --git a/sys-apps/baselayout/baselayout-1.9.4-r5.ebuild b/sys-apps/baselayout/baselayout-1.9.4-r5.ebuild new file mode 100644 index 000000000000..983665968c71 --- /dev/null +++ b/sys-apps/baselayout/baselayout-1.9.4-r5.ebuild @@ -0,0 +1,579 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/baselayout/baselayout-1.9.4-r5.ebuild,v 1.1 2004/10/16 23:50:51 agriffis Exp $ + +inherit flag-o-matic eutils + +SV=1.4.16 # rc-scripts version +SVREV= # rc-scripts rev +SVIV=2.84 # sysvinit version + +S="${WORKDIR}/rc-scripts-${SV}${SVREV}" +S2="${WORKDIR}/sysvinit-${SVIV}" +DESCRIPTION="Base layout for Gentoo Linux (incl. initscripts and sysvinit)" +HOMEPAGE="http://www.gentoo.org/" +SRC_URI="ftp://ftp.cistron.nl/pub/people/miquels/software/sysvinit-${SVIV}.tar.gz + ftp://sunsite.unc.edu/pub/Linux/system/daemons/init/sysvinit-${SVIV}.tar.gz + mirror://gentoo/rc-scripts-${SV}${SVREV}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~ppc ~sparc ~mips ~alpha ~arm ~hppa ~ia64 ~ppc64 ~s390" +IUSE="bootstrap build livecd static selinux uclibc" + +# This version of baselayout needs gawk in /bin, but as we do not have +# a c++ compiler during bootstrap, we cannot depend on it if "bootstrap" +# or "build" are in USE. +RDEPEND="!sys-apps/sysvinit + !build? ( !bootstrap? ( + >=sys-apps/gawk-3.1.1-r2 + >=sys-apps/util-linux-2.11z-r6 + ) ) + selinux? ( sys-libs/libselinux )" +DEPEND="virtual/os-headers + selinux? ( sys-libs/libselinux )" + +src_unpack() { + unpack ${A} + + # Let glibc handle nscd #43076 + rm ${S}/init.d/nscd + + # Patch rc-scripts to bring splash stuff up to snuff until 1.11.x is + # available (not soon enough for 2004.3) + cd ${S} + epatch ${FILESDIR}/rc-scripts-1.4.16-splash.patch + + # + # Baselayout setup + # + cd ${S}/etc + + # Fix Sparc specific stuff + if [[ ${ARCH} == sparc ]]; then + sed -i -e 's:KEYMAP="us":KEYMAP="sunkeymap":' rc.conf || die + fi + + # Add serial console for arches that typically have it + case ${ARCH} in + sparc|mips|hppa|alpha|ia64) + sed -i -e \ + 's"# TERMINALS"# SERIAL CONSOLE\nc0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100\n\n# TERMINALS"' \ + inittab || die + ;; + esac + + # + # sysvinit setup + # + if ! use build; then + cd ${S2}/src + + # Selinux patch for sysvinit + if use selinux; then + if has_version '>=sys-libs/libselinux-1.6'; then + epatch ${FILESDIR}/sysvinit-${SVIV}-selinux1.patch + else + epatch ${FILESDIR}/sysvinit-${SVIV}-selinux.patch + fi + fi + fi +} + +src_compile() { + use static && append-ldflags -static + + echo "${ROOT}" > ${T}/ROOT + + einfo "Building utilities..." + make -C ${S}/src CC="${CC:-gcc}" LD="${CC:-gcc} ${LDFLAGS}" \ + CFLAGS="${CFLAGS}" || die "problem compiling utilities" + + if ! use build; then + einfo "Building sysvinit..." + # Note: The LCRYPT define below overrides the test in + # sysvinit's Makefile. This is because sulogin must be linked + # to libcrypt in any case, but when building stage2 in + # catalyst, /usr/lib/libcrypt.a isn't available. In truth + # this doesn't change how sulogin is built since ld would use + # the shared obj by default anyway! The other option is to + # refrain from building sulogin, but that isn't a good option. + # (09 Jul 2004 agriffis) + emake -C ${S2}/src CC="${CC:-gcc}" LD="${CC:-gcc}" \ + LDFLAGS="${LDFLAGS}" CFLAGS="${CFLAGS} -D_GNU_SOURCE" \ + LCRYPT="-lcrypt" || die "problem compiling sysvinit" + else + einfo "Not building sysvinit because USE=build" + fi +} + +# ${PATH} should include where to get MAKEDEV when calling this +# function +create_dev_nodes() { + case ${ARCH} in + # amd64 must use generic-i386 because amd64/x86_64 does not have + # a generic option at this time, and the default 'generic' ends + # up erroring out, because MAKEDEV internally doesn't know what + # to use + amd64) suffix=-i386 ;; + x86) suffix=-i386 ;; + ppc*) suffix=-powerpc ;; + alpha) suffix=-alpha ;; + ia64) suffix=-ia64 ;; + sparc*) suffix=-sparc ;; + mips) suffix=-mips ;; + arm) suffix=-arm ;; + hppa) suffix=-hppa ;; + esac + + einfo "Using generic${suffix} to make ${ARCH} device nodes..." + MAKEDEV generic${suffix} + MAKEDEV sg scd rtc hde hdf hdg hdh input audio video +} + +# This is a temporary workaround until bug 9849 is completely solved +# in portage. We need to create the directories so they're available +# during src_install, but when src_install is finished, call unkdir +# to remove any empty directories instead of leaving them around. +kdir() { + typeset -a args + typeset d + + # Create the directories for the remainder of src_install, and + # remember how to create the directories later. + for d in "$@"; do + if [[ $d == /* ]]; then + install -d "${args[@]}" "${D}/${d}" + cat >> "${D}/usr/share/baselayout/mkdirs.sh" </dev/null \\ + || ewarn " can't create ${d}" +touch "\${ROOT}/${d}/.keep" 2>/dev/null \\ + || ewarn " can't create ${d}/.keep" +EOF + else + args=("${args[@]}" "${d}") + fi + done +} + +# Continued from kdir above... This function removes any empty +# directories as a temporary workaround for bug 9849. The directories +# (and .keep files) are re-created in pkg_postinst, which means they +# aren't listed in CONTENTS, unfortunately. +unkdir() { + einfo "Running unkdir to workaround bug 9849" + find ${D} -depth -type d -exec rmdir {} \; 2>/dev/null + if [[ $? == 127 ]]; then + ewarn "Problem running unkdir: find command not found" + fi +} + +src_install() { + local foo bar + + # ROOT is purged from the environment prior to calling + # src_install. Good thing we saved it in a temporary file. + # Otherwise ROOT will be NULL, which hopefully is correct! + # (I don't know why it was in the environment in the first + # place... could have just used a shell variable?) + if [[ -f ${T}/ROOT ]]; then + ROOT=$(cat ${T}/ROOT) + fi + + # This directory is to stash away things that will be used in + # pkg_postinst + dodir /usr/share/baselayout + + einfo "Creating directories..." + kdir /boot + kdir /dev + kdir /dev/pts + kdir /dev/shm + kdir /etc/conf.d + kdir /etc/cron.daily + kdir /etc/cron.hourly + kdir /etc/cron.monthly + kdir /etc/cron.weekly + kdir /etc/env.d + kdir /etc/modules.autoload.d + kdir /etc/modules.d + kdir /etc/opt + kdir /home + kdir /lib + kdir /lib/dev-state + kdir /lib/udev-state + kdir /mnt + kdir -m 0700 /mnt/cdrom + kdir -m 0700 /mnt/floppy + kdir /opt + kdir -o root -g uucp -m0775 /var/lock + kdir /proc + kdir -m 0700 /root + kdir /sbin + kdir /sys # needed for 2.6 kernels, fixes bug 52703 + kdir /usr + kdir /usr/bin + kdir /usr/include + kdir /usr/include/asm + kdir /usr/include/linux + kdir /usr/lib + kdir /usr/local/bin + kdir /usr/local/games + kdir /usr/local/lib + kdir /usr/local/sbin + kdir /usr/local/share + kdir /usr/local/share/doc + kdir /usr/local/share/man + kdir /usr/local/src + kdir /usr/portage + kdir /usr/sbin + kdir /usr/share/doc + kdir /usr/share/info + kdir /usr/share/man + kdir /usr/share/misc + kdir /usr/src + kdir /usr/X11R6/include/GL + kdir /usr/X11R6/include/X11 + kdir /usr/X11R6/lib + kdir /usr/X11R6/lib + kdir /usr/X11R6/man + kdir /usr/X11R6/share + kdir -m 1777 /tmp + kdir /var + kdir /var/lib/misc + kdir /var/lock/subsys + kdir /var/log/news + kdir /var/run + kdir /var/spool + kdir /var/state + kdir -m 1777 /var/tmp + + dodir /etc/init.d # .keep file might mess up init.d stuff + dodir /var/db/pkg # .keep file messes up Portage when looking in /var/db/pkg + + # Symlinks so that LSB compliant apps work + # /lib64 is especially required since its the default place for ld.so + if [[ ${ARCH} == amd64 || ${ARCH} == ppc64 ]]; then + dosym lib /lib64 + dosym lib /usr/lib64 + dosym lib /usr/X11R6/lib64 + fi + + # FHS compatibility symlinks stuff + dosym ../var/tmp /usr/tmp + dosym share/man /usr/man + dosym share/doc /usr/doc + dosym share/info /usr/info + dosym ../../share/info /usr/X11R6/share/info + dosym ../X11R6/include/X11 /usr/include/X11 + dosym ../X11R6/include/GL /usr/include/GL + dosym ../X11R6/lib/X11 /usr/lib/X11 + dosym share/man /usr/local/man + dosym share/doc /usr/local/doc + + # + # Setup files in /etc + # + dosym ../proc/filesystems /etc/filesystems + + insopts -m0644 + insinto /etc + find ${S}/etc -type f -maxdepth 1 -print0 | xargs --null doins + + fperms 0600 /etc/shadow + + exeinto /etc/init.d + doexe ${S}/init.d/* + insinto /etc/conf.d + doins ${S}/etc/conf.d/* + insinto /etc/env.d + doins ${S}/etc/env.d/* + insinto /etc/modules.autoload.d + doins ${S}/etc/modules.autoload.d/* + insinto /etc/modules.d + doins ${S}/etc/modules.d/* + insinto /etc/skel + find ${S}/etc/skel -type f -maxdepth 1 -print0 | xargs --null doins + + rm -f ${D}/etc/{conf,init}.d/net.ppp* # now ships with net-dialup/ppp + + # Set up default runlevel symlinks + if [[ ${ROOT} != / ]]; then + for foo in default boot nonetwork single; do + kdir /etc/runlevels/${foo} + for bar in $(cat ${S}/rc-lists/${foo}); do + [[ -e ${S}/init.d/${bar} ]] && \ + dosym /etc/init.d/${bar} /etc/runlevels/${foo}/${bar} + done + done + fi + + # We do not want to overwrite the user's settings during + # bootstrap; put this somewhere for safekeeping until pkg_postinst + mv ${D}/etc/hosts ${D}/usr/share/baselayout + + # rc-scripts version for testing of features that *should* be present + echo "Gentoo Base System version ${SV}" > ${D}/etc/gentoo-release + + # + # Setup files related to /dev + # + into / + dosbin ${S}/sbin/MAKEDEV + dosym ../../sbin/MAKEDEV /usr/sbin/MAKEDEV + dosym ../sbin/MAKEDEV /dev/MAKEDEV + + if use build || use bootstrap || \ + [[ ! -f "${ROOT}/lib/udev-state/devices.tar.bz2" ]]; then + # Ok, create temp device nodes + mkdir -p "${T}/udev-$$" + cd "${T}/udev-$$" + echo + einfo "Making device nodes (this could take a minute or so...)" + PATH="${D}/sbin:${PATH}" create_dev_nodes + + # Now create tarball that can also be used for udev. + # Need GNU tar for -j so call it by absolute path. + /bin/tar -cjlpf "${T}/devices-$$.tar.bz2" * + insinto /lib/udev-state + newins "${T}/devices-$$.tar.bz2" devices.tar.bz2 + fi + + # + # Setup files in /bin + # + cd ${S}/bin + dobin rc-status + if use livecd; then + dobin bashlogin + fi + + # + # Setup files in /sbin + # + cd ${S}/sbin + into / + dosbin rc rc-update + # Need this in /sbin, as it could be run before + # /usr is mounted. + dosbin modules-update + # Compat symlinks until I can get things synced. + dosym modules-update /sbin/update-modules + dosym ../../sbin/modules-update /usr/sbin/update-modules + # These moved from /etc/init.d/ to /sbin to help newb systems + # from breaking + dosbin runscript.sh functions.sh + use livecd && dosbin livecd-functions.sh + + # Compat symlinks between /etc/init.d and /sbin + # (some stuff have hardcoded paths) + dosym ../../sbin/depscan.sh /etc/init.d/depscan.sh + dosym ../../sbin/runscript.sh /etc/init.d/runscript.sh + dosym ../../sbin/functions.sh /etc/init.d/functions.sh + + # + # Setup files in /lib/rcsripts/sh + # + cd ${S}/sbin + exeinto /lib/rcscripts/sh + doexe rc-services.sh rc-daemon.sh rc-help.sh + + # We can only install new, fast awk versions of scripts + # if 'build' or 'bootstrap' is not in USE. This will + # change if we have sys-apps/gawk-3.1.1-r1 or later in + # the build image ... + if ! use build; then + # This is for new depscan.sh and env-update.sh + # written in awk + cd ${S}/sbin + into / + dosbin depscan.sh + dosbin env-update.sh + insinto /lib/rcscripts/awk + doins ${S}/src/awk/*.awk + fi + + # + # Install baselayout documentation + # + if ! use build ; then + doman ${S}/man/*.* + docinto / + dodoc ${FILESDIR}/copyright + dodoc ${S}/ChangeLog + fi + + # + # Install baselayout utilities + # + cd ${S}/src + einfo "Installing utilities..." + make DESTDIR="${D}" install || die "problem installing utilities" + + # + # Install sysvinit + # + if ! use build; then + cd ${S2}/src + einfo "Installing sysvinit..." + into / + dosbin init halt killall5 runlevel shutdown sulogin + dosym init /sbin/telinit + dobin last mesg utmpdump wall + dosym killall5 /sbin/pidof + dosym halt /sbin/reboot + dosym halt /sbin/poweroff + dosym last /bin/lastb + insinto /usr/include + doins initreq.h + # sysvinit docs + cd ${S2} + doman man/*.[1-9] + docinto sysvinit-${SVIV} + dodoc COPYRIGHT README doc/* + fi + + use uclibc && rm -f ${D}/etc/nsswitch.conf + + # Hack to fix bug 9849, continued in pkg_postinst + unkdir +} + +pkg_preinst() { + if [[ -f ${ROOT}/etc/modules.autoload && \ + ! -d ${ROOT}/etc/modules.autoload.d ]]; then + mkdir -p ${ROOT}/etc/modules.autoload.d + mv -f ${ROOT}/etc/modules.autoload \ + ${ROOT}/etc/modules.autoload.d/kernel-2.4 + ln -snf modules.autoload.d/kernel-2.4 ${ROOT}/etc/modules.autoload + fi + + if [[ -f "${ROOT}/lib/udev-state/devices.tar.bz2" && + -e "${ROOT}/dev/.udev" ]]; then + mv -f "${ROOT}/lib/udev-state/devices.tar.bz2" \ + "${ROOT}/lib/udev-state/devices.tar.bz2.current" + fi +} + +pkg_postinst() { + local x + + # Reincarnate dirs from kdir/unkdir (hack for bug 9849) + einfo "Creating directories and .keep files." + einfo "Some of these might fail if they're read-only mounted" + einfo "filesystems, for example /dev or /proc. That's okay!" + source ${ROOT}/usr/share/baselayout/mkdirs.sh + + if [[ -f "${ROOT}/lib/udev-state/devices.tar.bz2.current" ]]; then + # Rather use our current device tarball ... this was saved off + # in pkg_preinst + mv -f "${ROOT}/lib/udev-state/devices.tar.bz2.current" \ + "${ROOT}/lib/udev-state/devices.tar.bz2" + else + # Make sure our tarball does not get removed; update the + # timestamp so that it doesn't match CONTENTS + touch "${ROOT}/lib/udev-state/devices.tar.bz2" + fi + + # We don't want to create devices if this is not a bootstrap and devfs + # is used, as this was the cause for all the devfs problems we had + if use build || use bootstrap; then + if [[ ! -e "${ROOT}/dev/.devfsd" && ! -e "${ROOT}/dev/.udev" ]]; then + einfo "Populating /dev with device nodes..." + cd ${ROOT}/dev + if [ -f "${ROOT}/lib/udev-state/devices.tar.bz2" ]; then + tar -jxpf "${ROOT}/lib/udev-state/devices.tar.bz2" || die + else + # devices.tar.bz2 will not exist with binary packages ... + PATH="${ROOT}/sbin:${PATH}" create_dev_nodes + fi + fi + fi + + # Create /boot/boot symlink in pkg_postinst because sometimes + # /boot is a FAT filesystem. When that is the case, then the + # symlink will fail. Consequently, if we create it in + # src_install, then merge will fail. AFAIK there is no point to + # this symlink except for misconfigured grubs. See bug 50108 + # (05 May 2004 agriffis) + ln -sn . ${ROOT}/boot/boot 2>/dev/null + + # Create /etc/hosts in pkg_postinst so we don't overwrite an + # existing file during bootstrap + if [[ ! -e ${ROOT}/etc/hosts ]]; then + cp ${ROOT}/usr/share/baselayout/hosts ${ROOT}/etc + fi + + # Under what circumstances would mtab be a symlink? It would be + # nice if there were an explanatory comment here + if [[ -L ${ROOT}/etc/mtab ]]; then + rm -f "${ROOT}/etc/mtab" + if [[ ${ROOT} == / ]]; then + cp /proc/mounts "${ROOT}/etc/mtab" + else + touch "${ROOT}/etc/mtab" + fi + fi + + # We should only install empty files if these files don't already exist. + [[ -e ${ROOT}/var/log/lastlog ]] || \ + touch "${ROOT}/var/log/lastlog" + [[ -e ${ROOT}/var/run/utmp ]] || \ + install -m 0664 -g utmp /dev/null "${ROOT}/var/run/utmp" + [[ -e ${ROOT}/var/log/wtmp ]] || \ + install -m 0664 -g utmp /dev/null "${ROOT}/var/log/wtmp" + + # Touching /etc/passwd and /etc/shadow after install can be fatal, as many + # new users do not update them properly. thus remove all ._cfg files if + # we are not busy with a bootstrap. + if ! use build && ! use bootstrap; then + einfo "Removing invalid backup copies of critical config files..." + rm -f "${ROOT}"/etc/._cfg????_{passwd,shadow} + fi + + # Reload init to fix unmounting problems of / on next reboot. + # This is really needed, as without the new version of init cause init + # not to quit properly on reboot, and causes a fsck of / on next reboot. + if [[ ${ROOT} == / ]] && ! use build && ! use bootstrap; then + # Do not return an error if this fails + /sbin/init U &>/dev/null + + # Regenerate init.d dependency tree + /sbin/depscan.sh &>/dev/null + + # Regenerate /etc/modules.conf, else it will fail at next boot + einfo "Updating module dependencies..." + /sbin/modules-update force &>/dev/null + else + rm -f ${ROOT}/etc/modules.conf + fi + + # Enable shadow groups (we need ROOT=/ here, as grpconv only + # operate on / ...). + if [[ ${ROOT} == / && \ + ! -f /etc/gshadow && -x /usr/sbin/grpck && -x /usr/sbin/grpconv ]] + then + if /usr/sbin/grpck -r &>/dev/null; then + /usr/sbin/grpconv + else + echo + ewarn "Running 'grpck' returned errors. Please run it by hand, and then" + ewarn "run 'grpconv' afterwards!" + echo + fi + fi + + # This is also written in src_install (so it's in CONTENTS), but + # write it here so that the new version is immediately in the file + # (without waiting for the user to do etc-update) + rm -f ${ROOT}/etc/._cfg????_gentoo-release + echo "Gentoo Base System version ${SV}" > ${ROOT}/etc/gentoo-release + + echo + einfo "Please be sure to update all pending '._cfg*' files in /etc," + einfo "else things might break at your next reboot! You can use 'etc-update'" + einfo "to accomplish this:" + einfo + einfo " # etc-update" + echo +} diff --git a/sys-apps/baselayout/files/digest-baselayout-1.9.4-r5 b/sys-apps/baselayout/files/digest-baselayout-1.9.4-r5 new file mode 100644 index 000000000000..83fef49503d3 --- /dev/null +++ b/sys-apps/baselayout/files/digest-baselayout-1.9.4-r5 @@ -0,0 +1,2 @@ +MD5 6ae4a8237a7e298097239e76eb7aff60 sysvinit-2.84.tar.gz 91488 +MD5 50a4484b06a87dce5e69b49da8715ed5 rc-scripts-1.4.16.tar.bz2 110599 diff --git a/sys-apps/baselayout/files/rc-scripts-1.4.16-splash.patch b/sys-apps/baselayout/files/rc-scripts-1.4.16-splash.patch new file mode 100644 index 000000000000..0809fdd07853 --- /dev/null +++ b/sys-apps/baselayout/files/rc-scripts-1.4.16-splash.patch @@ -0,0 +1,476 @@ +diff -Naur rc-scripts-1.4.16/sbin/functions.sh rc-scripts-1.4.16-splash/sbin/functions.sh +--- rc-scripts-1.4.16/sbin/functions.sh 2004-05-21 17:22:12.000000000 +0200 ++++ rc-scripts-1.4.16-splash/sbin/functions.sh 2004-10-13 22:55:09.272082704 +0200 +@@ -41,6 +41,17 @@ + # Override defaults with user settings ... + [ -f /etc/conf.d/rc ] && source /etc/conf.d/rc + ++# void splash(...) ++# ++# Notify bootsplash/splashutils/gensplash/whatever about ++# important events. ++# ++splash() { ++ return 0 ++} ++ ++# This will override the splash() function... ++[ -f /sbin/splash-functions.sh ] && source /sbin/splash-functions.sh + + # void get_bootconfig() + # +@@ -114,213 +125,6 @@ + return 0 + } + +-# +-# void splash_init (void) +-# +-splash_init() { +- pb_init=0 +- pb_count=0 +- pb_scripts=0 +- pb_rate=0 +- +- if [ ! -x /sbin/splash ] || \ +- [ -e /proc/version -a ! -e /proc/splash ] +- then +- return 0 +- fi +- +- if [ -f /etc/conf.d/bootsplash.conf ] +- then +- . /etc/conf.d/bootsplash.conf +- if [ -n "${PROGRESS_SYSINIT_RATE}" ] +- then +- rate=$((65535*${PROGRESS_SYSINIT_RATE}/100)) +- fi +- fi +- +- if [ "${RUNLEVEL}" = "S" ] +- then +- pb_scripts=5 +- pb_rate=16383 +- [ -n "${rate}" ] && pb_rate="${rate}" +- fi +- +- export pb_init pb_count pb_scripts pb_rate +-} +- +-# +-# void splash_calc (void) +-# +-splash_calc() { +- pb_runs=($(dolisting "/etc/runlevels/${SOFTLEVEL}/")) +- pb_runb=($(dolisting "/etc/runlevels/${BOOTLEVEL}/")) +- pb_scripts=${#pb_runs[*]} +- pb_boot=${#pb_runb[*]} +- +- [ ! -e /proc/splash -o ! -x /sbin/splash ] && return 0 +- +- if [ -f /etc/conf.d/bootsplash.conf ] +- then +- . /etc/conf.d/bootsplash.conf +- +- if [ -n "${PROGRESS_SYSINIT_RATE}" ] +- then +- init_rate=$((65535*${PROGRESS_SYSINIT_RATE}/100)) +- fi +- +- if [ -n "${PROGRESS_BOOT_RATE}" ] +- then +- boot_rate=$((65535*${PROGRESS_BOOT_RATE}/100)) +- fi +- fi +- +- # In runlevel boot we have 5 already started scripts +- # +- if [ "${RUNLEVEL}" = "S" -a "${SOFTLEVEL}" = "boot" ] +- then +- pb_started=($(dolisting "${svcdir}/started/")) +- pb_scripts=$((${pb_boot} - ${#pb_started[*]})) +- pb_init=16383 +- pb_rate=26213 +- pb_count=0 +- if [ -n "${init_rate}" -a -n "${boot_rate}" ] +- then +- pb_init="${init_rate}" +- pb_rate=$((${init_rate} + ${boot_rate})) +- fi +- elif [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ] +- then +- pb_started=($(dolisting "${svcdir}/started/")) +- pb_scripts=${#pb_started[*]} +- pb_rate=65534 +- else +- pb_init=26213 +- pb_rate=65534 +- if [ -n "${init_rate}" -a -n "${boot_rate}" ] +- then +- pb_init=$((${init_rate} + ${boot_rate})) +- fi +- fi +- +- echo "pb_init=${pb_init}" > "${svcdir}/progress" +- echo "pb_rate=${pb_rate}" >> "${svcdir}/progress" +- echo "pb_count=${pb_count}" >> "${svcdir}/progress" +- echo "pb_scripts=${pb_scripts}" >> "${svcdir}/progress" +-} +- +-# +-# void splash_update (char *fsstate, char *myscript, char *action) +-# +-splash_update() { +- local fsstate="$1" +- local myscript="$2" +- local action="$3" +- +- [ ! -e /proc/splash -o ! -x /sbin/splash ] && return 0 +- +- if [ "${fsstate}" = "inline" ] +- then +- /sbin/splash "${myscript}" "${action}" +- pb_count=$((${pb_count} + 1)) +- +- # Only needed for splash_debug() +- pb_execed="${pb_execed} ${myscript:-inline}" +- else +- # Update only runlevel scripts, no dependancies (only true for startup) +- if [ ! -L "${svcdir}/softscripts/${myscript}" ] +- then +- [ "${SOFTLEVEL}" != "reboot" -a \ +- "${SOFTLEVEL}" != "shutdown" ] && return +- fi +- # Source the current progress bar state +- [ -f "${svcdir}/progress" ] && source "${svcdir}/progress" +- +- # Do not update an already executed script +- for x in ${pb_execed} +- do +- [ "${x}" = "${myscript}" ] && return +- done +- +- /sbin/splash "${myscript}" "${action}" +- pb_count=$((${pb_count} + 1)) +- +- echo "pb_init=${pb_init}" > "${svcdir}/progress" +- echo "pb_rate=${pb_rate}" >> "${svcdir}/progress" +- echo "pb_count=${pb_count}" >> "${svcdir}/progress" +- echo "pb_scripts=${pb_scripts}" >> "${svcdir}/progress" +- echo "pb_execed=\"${pb_execed} ${myscript}\"" >> "${svcdir}/progress" +- fi +-} +- +-# +-# void splash_debug (char *softlevel) +-# +-splash_debug() { +- local softlevel="$1" +- +- [ ! -e /proc/splash -o ! -x /sbin/splash ] && return 0 +- +- if [ -f /etc/conf.d/bootsplash.conf ] +- then +- source /etc/conf.d/bootsplash.conf +- +- [ "${BOOTSPLASH_DEBUG}" = "yes" -a -n "${softlevel}" ] || return +- +- if [ -f "${svcdir}/progress" ] +- then +- cat "${svcdir}/progress" > "/var/log/bootsplash.${softlevel}" +- else +- echo "pb_init=${pb_init}" > "/var/log/bootsplash.${softlevel}" +- echo "pb_rate=${pb_rate}" >> "/var/log/bootsplash.${softlevel}" +- echo "pb_count=${pb_count}" >> "/var/log/bootsplash.${softlevel}" +- echo "pb_scripts=${pb_scripts}" >> "/var/log/bootsplash.${softlevel}" +- echo "pb_execed=\"${pb_execed}\"" >> "/var/log/bootsplash.${softlevel}" +- fi +- fi +-} +- +-update_splash_wrappers() { +- if [ -x /sbin/splash ] && \ +- ([ ! -e /proc/version ] || \ +- [ -e /proc/version -a -e /proc/splash ]) +- then +- rc_splash() { +- /sbin/splash $* +- } +- rc_splash_init() { +- splash_init $* +- } +- rc_splash_calc() { +- splash_calc $* +- } +- rc_splash_update() { +- splash_update $* +- } +- rc_splash_debug() { +- splash_debug $* +- } +- else +- rc_splash() { +- return 0 +- } +- rc_splash_init() { +- return 0 +- } +- rc_splash_calc() { +- return 0 +- } +- rc_splash_update() { +- return 0 +- } +- rc_splash_debug() { +- return 0 +- } +- fi +- +- export rc_splash rc_splash_init rc_splash_calc \ +- rc_splash_update rc_splash_debug +-} +- + # void esyslog(char* priority, char* tag, char* message) + # + # use the system logger to log a message +@@ -769,7 +573,6 @@ + setup_defaultlevels + fi + +- update_splash_wrappers + else + # Should we use colors ? + if [ "${*/depend}" = "$*" ] +diff -Naur rc-scripts-1.4.16/sbin/rc rc-scripts-1.4.16-splash/sbin/rc +--- rc-scripts-1.4.16/sbin/rc 2004-04-26 00:31:48.000000000 +0200 ++++ rc-scripts-1.4.16-splash/sbin/rc 2004-10-13 22:47:57.094783640 +0200 +@@ -22,13 +22,7 @@ + retval=$? + if [ "${retval}" -ne 0 ] + then +- # Progressbar begin +- if [ -c /dev/null ]; then +- rc_splash "stop" &>/dev/null & +- else +- rc_splash "stop" & +- fi +- # Progressbar end ++ splash "critical" & + + echo -e "${ENDCOL}${NORMAL}[${BAD} oops ${NORMAL}]" + echo +@@ -60,6 +54,7 @@ + then + if ! mkdir -p "$1" &>/dev/null + then ++ splash "critical" & + echo + eerror "For Gentoo Linux to function properly, \"$1\" need to exist." + eerror "Please mount your root partition read/write, and execute:" +@@ -119,10 +114,6 @@ + # Save $1 + argv1="$1" + +-# Progressbar begin +-rc_splash_init +-# Progressbar end +- + # First time boot stuff goes here. Note that 'sysinit' is an internal runlevel + # used to bring up local filesystems, and should not be started with /sbin/rc + # directly ... +@@ -282,12 +273,6 @@ + fi + fi + +- # Update splash wrappers. +- update_splash_wrappers +- # Progressbar begin +- rc_splash "text" +- # Progressbar end +- + if [ -x /sbin/irqbalance -a "$(get_KV)" -ge "$(KV_to_int '2.5.0')" ] + then + ebegin "Starting irqbalance" +@@ -366,20 +351,17 @@ + # defaults. + get_critical_services + ++ splash "rc_init" "${argv1}" ++ + # We do not want to break compatibility, so we do not fully integrate + # these into /sbin/rc, but rather start them by hand ... + for x in ${CRITICAL_SERVICES} + do +- # Progressbar begin +- rc_splash_update "inline" "${x}" "start" +- # Progressbar end ++ splash "svc_start" "${x}" + + if ! start_critical_service "${x}" + then +- # Progressbar begin +- rc_splash "stop" &> /dev/null & +- # Progressbar end +- ++ splash "critical" &> /dev/null & + echo + eerror "One of more critical startup scripts failed to start!" + eerror "Please correct this, and reboot ..." +@@ -390,7 +372,10 @@ + einfo "Rebooting" + /sbin/reboot -f + fi ++ ++ splash "svc_started" "${x}" "0" + done ++ + # Check that $svcdir exists ... + check_statedir "${svcdir}" + +@@ -426,19 +411,10 @@ + mark_service_started "${x}" + done + ) +-fi # Sysinit ends here +- +-# Update splash wrappers. +-update_splash_wrappers +- +-if [ "${RUNLEVEL}" = "S" -a "${argv1}" = "sysinit" ] +-then +- # Progressbar begin +- rc_splash_debug "${argv1}" +- # Progressbar end + exit 0 ++fi # Sysinit ends here + +-elif [ "${RUNLEVEL}" = "S" -a "${argv1}" = "boot" ] ++if [ "${RUNLEVEL}" = "S" -a "${argv1}" = "boot" ] + then + setup_defaultlevels + +@@ -492,10 +468,6 @@ + echo "${SOFTLEVEL}" > "${svcdir}/softlevel" + fi + +-# Progressbar begin +-rc_splash_calc +-# Progressbar end +- + # For keeping a list of services that fails during boot/halt + if [ ! -d "${svcdir}/failed" ] + then +@@ -504,6 +476,8 @@ + rm -rf "${svcdir}"/failed/* + fi + ++splash "rc_init" "${argv1}" ++ + if [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ] + then + myscripts= +@@ -686,10 +660,6 @@ + if [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ] + then + source /sbin/functions.sh +- +- # Progressbar begin +- rc_splash_debug "${SOFTLEVEL}" +- # Progressbar end + + # Make sure that our $svcdir are clean for next reboot ... + rm -rf "${svcdir}"/* +@@ -776,9 +746,6 @@ + # If we were in the boot runlevel, it is done now ... + [ -n "${BOOT}" ] && unset BOOT + +-# Progressbar begin +-rc_splash_debug "${SOFTLEVEL}" +-# Progressbar end +- ++splash "rc_exit" + + # vim:ts=4 +diff -Naur rc-scripts-1.4.16/sbin/rc-services.sh rc-scripts-1.4.16-splash/sbin/rc-services.sh +--- rc-scripts-1.4.16/sbin/rc-services.sh 2004-05-04 04:36:12.000000000 +0200 ++++ rc-scripts-1.4.16-splash/sbin/rc-services.sh 2004-10-13 22:50:54.664788896 +0200 +@@ -402,17 +402,22 @@ + # Start 'service' if it is not already running. + # + start_service() { +- [ -z "$1" ] && return 1 ++ local retval=0 + ++ [ -z "$1" ] && return 1 ++ + if ! service_started "$1" + then ++ splash "svc_start" "$1" + if is_fake_service "$1" "${SOFTLEVEL}" + then + mark_service_started "$1" ++ splash "svc_started" "$1" "0" + else + (. /sbin/runscript.sh "/etc/init.d/$1" start) +- +- return $? ++ retval="$?" ++ splash "svc_started" "$1" "${retval}" ++ return "${retval}" + fi + fi + +@@ -424,30 +429,34 @@ + # Stop 'service' if it is not already running. + # + stop_service() { ++ local retval=0 + [ -z "$1" ] && return 1 + + if service_started "$1" + then ++ splash "svc_stop" "$1" ++ + if is_runlevel_stop + then + if is_fake_service "$1" "${OLDSOFTLEVEL}" + then + mark_service_stopped "$1" +- ++ splash "svc_stopped" "$1" "0" + return 0 + fi + else + if is_fake_service "$1" "${SOFTLEVEL}" + then + mark_service_stopped "$1" +- ++ splash "svc_stopped" "$1" "0" + return 0 + fi + fi + + (. /sbin/runscript.sh "/etc/init.d/$1" stop) +- +- return $? ++ retval="$?" ++ splash "svc_stopped" "$1" "${retval}" ++ return "${retval}" + fi + + return 0 +diff -Naur rc-scripts-1.4.16/sbin/runscript.sh rc-scripts-1.4.16-splash/sbin/runscript.sh +--- rc-scripts-1.4.16/sbin/runscript.sh 2004-05-05 23:11:31.000000000 +0200 ++++ rc-scripts-1.4.16-splash/sbin/runscript.sh 2004-10-13 22:51:31.221231472 +0200 +@@ -453,11 +453,9 @@ + case "${arg}" in + stop) + svc_stop +- rc_splash_update "live" "${myservice}" "stop" + ;; + start) + svc_start +- rc_splash_update "live" "${myservice}" "start" + ;; + needsme|ineed|usesme|iuse|broken) + list_depend_trace "${arg}" -- cgit v1.2.3-65-gdbad