%global debug_package %{nil} %global __global_cflags %{optflags} -O2 -march=x86-64-v2 -flto=auto -fno-semantic-interposition %global __global_ldflags -flto=auto -fuse-ld=lld -Wl,-O2 -Wl,--as-needed %global _udev_version 251 Name: eudev Version: 3.2.14 Release: 1%{?dist} Summary: A standalone device manager, forked from systemd-udev License: GPL-2.0-or-later URL: https://github.com/eudev-project/eudev/ Source0: https://github.com/eudev-project/eudev/releases/download/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: make BuildRequires: pkgconfig BuildRequires: gperf BuildRequires: chrpath BuildRequires: libblkid-devel BuildRequires: kmod-devel %description eudev is a standalone, distribution-neutral device manager. It is a fork of systemd-udev that isolates udev from any particular init system, making it suitable for use with alternative init implementations like s6-rc. %package -n libeudev Summary: Unified userspace device library (forked from systemd-udev) Provides: libudev = %{_udev_version} Provides: libudev%{?_isa} = %{_udev_version} %description -n libeudev The libeudev package contains the unified device library, which is a fork of libudev from systemd. It contains the APIs for interacting with udev device information. %package -n libeudev-devel Summary: Development files for libeudev Provides: libudev-devel = %{_udev_version} Provides: libudev-devel%{?_isa} = %{_udev_version} Requires: libeudev%{?_isa} = %{version}-%{release} %description -n libeudev-devel The libeudev-devel package contains the libraries and header files for developing applications that use libudev. %prep %autosetup -n %{name}-%{version} %build export CFLAGS="%{__global_cflags}" export CXXFLAGS="%{__global_cflags}" export LDFLAGS="%{__global_ldflags}" ./configure \ --enable-shared \ --disable-static \ --disable-manpages \ --disable-introspection \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --with-sysconfdir=%{_sysconfdir} \ --with-rootprefix=%{_prefix} \ --sbindir=%{_sbindir} \ --bindir=%{_bindir} \ --libexecdir=%{_libexecdir} \ --with-rootlibexecdir=%{_libexecdir}/udev make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} INSTALL="%{__install}" # Remove static libraries find %{buildroot} -type f -name "*.a" -delete # Remove unnecessary documentation and man pages rm -rf %{buildroot}%{_mandir} rm -rf %{buildroot}%{_datadir}/doc/%{name}* rm -rf %{buildroot}%{_datadir}/udev # Clean up RPATHs find %{buildroot}%{_libdir} %{buildroot}%{_sbindir} %{buildroot}%{_bindir} -type f -exec chrpath -d {} \; 2>/dev/null || true %post -n libeudev -p /sbin/ldconfig %postun -n libeudev -p /sbin/ldconfig %files %license COPYING %{_sbindir}/udevd %{_bindir}/udevadm %{_libexecdir}/udev/* %{_sysconfdir}/udev/udev.conf %dir %{_sysconfdir}/udev %dir %{_sysconfdir}/udev/rules.d %{_libdir}/udevadm %files -n libeudev %license COPYING %{_libdir}/libudev.so.* %files -n libeudev-devel %{_includedir}/libudev.h %{_libdir}/libudev.so %{_libdir}/pkgconfig/libudev.pc %{_datadir}/pkgconfig/libudev.pc %exclude %{_mandir}/man3/* %changelog * Wed Sep 04 2024 Inga Vesnova - 3.2.14-1 - Initial package for Rocky Linux 10 (minimal, web-first distribution) - Applied x86-64-v2, -O2, LTO, and lld optimizations - Disabled debug package, documentation, man pages, hwdb, and introspection for minimal footprint - Split libeudev and libeudev-devel into separate sub-packages - Added chrpath to clean up standard RPATHs - Configured for use with s6-rc instead of systemd