diff options
author | 2010-03-15 00:21:50 +0000 | |
---|---|---|
committer | 2010-03-15 00:21:50 +0000 | |
commit | a9f4d0982249b563b7e4fb5a139d371c504b2e00 (patch) | |
tree | d1eb6597beb2a9ca6f0490744207f04da5cd18d1 /sys-apps/busybox | |
parent | Version bump for ferringb. (diff) | |
download | gentoo-2-a9f4d0982249b563b7e4fb5a139d371c504b2e00.tar.gz gentoo-2-a9f4d0982249b563b7e4fb5a139d371c504b2e00.tar.bz2 gentoo-2-a9f4d0982249b563b7e4fb5a139d371c504b2e00.zip |
import mdev.conf support scripts from Aline Linux 1.10.0
(Portage version: 2.1.8.2/cvs/Linux x86_64)
Diffstat (limited to 'sys-apps/busybox')
-rw-r--r-- | sys-apps/busybox/ChangeLog | 7 | ||||
-rw-r--r-- | sys-apps/busybox/busybox-1.16.0.ebuild | 13 | ||||
-rw-r--r-- | sys-apps/busybox/files/mdev/dvbdev | 18 | ||||
-rw-r--r-- | sys-apps/busybox/files/mdev/ide_links | 23 | ||||
-rw-r--r-- | sys-apps/busybox/files/mdev/usbdev | 62 | ||||
-rw-r--r-- | sys-apps/busybox/files/mdev/usbdisk_link | 34 | ||||
-rw-r--r-- | sys-apps/busybox/metadata.xml | 2 |
7 files changed, 153 insertions, 6 deletions
diff --git a/sys-apps/busybox/ChangeLog b/sys-apps/busybox/ChangeLog index f39e4cb87d53..8969acc2791e 100644 --- a/sys-apps/busybox/ChangeLog +++ b/sys-apps/busybox/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sys-apps/busybox # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/ChangeLog,v 1.244 2010/03/14 22:29:12 maekke Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/ChangeLog,v 1.245 2010/03/15 00:21:50 solar Exp $ + + 15 Mar 2010; <solar@gentoo.org> busybox-1.16.0.ebuild, +files/mdev/dvbdev, + +files/mdev/ide_links, +files/mdev/usbdev, +files/mdev/usbdisk_link, + metadata.xml: + import mdev.conf support scripts from Aline Linux 1.10.0 14 Mar 2010; Markus Meier <maekke@gentoo.org> busybox-1.15.3.ebuild: amd64 stable, bug #305619 diff --git a/sys-apps/busybox/busybox-1.16.0.ebuild b/sys-apps/busybox/busybox-1.16.0.ebuild index 7b2a03185011..cd3139bf1f31 100644 --- a/sys-apps/busybox/busybox-1.16.0.ebuild +++ b/sys-apps/busybox/busybox-1.16.0.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/busybox-1.16.0.ebuild,v 1.2 2010/03/14 21:49:33 solar Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/busybox-1.16.0.ebuild,v 1.3 2010/03/15 00:21:50 solar Exp $ EAPI=2 inherit eutils flag-o-matic savedconfig toolchain-funcs @@ -200,11 +200,16 @@ src_install() { dobin bb || die fi if use mdev; then + dodir /$(get_libdir)/mdev/ use make-symlinks || dosym /bin/bb /sbin/mdev cp "${S}"/examples/mdev_fat.conf "${D}"/etc/mdev.conf + + exeinto /$(get_libdir)/mdev/ + doexe "${FILESDIR}"/mdev/* + + insinto /$(get_libdir)/rcscripts/addons + doins "${FILESDIR}"/mdev-start.sh || die fi - insinto /$(get_libdir)/rcscripts/addons - doins "${FILESDIR}"/mdev-start.sh || die # bundle up the symlink files for use later emake install || die @@ -221,7 +226,7 @@ src_install() { dodoc *.txt docinto pod dodoc *.pod - dohtml *.html *.sgml + dohtml *.html cd ../examples || die docinto examples diff --git a/sys-apps/busybox/files/mdev/dvbdev b/sys-apps/busybox/files/mdev/dvbdev new file mode 100644 index 000000000000..f0186c176cd8 --- /dev/null +++ b/sys-apps/busybox/files/mdev/dvbdev @@ -0,0 +1,18 @@ +#!/bin/sh + +# MDEV=dvb0.demux1 -> ADAPTER=dvb0 -> N=0 +ADAPTER=${MDEV%.*} +N=${ADAPTER#dvb} +# MDEV=dvb0.demux1 -> DEVB_DEV=demux1 +DVB_DEV=${MDEV#*.} + +case "$ACTION" in + add|"") + mkdir -p dvb/adapter${N} + mv ${MDEV} dvb/adapter${N}/${DVB_DEV} + ;; + remove) + rm -f dvb/adapter${N}/${DVB_DEV} + rmdir dvb/adapter${N} 2>/dev/null + rmdir dvb/ 2>/dev/null +esac diff --git a/sys-apps/busybox/files/mdev/ide_links b/sys-apps/busybox/files/mdev/ide_links new file mode 100644 index 000000000000..be0c95aa9c0e --- /dev/null +++ b/sys-apps/busybox/files/mdev/ide_links @@ -0,0 +1,23 @@ +#!/bin/sh + +[ -f /proc/ide/$MDEV/media ] || exit + +media=`cat /proc/ide/$MDEV/media` +for i in $media $media[0-9]* ; do + if [ "`readlink $i 2>/dev/null`" = $MDEV ] ; then + LINK=$i + break + fi +done + +# link exist, remove if necessary and exit +if [ "$LINK" ] ; then + [ "$ACTION" = remove ] && rm $LINK + exit +fi + +# create a link +num=`ls $media[0-9]* 2>/dev/null | wc -l` +ln -sf $MDEV "$media`echo $num`" +[ -e "$media" ] || ln -sf $MDEV "$media" + diff --git a/sys-apps/busybox/files/mdev/usbdev b/sys-apps/busybox/files/mdev/usbdev new file mode 100644 index 000000000000..ea5b9155736c --- /dev/null +++ b/sys-apps/busybox/files/mdev/usbdev @@ -0,0 +1,62 @@ +#!/bin/sh + +# script is buggy; until patched just do exit 0 +#exit 0 + +# add zeros to device or bus +add_zeros () { + case "$(echo $1 | wc -L)" in + 1) echo "00$1" ;; + 2) echo "0$1" ;; + *) echo "$1" + esac + exit 0 +} + + +# bus and device dirs in /sys +USB_PATH=$(echo $MDEV | sed -e 's/usbdev\([0-9]\).[0-9]/usb\1/') +USB_PATH=$(find /sys/devices -type d -name "$USB_PATH") +USB_DEV_DIR=$(echo $MDEV | sed -e 's/usbdev\([0-9]\).\([0-9]\)/\1-\2/') + +# dir names in /dev +BUS=$(add_zeros $(echo $MDEV | sed -e 's/^usbdev\([0-9]\).[0-9]/\1/')) +USB_DEV=$(add_zeros $(echo $MDEV | sed -e 's/^usbdev[0-9].\([0-9]\)/\1/')) + + +# try to load the proper driver for usb devices +case "$ACTION" in + add|"") + # load usb bus driver + for i in $USB_PATH/*/modalias ; do + modprobe `cat $i` 2>/dev/null + done + # load usb device driver if existent + if [ -d $USB_PATH/$USB_DEV_DIR ]; then + for i in $USB_PATH/$USB_DEV_DIR/*/modalias ; do + modprobe `cat $i` 2>/dev/null + done + fi + # move usb device file + mkdir -p bus/usb/$BUS + mv $MDEV bus/usb/$BUS/$USB_DEV + ;; + remove) + # unload device driver, if device dir is existent + if [ -d $USB_PATH/$USB_DEV_DIR ]; then + for i in $USB_PATH/$USB_DEV_DIR/*/modalias ; do + modprobe -r `cat $i` 2>/dev/null + done + fi + # unload usb bus driver. Does this make sense? + # what happens, if two usb devices are plugged in + # and one is removed? + for i in $USB_PATH/*/modalias ; do + modprobe -r `cat $i` 2>/dev/null + done + # remove device file and possible empty dirs + rm -f bus/usb/$BUS/$USB_DEV + rmdir bus/usb/$BUS/ 2>/dev/null + rmdir bus/usb/ 2>/dev/null + rmdir bus/ 2>/dev/null +esac diff --git a/sys-apps/busybox/files/mdev/usbdisk_link b/sys-apps/busybox/files/mdev/usbdisk_link new file mode 100644 index 000000000000..750242bb5cfc --- /dev/null +++ b/sys-apps/busybox/files/mdev/usbdisk_link @@ -0,0 +1,34 @@ +#!/bin/sh + +# NOTE: since mdev -s only provide $MDEV, don't depend on any hotplug vars. + +current=$(readlink usbdisk) + +if [ "$current" = "$MDEV" ] && [ "$ACTION" = "remove" ]; then + rm -f usbdisk usba1 +fi +[ -n "$current" ] && exit + +if [ -e /sys/block/$MDEV ]; then + SYSDEV=$(readlink -f /sys/block/$MDEV/device) + # if /sys device path contains '/usb[0-9]' then we assume its usb + # also, if its an usb without partitions we require FAT + if [ "${SYSDEV##*/usb[0-9]}" != "$SYSDEV" ]; then + # do not create link if there is not FAT + dd if=/dev/$MDEV bs=512 count=1 2>/dev/null | strings | grep FAT >/dev/null || exit 0 + + ln -sf $MDEV usbdisk + # keep this for compat. people have it in fstab + ln -sf $MDEV usba1 + fi + +elif [ -e /sys/block/*/$MDEV ] ; then + PARENT=$(dirname /sys/block/*/$MDEV) + SYSDEV=$(readlink -f $PARENT/device) + if [ "${SYSDEV##*/usb[0-9]}" != "$SYSDEV" ]; then + ln -sf $MDEV usbdisk + # keep this for compat. people have it in fstab + ln -sf $MDEV usba1 + fi +fi + diff --git a/sys-apps/busybox/metadata.xml b/sys-apps/busybox/metadata.xml index 53c8e5b1cd10..38a4c15a0b94 100644 --- a/sys-apps/busybox/metadata.xml +++ b/sys-apps/busybox/metadata.xml @@ -4,6 +4,6 @@ <herd>embedded</herd> <use> <flag name="make-symlinks">Create all the appropriate symlinks in /bin and /sbin.</flag> -<flag name="mdev">Create the appropriate symlink in /sbin and install mdev.conf</flag> +<flag name="mdev">Create the appropriate symlink in /sbin and install mdev.conf and support files</flag> </use> </pkgmetadata> |