# SliTaz package receipt.

PACKAGE="eudev"
VERSION="3.2.11"
CATEGORY="base-system"
SHORT_DESC="Programs for dynamic creation of devices nodes"
MAINTAINER="tcg.thegamer@gmail.com"
LICENSE="GPL2"
TARBALL="$PACKAGE-$VERSION.tar.gz"
WEB_SITE="https://dev.gentoo.org/~blueness/eudev/"
WGET_URL="https://github.com/eudev-project/$PACKAGE/releases/download/v$VERSION/$TARBALL"

DEPENDS=""
BUILD_DEPENDS="util-linux-ng-blkid-dev gperf kmod-dev"

compile_rules() {
	sed -r -i 's|/usr(/bin/test)|\1|' test/udev-test.pl
	sed -i '/keyboard_lookup_key/d' src/udev/udev-builtin-keyboard.c
	cat > config.cache <<"EOF"
HAVE_BLKID=1
BLKID_LIBS="-lblkid"
BLKID_CFLAGS="-I/include"
EOF

	./configure \
		--prefix=/usr \
		--bindir=/sbin \
		--sbindir=/sbin \
		--libdir=/usr/lib \
		--sysconfdir=/etc \
		--libexecdir=/lib \
		--with-rootprefix= \
		--with-rootlibdir=/lib \
		--disable-static \
		--config-cache \
		--enable-kmod \
		--enable-rule-generator \
		$CONFIGURE_ARGS

	make &&
	make DESTDIR=$install install || return 1

	cp $stuff/*.rules $install/etc/udev/rules.d
	cp -a $stuff/udev/* $install/lib/udev

	chown -R root:root $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                       
                                                                  
        # 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
}