diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2002-09-07 22:40:50 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2002-09-07 22:40:50 +0000 |
commit | ef4ecdcf5cce93bf82be9b5ab4116ad0bf407004 (patch) | |
tree | d4410844b7b66f3702cc7068218afa9ef3682d43 /sys-apps | |
parent | mask new xfree and co (diff) | |
download | gentoo-2-ef4ecdcf5cce93bf82be9b5ab4116ad0bf407004.tar.gz gentoo-2-ef4ecdcf5cce93bf82be9b5ab4116ad0bf407004.tar.bz2 gentoo-2-ef4ecdcf5cce93bf82be9b5ab4116ad0bf407004.zip |
new version
Diffstat (limited to 'sys-apps')
-rw-r--r-- | sys-apps/baselayout/ChangeLog | 7 | ||||
-rw-r--r-- | sys-apps/baselayout/baselayout-1.8.3.ebuild | 477 | ||||
-rw-r--r-- | sys-apps/baselayout/files/digest-baselayout-1.8.3 | 1 | ||||
-rw-r--r-- | sys-apps/baselayout/files/rc-scripts-1.4.0.tar.bz2 | bin | 0 -> 67014 bytes |
4 files changed, 484 insertions, 1 deletions
diff --git a/sys-apps/baselayout/ChangeLog b/sys-apps/baselayout/ChangeLog index 7679793e5577..6c8ea168d425 100644 --- a/sys-apps/baselayout/ChangeLog +++ b/sys-apps/baselayout/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sys-apps/baselayout # Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL -# $Header: /var/cvsroot/gentoo-x86/sys-apps/baselayout/ChangeLog,v 1.34 2002/09/05 21:32:23 azarah Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/baselayout/ChangeLog,v 1.35 2002/09/07 22:40:50 azarah Exp $ + +*baselayout-1.8.3 (7 Sep 2002) + + 7 Sep 2002; Martin Schlemmer <azarah@gentoo.org> baselayout-1.8.3.ebuild : + Get things ready for suid utmp stuff for xterms .. bug #7630. 5 Sep 2002; Martin Schlemmer <azarah@gentoo.org> baselayout-1.8.2.ebuild : Remove /etc/termcap. Anything that needs it, should depend on diff --git a/sys-apps/baselayout/baselayout-1.8.3.ebuild b/sys-apps/baselayout/baselayout-1.8.3.ebuild new file mode 100644 index 000000000000..c4cd7761cdf9 --- /dev/null +++ b/sys-apps/baselayout/baselayout-1.8.3.ebuild @@ -0,0 +1,477 @@ +# Copyright 1999-2002 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/baselayout/baselayout-1.8.3.ebuild,v 1.1 2002/09/07 22:40:50 azarah Exp $ + +SV="1.4.0" +SVREV="" +#sysvinit version +SVIV="2.84" + +S=${WORKDIR}/rc-scripts-${SV} +S2=${WORKDIR}/sysvinit-${SVIV}/src +DESCRIPTION="Base layout for Gentoo Linux filesystem (incl. initscripts and sysvinit)" +SRC_URI="ftp://ftp.cistron.nl/pub/people/miquels/software/sysvinit-${SVIV}.tar.gz + ftp://unsite.unc.edu/pub/Linux/system/daemons/init/sysvinit-${SVIV}.tar.gz" +# http://www.ibiblio.org/gentoo/distfiles/rc-scripts-${SV}.tar.bz2" +HOMEPAGE="http://www.gentoo.org/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="x86 ppc sparc sparc64" + +DEPEND="sys-kernel/linux-headers + >=sys-apps/portage-2.0.23" +# We need at least portage-2.0.23 to handle these DEPEND's properly. + +RDEPEND="${DEPEND} + || ( >=sys-apps/gawk-3.1.0-r3 + ( !build? ( >=sys-apps/gawk-3.1.0-r3 ) ) + ( !bootstrap? ( >=sys-apps/gawk-3.1.0-r3 ) ) + )" +# 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. + + +#This ebuild needs to be merged "live". You can't simply make a package of it and merge it later. + +pkg_setup() { + + if [ "${ROOT}" = "/" ] + then + #make sure we do not kill X because of the earlier bad /etc/inittab we used. + if [ -L ${svcdir}/started/xdm ] && \ + [ -n "`egrep 'x:3:respawn:/etc/X11/startDM.sh' /etc/inittab`" ] && \ + [ -n "`ps -A | egrep "X"`" ] + then + echo + einfo "!!! With the current version of baselayout installed (1.7.3-r1), merging" + einfo " this version of baselayout will cause X to die if you started it" + einfo " with the /etc/init.d/xdm script!!!!" + echo + einfo "Please quit X and then merge this again." + die + fi + fi +} + +src_unpack() { + + unpack sysvinit-${SVIV}.tar.gz + + echo ">>> Unpacking rc-scripts-${SV}${SVREV}.tar.bz2" + tar -jxf ${FILESDIR}/rc-scripts-${SV}${SVREV}.tar.bz2 || die + + #fix CFLAGS for sysvinit stuff + cd ${S2} + cp Makefile Makefile.orig + sed -e "s:-O2:${CFLAGS}:" Makefile.orig >Makefile || die + if [ -n "`use build`" ] + then + #do not build sulogin, as it needs libcrypt which is not in the + #build image. + cp Makefile Makefile.orig + sed -e 's:PROGS\t= init halt shutdown killall5 runlevel sulogin:PROGS\t= init halt shutdown killall5 runlevel:g' \ + Makefile.orig > Makefile || die + fi + + # Fix Sparc specific stuff + if [ "${ARCH}" = "sparc" -o "${ARCH}" = "sparc64" ] + then + cd ${S}/etc + cp rc.conf rc.conf.orig + sed -e 's:KEYMAP="us":KEYMAP="sun":' rc.conf.orig >rc.conf || die + rm -f rc.conf.orig + + cp inittab inittab.orig + sed -e 's"# TERMINALS"# SERIAL CONSOLE\nc0:12345:respawn:/sbin/agetty 9600 ttyS0 linux\n\n# TERMINALS"' \ + inittab.orig > inittab || die + rm -f inittab.orig + fi +} + +src_compile() { + + cp ${S}/sbin/runscript.c ${T} + cp ${S}/sbin/start-stop-daemon.c ${T} + + cd ${T} + gcc ${CFLAGS} runscript.c -o runscript || die "cant compile runscript.c" + gcc ${CFLAGS} start-stop-daemon.c -o start-stop-daemon || die "cant compile start-stop-daemon.c" + echo ${ROOT} > ${T}/ROOT + + if [ -z "`use build`" ] + then + # build sysvinit stuff + cd ${S2} + emake LDFLAGS="" || die "problem compiling sysvinit" + fi +} + +defaltmerge() { + + #define the "altmerge" variable. + altmerge=0 + #special ${T}/ROOT hack because ROOT gets automatically unset during src_install() + #(because it conflicts with some makefiles) + local ROOT="" + ROOT="`cat ${T}/ROOT`" + if [ -z "`use bootstrap`" -a -z "`use build`" -a -e ${ROOT}/dev/.devfsd ] + then + # we're installing to a system that has devfs enabled; don't create device + # nodes. + altmerge=1 + fi +} + + +src_install() { + + local foo="" + defaltmerge + keepdir /sbin + exeinto /sbin + doexe ${T}/runscript + doexe ${T}/start-stop-daemon + + keepdir /usr + keepdir /usr/bin + keepdir /usr/lib + keepdir /usr/sbin + #dont install run-crons anymore, as sys-apps/cronbase installs it now + #dosbin ${S}/sbin/MAKEDEV ${S}/sbin/run-crons ${S}/sbin/update-modules + dosbin ${S}/sbin/MAKEDEV ${S}/sbin/update-modules + keepdir /var /var/run /var/lock/subsys + dosym ../var/tmp /usr/tmp + + keepdir /home + keepdir /usr/include /usr/src /usr/portage + keepdir /usr/X11R6/include/{X11,GL} /usr/X11R6/lib/X11 + + dosym ../X11R6/include/X11 /usr/include/X11 + dosym ../X11R6/include/GL /usr/include/GL + dosym ../X11R6/lib/X11 /usr/lib/X11 + + #dosym ../src/linux/include/linux /usr/include/linux + #dosym ../src/linux/include/asm-i386 /usr/include/asm + #Important note: Gentoo Linux 1.0_rc6 no longer uses symlinks to /usr/src for includes. + #We now rely on the special sys-kernel/linux-headers package, which takes a snapshot of + #the currently-installed includes in /usr/src and copies them to /usr/include/linux and + #/usr/include/asm. This is the recommended approach so that kernel includes can remain + #constant. The kernel includes should really only be upgraded when you upgrade glibc. + keepdir /usr/include/linux /usr/include/asm + keepdir /usr/share/man /usr/share/info /usr/share/doc /usr/share/misc + + for foo in games lib sbin share bin share/doc share/man src + do + keepdir /usr/local/${foo} + done + #local FHS compat symlinks + dosym share/man /usr/local/man + dosym share/doc /usr/local/doc + + #FHS compatibility symlinks stuff + dosym share/man /usr/man + dosym share/doc /usr/doc + dosym share/info /usr/info + keepdir /usr/X11R6/share + dosym ../../share/info /usr/X11R6/share/info + #end FHS compatibility symlinks stuff + + doman ${FILESDIR}/MAKEDEV.8 ${S}/man/* + dodoc ${FILESDIR}/copyright + dodoc ${S}/ChangeLog + keepdir /usr/X11R6/lib /usr/X11R6/man + keepdir /var/log/news + + #supervise stuff depreciated + #dodir /var/lib/supervise + #install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/control + #install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/services + #end supervise stuff + + keepdir /opt + + #the .keep file messes up Portage when looking in /var/db/pkg + dodir /var/db/pkg + keepdir /var/spool /var/tmp /var/lib/misc + chmod 1777 ${D}/var/tmp + keepdir /root + + #/proc is very likely mounted right now so a keepdir will fail on merge + dodir /proc + + chmod go-rx ${D}/root + keepdir /tmp /var/lock + chmod 1777 ${D}/tmp + chmod 1777 ${D}/var/tmp + chown root.uucp ${D}/var/lock + chmod 775 ${D}/var/lock + insopts -m0644 + + # bug #5359 (FHS complience) + keepdir /etc/opt + + insinto /etc + ln -s ../proc/filesystems ${D}/etc/filesystems + for foo in hourly daily weekly monthly + do + keepdir /etc/cron.${foo} + done + for foo in ${S}/etc/* + do + #install files, not dirs + [ -f ${foo} ] && doins ${foo} + done + chmod go-rwx ${D}/etc/shadow + keepdir /lib /mnt/floppy /mnt/cdrom + chmod go-rwx ${D}/mnt/floppy ${D}/mnt/cdrom + + keepdir /lib/dev-state + if [ "${altmerge}" -eq "1" ] + then + #rootfs and devfs + dosym /usr/sbin/MAKEDEV /lib/dev-state/MAKEDEV + #this is not needed anymore... + #keepdir /lib/dev-state/pts /lib/dev-state/shm + else + #normal + keepdir /dev + keepdir /dev/pts /dev/shm + dosym /usr/sbin/MAKEDEV /dev/MAKEDEV + fi + + cd ${S}/sbin + into / + dosbin rc rc-update + + if [ -z "`use build`" ] + then + #install sysvinit stuff + cd ${S2} + 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 + + #sysvinit docs + cd ${S2}/../ + doman man/*.[1-9] + docinto sysvinit-${SVIV} + dodoc COPYRIGHT README doc/* + fi + + #env-update stuff + keepdir /etc/env.d + insinto /etc/env.d + doins ${S}/etc/env.d/00basic + + keepdir /etc/modules.d + insinto /etc/modules.d + doins ${S}/etc/modules.d/aliases ${S}/etc/modules.d/i386 + + keepdir /etc/conf.d + insinto /etc/conf.d + for foo in ${S}/etc/conf.d/* + do + [ -f ${foo} ] && doins ${foo} + done + #/etc/conf.d/net.ppp* should only be readible by root + chmod 0600 ${D}/etc/conf.d/net.ppp* + + #this seems the best place for templates .. any ideas ? + #NB: if we move this, then $TEMPLATEDIR in net.ppp0 need to be updated as well + keepdir /etc/ppp + insinto /etc/ppp + doins ${S}/etc/ppp/chat-default + + dodir /etc/init.d + exeinto /etc/init.d + for foo in ${S}/init.d/* + do + [ -f ${foo} ] && doexe ${foo} + done + #/etc/init.d/net.ppp* should only be readible by root +# chmod 0600 ${D}/etc/init.d/net.ppp* + + #these moved from /etc/init.d/ to /sbin to help newb systems + #from breaking + exeinto /sbin + doexe ${S}/sbin/depscan.sh + doexe ${S}/sbin/runscript.sh + doexe ${S}/sbin/functions.sh + doexe ${S}/sbin/rc-envupdate.sh + doexe ${S}/sbin/rc-help.sh + #compat symlinks (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 + + dodir /etc/skel + insinto /etc/skel + for foo in $(find ${S}/etc/skel -type f -maxdepth 1) + do + [ -f ${foo} ] && doins ${foo} + done + + keepdir ${svcdir} >/dev/null 2>&1 + + #skip this if we are merging to ROOT + [ "${ROOT}" = "/" ] && return 0 + + #set up default runlevel symlinks + local bar="" + for foo in default boot nonetwork single + do + keepdir /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 + +} + +pkg_preinst() { + #make sure symlinks of these get installed. + if [ -e ${ROOT}/etc/init.d/depscan.sh ] && \ + [ ! -L ${ROOT}/etc/init.d/depscan.sh ] + then + rm -f ${ROOT}/etc/init.d/depscan.sh + fi + if [ -e ${ROOT}/etc/init.d/runscript.sh ] && \ + [ ! -L ${ROOT}/etc/init.d/runscript.sh ] + then + rm -f ${ROOT}/etc/init.d/runscript.sh + fi + if [ -e ${ROOT}/etc/init.d/functions.sh ] && \ + [ ! -L ${ROOT}/etc/init.d/functions.sh ] + then + rm -f ${ROOT}/etc/init.d/functions.sh + fi + if [ -e ${ROOT}/etc/init.d/rc-help.sh ] + then + rm -f ${ROOT}/etc/init.d/rc-help.sh + fi +} + +pkg_postinst() { + + #doing device node creation in pkg_postinst() now so they aren't recorded in CONTENTS. + #latest CVS-only version of Portage doesn't record device nodes in CONTENTS at all. + defaltmerge + # we dont 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 [ "${altmerge}" -eq "0" ] + then + cd ${ROOT}/dev + #These devices are also needed by many people and should be included + einfo "Making device nodes (this could take a minute or so...)" + + case ${ARCH} in + x86) + einfo "Using generic-i386 to make device nodes..." + ${ROOT}/usr/sbin/MAKEDEV generic-i386 + ;; + ppc) + einfo "Using generic-powerpc to make device nodes..." + ${ROOT}/usr/sbin/MAKEDEV generic-powerpc + ;; + sparc|sparc64) + einfo "Using generic-sparc to make device nodes..." + ${ROOT}/usr/sbin/MAKEDEV generic-sparc + ;; + *) + einfo "Using generic-i386 to make device nodes..." + ${ROOT}/usr/sbin/MAKEDEV generic-i386 + ;; + esac + + ${ROOT}/usr/sbin/MAKEDEV sg + ${ROOT}/usr/sbin/MAKEDEV scd + ${ROOT}/usr/sbin/MAKEDEV rtc + ${ROOT}/usr/sbin/MAKEDEV audio + ${ROOT}/usr/sbin/MAKEDEV hde + ${ROOT}/usr/sbin/MAKEDEV hdf + ${ROOT}/usr/sbin/MAKEDEV hdg + ${ROOT}/usr/sbin/MAKEDEV hdh + fi + #we create the /boot directory here so that /boot doesn't get deleted when a previous + #baselayout is unmerged with /boot unmounted. + install -d ${ROOT}/boot + if [ ! -L ${ROOT}/boot/boot ] + then + ln -snf . ${ROOT}/boot/boot + fi + #we create this here so we don't overwrite an existing /etc/hosts during bootstrap + if [ ! -e ${ROOT}/etc/hosts ] + then + cat << EOF >> ${ROOT}/etc/hosts +127.0.0.1 localhost +EOF + fi + 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. + local x="" + for x in log/lastlog run/utmp log/wtmp + do + [ -e ${ROOT}/var/${x} ] || touch ${ROOT}/var/${x} + done + for x in run/utmp log/wtmp + do + chgrp utmp ${ROOT}/var/${x} + chmod 0664 ${ROOT}/var/${x} + done + + + #handle the ${svcdir} that changed in location + if [ ! -d ${ROOT}/${svcdir}/started/ ] && \ + [ -z "`use bootstrap`" -a -z "`use build`" ] + then + mkdir -p ${ROOT}/${svcdir} + mount -t tmpfs tmpfs ${ROOT}/${svcdir} + if [ -d ${ROOT}/dev/shm/.init.d ] + then + cp -ax ${ROOT}/dev/shm/.init.d/. ${ROOT}/${svcdir} + fi + fi + + #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 [ -z "`use build`" -a -z "`use bootstrap`" ] + then + ewarn "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}" = "/" -a -z "`use build`" -a -z "`use bootstrap`" ] + then + #do not return an error if this fails + /sbin/init U &>/dev/null || : + fi +} + +pkg_postrm() { + + # Fix problematic links + ln -snf ../X11R6/include/X11 ${ROOT}/usr/include/X11 + ln -snf ../X11R6/include/GL ${ROOT}/usr/include/GL + ln -snf ../X11R6/lib/X11 ${ROOT}/usr/lib/X11 +} + diff --git a/sys-apps/baselayout/files/digest-baselayout-1.8.3 b/sys-apps/baselayout/files/digest-baselayout-1.8.3 new file mode 100644 index 000000000000..369032eee571 --- /dev/null +++ b/sys-apps/baselayout/files/digest-baselayout-1.8.3 @@ -0,0 +1 @@ +MD5 6ae4a8237a7e298097239e76eb7aff60 sysvinit-2.84.tar.gz 91488 diff --git a/sys-apps/baselayout/files/rc-scripts-1.4.0.tar.bz2 b/sys-apps/baselayout/files/rc-scripts-1.4.0.tar.bz2 Binary files differnew file mode 100644 index 000000000000..a51cb10cafdd --- /dev/null +++ b/sys-apps/baselayout/files/rc-scripts-1.4.0.tar.bz2 |