# SliTaz package receipt.

PACKED_SIZE="156.0K"
UNPACKED_SIZE="912.0K"
PACKAGE="udev"
VERSION="182"
BUILD_WARNING="Install new udev package and rebuild hal"
CATEGORY="base-system"
SHORT_DESC="Udev creat automaticly right devices in /dev."
MAINTAINER="pankso@slitaz.org"
LICENSE="GPL2"
TARBALL="$PACKAGE-$VERSION.tar.xz"
WEB_SITE="http://www.freedesktop.org/software/systemd/man/udev.html"
WGET_URL="http://www.kernel.org/pub/linux/utils/kernel/hotplug/$TARBALL"
HOST_ARCH="i486 arm"

DEPENDS="util-linux-blkid pciids usbids acl kmod"
BUILD_DEPENDS="util-linux-blkid-dev gperf pkg-config pciutils acl-dev \
libgio-dev usbutils-dev libusb-dev glib-dev pciids usbids kmod-dev \
libgudev-dev pcre-dev liblzma-dev util-linux-uuid-dev"

# Use build host: gperf
case "$ARCH" in
	arm*) BUILD_DEPENDS="util-linux-blkid-dev kmod-dev acl-dev glib-dev"
esac

# Rules to configure and make the package.
compile_rules()
{
	case "$ARCH" in
		arm*) 
			# ARM Hack
			for la in libgthread-2.0.la libglib-2.0.la
			do
				if grep -q "^libdir='/usr/lib'" /usr/lib/${la}; then
					sed -i s"#/usr/lib#/cross/$ARCH/sysroot/usr/lib#" \
						/usr/lib/${la}
				fi 
			done ;;
	esac
	./configure \
		--exec-prefix="" \
		--with-rootprefix="" \
		--bindir=/sbin \
		--sysconfdir=/etc \
		--libexecdir=/lib \
		--disable-manpages \
		--disable-introspection \
		--disable-keymap \
		--enable-floppy \
		--enable-rule_generator \
		--with-pci-ids-path=/usr/share/misc/pci.ids.gz \
		--with-usb-ids-path=/usr/share/misc/usb.ids.gz \
		--with-systemdsystemunitdir=no \
		$CONFIGURE_ARGS &&
	make && make install
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
	mkdir -p $fs/lib/firmware

	cp -a $install/sbin $fs
	cp -a $install/etc $fs
	cp -a $install/lib/libudev*so* $fs/lib
	cp -a $install/lib/udev $fs/lib

	# Have udevd in PATH
	mv $fs/lib/udev/udevd $fs/sbin

	# Copy rules files to udev conf dir
	mv -f $fs/lib/udev/rules.d $fs/etc/udev
	cp $stuff/udev.conf $fs/etc/udev
	cp $stuff/*.rules $fs/etc/udev/rules.d

	# Create some devices and directories that Udev cannot handle
	# due to them being required very early in the boot process
	mkdir -p $fs/lib/udev/devices/pts
	mkdir -p $fs/lib/udev/devices/shm
	mknod -m 0666 $fs/lib/udev/devices/null c 1 3

	# Fix permissions
	chmod +x $fs/lib/udev/*
	chown -R root.root $fs
}

list_udev_group()
{
    object=$2
    [ -n "$object" ] || object=GROUP
    grep $object $1/etc/udev/rules.d/* | \
        sed 's/.*GROUP="\([a-zA-Z0-9]*\)".*/\1/' | sort | uniq
}

post_install()
{
    # Sanity check for udev+ldap boot
    list_udev_group "$1" GROUP | while read x ; do
        grep -q ^$x: $1/etc/group || chroot $1/ addgroup -S $x
    done
    list_udev_group "$1" OWNER | while read x ; do
        grep -q ^$x: $1/etc/passwd || chroot $1/ adduser -S -D -H $x
    done
}
