Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37877132
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 

# -*- mode: rpm-spec; coding: utf-8 -*-

# if we want to have logging support in or not.

%def_with syslog

# if we want to enable debugging support in udev.  If it is enabled, lots of

# stuff will get sent to the debug syslog.
%def_with debug

Name: udev
Version: 108
Release: alt2.M40.1

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/

BuildRequires: klibc-devel

Source0: %name-%version.tar

Patch0: %name-%version-%release.patch

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

# 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

%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 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
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
%patch0 -p1
cd ..
cp -pr %name-%version build-klibc
mv %name-%version/* ./

%build
# udev doesn't support parallel build yet
NPROCS=1
export NPROCS

# Build normal version

%make_build \
USE_LOG=%{?_with_syslog:true}%{!?_with_syslog:false} \
DEBUG=%{?_with_debug:true}%{!?_with_debug:false} \
udevdir=/dev

for i in extras/path_id extras/floppy extras/usb_id extras/scsi_id extras/ata_id extras/edd_id extras/cdrom_id extras/firmware extras/floppy extras/volume_id/ ; do \
   %make_build  udevdir=/dev EXTRAS=$i
done

# Build with klibc (for initramfs)

cd build-klibc
%make_build USE_LOG=false DEBUG=false udevdir=/dev \
CC=klcc LD="klcc -shared" SHLIB= \
EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id extras/path_id extras/scsi_id extras/usb_id extras/volume_id"
cd ..

%install
%__make DESTDIR=%buildroot \
initdir=%_initdir \
install

# Make /dev default for udev_root and udev_db

%__subst 's/^\(udev_root=\).*/\1"\/dev"/g' %buildroot%_sysconfdir/udev/udev.conf
%__subst 's/^\(udev_db=\)"?.*\([^\/]+\)"?$/\1"\/dev\/\2"/g' %buildroot%_sysconfdir/udev/udev.conf

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%_initdir
%__rm -f %buildroot%_initdir/udev
install -m 0755 etc/init.d/udevd.init %buildroot%_initdir/udevd
install -m 0755 etc/init.d/udevd-final.init %buildroot%_initdir/udevd-final

%__mkdir_p %buildroot%_sysconfdir/udev/devices

for i in extras/path_id extras/floppy extras/usb_id extras/scsi_id extras/ata_id extras/edd_id extras/cdrom_id extras/firmware extras/floppy extras/volume_id/ ; do \
   %make udevdir=/dev EXTRAS=$i DESTDIR=%buildroot libdir=/%_lib usrlibdir=%_libdir install
done

install -m 0755 extras/dm_helper/dm_helper %buildroot/lib/udev/
install -m 0755 extras/hotplug/*.agent %buildroot/lib/udev/

%__rm -f %buildroot%_sysconfdir/udev/udev.permissions
%__rm -f %buildroot%_sysconfdir/udev/udev.rules.devfs

%__rm -f %buildroot%_sysconfdir/udev/permissions.d/50-udev.permissions
%__rm -f %buildroot%_sysconfdir/udev/rules.d/*
%__install -m 644 etc/udev/altlinux/* %buildroot%_sysconfdir/udev/rules.d/

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

# Install klibc version

cd build-klibc
mkdir -p %buildroot/lib/mkinitrd/udev/sbin
install -p udevd udevtrigger udevsettle %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.sh \
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
for f in \
05-udev-early.rules \
20-hotplug-modprobe.rules \
50-udev-default.rules \
60-persistent-storage.rules \
63-md.rules \
64-device-mapper.rules \
70-permissions.rules
do
ln -s ../rules.d/"$f" \
%buildroot%_sysconfdir/udev/initramfs-rules.d/"$f"
done

%pre
/usr/sbin/groupadd -r -f video

if [ $1 -gt 1 ] && [ -d /dev/.udev ]; then
rm -f /dev/.udev/old_version ||:
old_ver="$(/sbin/udevd --version 2>/dev/null)" || old_ver=
[ -n "$old_ver" ] ||
old_ver="$(/usr/bin/udevinfo --version 2>/dev/null)" ||
old_ver=
old_ver="${old_ver##*[!0-9]}"
[ -z "$old_ver" ] ||
printf '%%s\n' "$old_ver" >/dev/.udev/old_version ||:
fi

%post
old_ver=
if [ $1 -gt 1 ]; then
udevd_stopped="$(/sbin/service udevd status | grep stopped)" ||:
if [ -z "$udevd_stopped" ]; then
old_ver="$(cat /dev/.udev/old_version 2>/dev/null)" || old_ver=
fi
rm -f /dev/.udev/old_version 2>/dev/null ||:
fi
if [ -n "$old_ver" ]; then
/sbin/service udevd stop ||:
/usr/sbin/udevconvertdb -f "$old_ver" ||
echo "Warning: udev database conversion failed - probably a reboot is required" >&2
fi

%post_service udevd

if [ -n "$old_ver" ]; then
/sbin/service udevd start_udevd_only ||:
fi

%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 libvolume_id
/%_lib/*.so.*

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

%files
%doc COPYING README TODO ChangeLog RELEASE-NOTES
%doc docs/overview docs/udev_vs_devfs
%doc docs/writing_udev_rules/*
%_sysconfdir/dev.d
%attr(0755,root,root) %_initdir/udevd
%attr(0755,root,root) %_initdir/udevd-final
%dir /lib/udev
/lib/udev/*
%config(noreplace) %_sysconfdir/udev/*.conf
%dir %_sysconfdir/udev/devices
%config %_sysconfdir/scsi_id.config
/sbin/*
%_sbindir/*
%_bindir/*
%attr(-,root,man) %_man8dir/*
%attr(-,root,man) %_man7dir/*

%files rules
%dir %_sysconfdir/udev
%dir %_sysconfdir/udev/rules.d
%config %_sysconfdir/udev/rules.d/*
%dir %_sysconfdir/udev/initramfs-rules.d
%config(noreplace) %_sysconfdir/udev/initramfs-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