Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37908744
en ru br
ALT Linux repos
5.0: 141-alt1
4.1: 118-alt1.M41.2
4.0: 108-alt2.M40.1
+updates:108-alt2.M40.1
3.0: 0.70-alt1
+updates:0.70-alt2

Group :: System/Configuration/Hardware
RPM: udev

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Name: udev
Version: 141
Release: alt1
Summary: udev - an userspace implementation of devfs
Summary(ru_RU.UTF-8): udev - это вынесенная из ядра реализация devfs
License: GPL
Group: System/Configuration/Hardware
Url: http://kernel.org/pub/linux/utils/kernel/hotplug/

PreReq: shadow-utils
PreReq: module-init-tools >= 3.3
PreReq: dmsetup
PreReq: libvolume_id = %version-%release
PreReq: %name-rules = %version-%release
Requires: udev_static-addon
Conflicts: linux-hotplug
Provides: hotplug = 2004_09_23-alt18
Obsoletes: hotplug

Source: %name-%version.tar
Patch: %name-%version-%release.patch

BuildRequires: docbook-dtds docbook-style-xsl klibc-devel xsltproc

# Find dependencies on klibc-*.so

%global __find_requires %_libdir/klibc/klibc-find-requires %__find_requires

%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.

%description -l ru_RU.UTF-8
Начиная с ядра 2.5, все реальные и виртуальные устройства в системе
имеют иерархическое отображение в sysfs, доступное обычным программам.
/sbin/hotplug информирует программы о том, что устройство подключено
или удалено из системы. Комбинация этих двух подсистем делает возможным
создание динамического /dev, который бы допускал очень гибкую систему
правил наименования устройств.

%package rules
Summary: Rule files for udev
Summary(ru_RU.UTF-8): Файлы правил для udev
Group: System/Configuration/Hardware
Provides: %_sysconfdir/udev/rules.d
Provides: %_sysconfdir/udev/initramfs-rules.d
Conflicts: %name < %version-%release
BuildArch: noarch

%description rules
This package contains the default set of rule files used by udev,
which control names and permission of device files in /dev.  Rule
files which have corresponding symlinks in /etc/udev/initramfs-rules.d
are also used by the mkinitrd package when creating initramfs images.

%description -l ru_RU.UTF-8 rules
Этот пакет содержит основной набор правил для udev, управляющих
назначением имён и прав доступа для файлов устройств в /dev.
Часть файлов правил, для которых есть символические ссылки в
каталоге /etc/udev/initramfs-rules.d, также используется пакетом
mkinitrd при создании образов initramfs.

%package -n lib%name
Summary: Shared library to access udev device information
Group: System/Libraries
License: LGPL

%description -n lib%name
This package provides shared library to access udev device information.

%package -n lib%name-devel
Summary: Libraries and headers for libudev
Group: Development/C
License: LGPL
Requires: lib%name = %version-%release

%description -n lib%name-devel
Headers for libudev.

%package -n libvolume_id
Summary: Shared libraries for volume_id
Group: System/Libraries

%description -n libvolume_id
This package provides shared libraries for volume_id.

%package -n libvolume_id-devel
Summary: Libraries and headers for libvolume_id
Group: Development/C
Requires: libvolume_id = %version-%release

%description -n libvolume_id-devel
Headers for libvolume_id.

%package initramfs
Summary: udev built with klibc for use in initramfs
Group: System/Kernel and hardware

# This avoids getting a dependency on sh from "#!/bin/sh".

AutoReq: yes, nopam, noperl, nopython, noshell, notcl

PreReq: mkinitrd-initramfs >= 1:3.0.8-alt1
Requires: klibc-utils-initramfs
Requires: %name-rules = %version-%release

%description initramfs
This package contains a version of udev which is built with klibc,
intended for use in initramfs images generated by mkinitrd.

%prep
%setup -q -c
cd %name-%version
%patch -p1
%autoreconf
cd ..
cp -pr %name-%version build-klibc
mv %name-%version/* ./

%build
%configure \
--with-udev-prefix= \
--with-libdir-name=%_lib \
--sbindir=/sbin
%make_build

# Build with klibc (for initramfs)

cd build-klibc
export CC=klcc
%configure \
--with-udev-prefix= \
--sbindir=/sbin \
--disable-logging \
--enable-static \
--disable-shared
%make
cd ..

%install
%make DESTDIR=%buildroot install

cat >>%buildroot%_sysconfdir/udev/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

mkdir -p %buildroot%_bindir
ln -s ../../sbin/udevadm %buildroot%_bindir/udevinfo
mkdir -p %buildroot/%_lib
mv %buildroot%_prefix/lib*/lib*.so.* %buildroot/%_lib/
rm -f %buildroot%_prefix/lib*/lib*.so
ln -sf ../../%_lib/libvolume_id.so.1 %buildroot%_libdir/libvolume_id.so
ln -sf ../../%_lib/libudev.so.0 %buildroot%_libdir/libudev.so

mkdir -p %buildroot%_initdir
install -m0755 etc/init.d/udevd.init %buildroot%_initdir/udevd
install -m0755 etc/init.d/udevd-final.init %buildroot%_initdir/udevd-final

mkdir -p %buildroot%_sysconfdir/udev/devices
mkdir -p %buildroot/lib/udev/devices

install -d %buildroot/%_sysconfdir/dev.d/default

# Install klibc version

cd build-klibc
mkdir -p %buildroot/lib/mkinitrd/udev/sbin
install -p udev/udevd udev/udevadm %buildroot/lib/mkinitrd/udev/sbin/
mkdir -p %buildroot/lib/mkinitrd/udev/lib/udev
install -p \
extras/ata_id/ata_id \
extras/cdrom_id/cdrom_id \
extras/edd_id/edd_id \
extras/firmware/firmware \
extras/path_id/path_id \
extras/scsi_id/scsi_id \
extras/usb_id/usb_id \
extras/volume_id/vol_id \
%buildroot/lib/mkinitrd/udev/lib/udev/
cd ..

# Install symlinks for rules which are needed in initramfs

mkdir -p %buildroot%_sysconfdir/udev/initramfs-rules.d
pushd %buildroot%_sysconfdir/udev/initramfs-rules.d
for f in \
../../../lib/udev/rules.d/50-firmware.rules \
../../../lib/udev/rules.d/50-udev-default.rules \
../../../lib/udev/rules.d/60-persistent-storage.rules \
../rules.d/64-md-raid.rules \
../rules.d/64-device-mapper.rules \
../rules.d/70-permissions.rules \
../../../lib/udev/rules.d/80-drivers.rules
do
ln -s "$f" .
done
popd

# firmware dirs

mkdir -p %buildroot/lib/firmware
mkdir -p %buildroot/usr/lib/hotplug/firmware

%pre
%_sbindir/groupadd -r -f video 2>/dev/null
%_sbindir/groupadd -r -f dialout 2>/dev/null
%_sbindir/groupadd -r -f tape 2>/dev/null

%post
%post_service udevd
%post_service udevd-final

%preun
%preun_service udevd
%preun_service udevd-final

%triggerpostun -- udev < 105
# %%post_service will skip chkconfig --add on upgrade and run resetpriorities
# instead, which turns the service off when it was not added before.
/sbin/chkconfig --add udevd-final ||:
/sbin/chkconfig udevd-final reset ||:

%files -n lib%name
/%_lib/lib%name.so.*

%files -n lib%name-devel
%_includedir/lib%name.h
%_libdir/lib%name.so
%_pkgconfigdir/lib%name.pc

%files -n libvolume_id
/%_lib/libvol*.so.*

%files -n libvolume_id-devel
%_includedir/libvol*.h
%_libdir/libvol*.so
%_pkgconfigdir/libvol*.pc

%files
%doc README TODO NEWS
%doc docs/writing_udev_rules/*
%_sysconfdir/dev.d
%_initdir/udevd*
%dir /lib/udev
%exclude /lib/udev/rules.d
/lib/udev/*
%config(noreplace) %_sysconfdir/udev/*.conf
%dir %_sysconfdir/udev/devices
%dir /lib/udev/devices
%config %_sysconfdir/scsi_id.config
/sbin/*
%_bindir/*
%_man8dir/*
%_man7dir/*
%dir /lib/firmware
%dir /usr/lib/hotplug
%dir /usr/lib/hotplug/firmware

%files rules
%dir %_sysconfdir/udev
%dir %_sysconfdir/udev/rules.d
%config %_sysconfdir/udev/rules.d/*
%_sysconfdir/udev/initramfs-rules.d
/lib/udev/rules.d

%files initramfs
/lib/mkinitrd/udev

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin