Package eudev: Specfile

Summary: eudev - an userspace implementation of devfs
Name: eudev
Version: 3.2.6
Release: alt1

Url: https://github.com/gentoo/eudev
Group: System/Configuration/Hardware
License: GPLv2+

Packager: Alexey Gladkov <legion@altlinux.ru>

Source0: %name-%version.tar
Source1: udev.filetrigger
Source2: udev-hwdb.filetrigger
Source3: udevd.init

Patch0: 0001-Rename-eudev-to-eudev.patch

Buildrequires: gperf
Buildrequires: util-linux
Buildrequires: libselinux-devel
Buildrequires: libkmod-devel
Buildrequires: libblkid-devel

%define _unpackaged_files_terminate_build 1

%description
Starting with the 2.5 kernel, all physical and virtual devices in a
system are visible to userspace in a hierarchal fashion through
sysfs. /sbin/hotplug provides a notification to userspace when any
device is added or removed from the system. Using these two features,
a userspace implementation of a dynamic /dev is now possible that can
provide a very flexible device naming policy

%package -n libeudev
Summary: Shared library to access udev device information
Group: System/Libraries

%description -n libeudev
This package provides shared library to access eudev device information

%package -n libeudev-devel
Summary:  Development libraries for eudev
Group:    Development/C
Requires: libeudev = %version-%release
Conflicts: libudev-devel

%description -n libeudev-devel
Header and Library files for doing development with the eudev.

%prep
%setup -q
%patch0 -p1

%build
autoreconf -f -i -s

%configure \
	--prefix=/ \
	--bindir=/bin \
	--sbindir=/sbin \
	--libdir=/lib \
	--enable-split-usr \
	--enable-manpages \
	--enable-hwdb \
	--enable-rule-generator \
#

%make_build

%install
%make_install install DESTDIR=%buildroot

# rpm posttrans filetriggers
install -pD -m755 %SOURCE1 %buildroot/%_rpmlibdir/eudev.filetrigger
install -pD -m755 %SOURCE2 %buildroot/%_rpmlibdir/eudev-hwdb.filetrigger

# service
install -pD -m755 %SOURCE3 %buildroot/%_initdir/eudevd

# Rename
mv -f -- %buildroot/%_man5dir/udev.conf.5 %buildroot/%_man5dir/eudev-udev.conf.5
mv -f -- %buildroot/%_man7dir/udev.7      %buildroot/%_man7dir/eudev.7
mv -f -- %buildroot/%_man8dir/udevd.8     %buildroot/%_man8dir/eudevd.8
mv -f -- %buildroot/%_man8dir/udevadm.8   %buildroot/%_man8dir/eudevadm.8

# Move *.pc to better place
mkdir -p -- %buildroot/%_pkgconfigdir
mv -f -- \
    %buildroot/lib/pkgconfig/*.pc \
    %buildroot/%_datadir/pkgconfig/*.pc \
    %buildroot/%_pkgconfigdir/

mkdir -p -- \
	%buildroot/%_sysconfdir/eudev/rules.d \
	%buildroot/%_sysconfdir/eudev/hwdb.d

cat >>%buildroot/%_sysconfdir/eudev/udev.conf <<EOF
# Whether to mount a tmpfs filesystem to \$udev_root
udev_tmpfs="1"

# tmpfs options. Note that size shouldn't be less than several
# megabytes due to insane format of current udev database
# (in /dev/.udevdb)
tmpfs_options="size=5m"
EOF

# Create ghost files
touch %buildroot%_sysconfdir/eudev/hwdb.bin

rm -rf -- \
	%buildroot/%_includedir/udev.h \
	%buildroot/%_pkgconfigdir/udev.pc \
	%buildroot/lib/*.la \
	%buildroot/lib/*.a

%pre
%_sbindir/groupadd -r -f cdrom >/dev/null 2>&1 ||:
%_sbindir/groupadd -r -f tape >/dev/null 2>&1 ||:
%_sbindir/groupadd -r -f dialout >/dev/null 2>&1 ||:
%_sbindir/groupadd -r -f input >/dev/null 2>&1 ||:
%_sbindir/groupadd -r -f video >/dev/null 2>&1 ||:
%_sbindir/groupadd -r -f render >/dev/null 2>&1 ||:

%post
%post_service eudevd

%preun
%preun_service eudevd

%files
%dir %_sysconfdir/eudev
%dir %_sysconfdir/eudev/rules.d
%dir %_sysconfdir/eudev/hwdb.d
%config(noreplace) %_sysconfdir/eudev/hwdb.d/*.hwdb
%config(noreplace) %_sysconfdir/eudev/*.conf
%ghost %_sysconfdir/eudev/hwdb.bin
%_initdir/eudevd
/bin/eudevadm
/sbin/eudevd
/sbin/eudevadm
/lib/eudev
%_rpmlibdir/eudev*.filetrigger
%_man5dir/eudev*
%_man7dir/eudev*
%_man8dir/eudev*

%files -n libeudev
/lib/libeudev.so.*

%files -n libeudev-devel
%_includedir/libudev.h
/lib/libeudev.so
%_pkgconfigdir/libudev.pc

%changelog
* Fri Sep 28 2018 Alexey Gladkov <legion@altlinux.ru> 3.2.6-alt1
- initial build for ALTLinux