%define _root_sbindir /sbin
%define _root_libdir /%{_lib}
%define _root_localedir /usr/share/locale
+%define _root_etcdir /etc
-Summary: Utilities for managing the second extended (ext2) filesystem.
+Summary: Utilities for managing ext2/ext3/ext4 filesystems
Name: e2fsprogs
-Version: @E2FSPROGS_VERSION@
+Version: @E2FSPROGS_PKGVER@
Release: 0
License: GPLv2
Group: System Environment/Base
%description
The e2fsprogs package contains a number of utilities for creating,
-checking, modifying, and correcting any inconsistencies in second
-extended (ext2) filesystems. E2fsprogs contains e2fsck (used to
-repair filesystem inconsistencies after an unclean shutdown), mke2fs
-(used to initialize a partition to contain an empty ext2 filesystem),
-debugfs (used to examine the internal structure of a filesystem, to
-manually repair a corrupted filesystem or to create test cases for
-e2fsck), tune2fs (used to modify filesystem parameters), resize2fs to
-grow and shrink unmounted ext2 filesystems, and most of the other core
-ext2fs filesystem utilities.
-
-You should install the e2fsprogs package if you are using any ext2
-filesystems (if you're not sure, you probably should install this
-package). You may also need to install it (even if you don't use
-ext2) for the libuuid and libblkid libraries and fsck tool that are
-included here.
+checking, modifying, and correcting any inconsistencies in ext2, ext3,
+and ext4 filesystems. E2fsprogs contains e2fsck (used to repair
+filesystem inconsistencies after an unclean shutdown), mke2fs (used to
+initialize a partition to contain an empty ext2 filesystem), debugfs
+(used to examine the internal structure of a filesystem, to manually
+repair a corrupted filesystem or to create test cases for e2fsck),
+tune2fs (used to modify filesystem parameters), resize2fs to grow and
+shrink unmounted ext2 filesystems, and most of the other core ext2fs
+filesystem utilities.
+
+You should install the e2fsprogs package if you are using any ext2,
+ext3, or ext4 filesystems (if you're not sure, you probably should
+install this package). You may also need to install it (even if you
+don't use ext2/ext3/ext4) for the libuuid and libblkid libraries and
+fsck tool that are included here.
%package devel
Summary: Ext2 filesystem-specific static libraries and headers.
%description devel
E2fsprogs-devel contains the libraries and header files needed to
-develop second extended (ext2) filesystem-specific programs.
+develop ext2, ext3, or ext4 filesystem-specific programs.
-You should install e2fsprogs-devel if you want to develop ext2
-filesystem-specific programs. If you install e2fsprogs-devel, you'll
-also want to install e2fsprogs.
+You should install e2fsprogs-devel if you want to develop
+ext2. ext3. or ext4 filesystem-specific programs. If you install
+e2fsprogs-devel, you'll also want to install e2fsprogs.
+
+%package -n uuidd
+Summary: helper daemon to guarantee uniqueness of time-based UUIDs
+Group: System Environment/Daemons
+License: GPLv2
+Requires: e2fsprogs = %{version}
+Requires(pre): shadow-utils
+
+%description -n uuidd
+The uuidd package contains a userspace daemon (uuidd) which guarantees
+uniqueness of time-based UUID generation even at very high rates on
+SMP systems.
%prep
%setup
%build
-%configure --enable-elf-shlibs --enable-nls
+%configure --enable-elf-shlibs --enable-nls \
+ %{?extra_config_flags:%extra_config_flags}
make
+make check
%install
rm -rf $RPM_BUILD_ROOT
make install install-libs DESTDIR="$RPM_BUILD_ROOT" \
root_sbindir=%{_root_sbindir} root_libdir=%{_root_libdir}
/sbin/ldconfig -n ${RPM_BUILD_ROOT}%{_libdir}
+
+# Add a dir that uuidd needs that the Makefiles don't create
+install -d $RPM_BUILD_ROOT/var/lib/libuuid
+
%find_lang %{name}
%clean
fi
exit 0
+%pre -n uuidd
+getent group uuidd >/dev/null || groupadd -r uuidd
+getent passwd uuidd >/dev/null || \
+useradd -r -g uuidd -d /var/lib/libuuid -s /sbin/nologin \
+ -c "UUID generator helper daemon" uuidd
+exit 0
+
%files -f %{name}.lang
%defattr(-,root,root)
%doc README RELEASE-NOTES
%{_root_sbindir}/e2fsck
%{_root_sbindir}/e2image
%{_root_sbindir}/e2label
+%{_root_sbindir}/e2undo
%{_root_sbindir}/findfs
%{_root_sbindir}/fsck
%{_root_sbindir}/fsck.ext2
%{_root_sbindir}/fsck.ext3
+%{_root_sbindir}/fsck.ext4
+%{_root_sbindir}/fsck.ext4dev
%{_root_sbindir}/logsave
%{_root_sbindir}/mke2fs
+%{_root_etcdir}/mke2fs.conf
%{_root_sbindir}/mkfs.ext2
%{_root_sbindir}/mkfs.ext3
+%{_root_sbindir}/mkfs.ext4
+%{_root_sbindir}/mkfs.ext4dev
%{_root_sbindir}/resize2fs
%{_root_sbindir}/tune2fs
%{_sbindir}/filefrag
%{_sbindir}/mklost+found
+%{_sbindir}/e2freefrag
%{_root_libdir}/libblkid.so.*
%{_root_libdir}/libcom_err.so.*
%{_mandir}/man1/lsattr.1*
%{_mandir}/man1/uuidgen.1*
+%{_mandir}/man5/e2fsck.conf.5*
+%{_mandir}/man5/mke2fs.conf.5*
+
%{_mandir}/man8/badblocks.8*
%{_mandir}/man8/blkid.8*
%{_mandir}/man8/debugfs.8*
%{_mandir}/man8/findfs.8*
%{_mandir}/man8/fsck.ext2.8*
%{_mandir}/man8/fsck.ext3.8*
+%{_mandir}/man8/fsck.ext4.8*
+%{_mandir}/man8/fsck.ext4dev.8*
%{_mandir}/man8/e2image.8*
%{_mandir}/man8/e2label.8*
+%{_mandir}/man8/e2undo.8*
%{_mandir}/man8/fsck.8*
%{_mandir}/man8/logsave.8*
%{_mandir}/man8/mke2fs.8*
%{_mandir}/man8/mkfs.ext2.8*
%{_mandir}/man8/mkfs.ext3.8*
+%{_mandir}/man8/mkfs.ext4.8*
+%{_mandir}/man8/mkfs.ext4dev.8*
%{_mandir}/man8/mklost+found.8*
%{_mandir}/man8/resize2fs.8*
%{_mandir}/man8/tune2fs.8*
%{_mandir}/man8/filefrag.8*
-
-%{_root_localedir}/cs/LC_MESSAGES/e2fsprogs.mo
-%{_root_localedir}/de/LC_MESSAGES/e2fsprogs.mo
-%{_root_localedir}/es/LC_MESSAGES/e2fsprogs.mo
-%{_root_localedir}/it/LC_MESSAGES/e2fsprogs.mo
-%{_root_localedir}/pl/LC_MESSAGES/e2fsprogs.mo
-%{_root_localedir}/sv/LC_MESSAGES/e2fsprogs.mo
-%{_root_localedir}/tr/LC_MESSAGES/e2fsprogs.mo
+%{_mandir}/man8/e2freefrag.8*
%files devel
%defattr(-,root,root)
%{_mandir}/man3/uuid_time.3*
%{_mandir}/man3/uuid_unparse.3*
+%files -n uuidd
+%defattr(-,root,root)
+# if you want to run via init
+# /etc/init.d/uuidd
+%{_mandir}/man8/uuidd.8*
+%attr(6755, uuidd, uuidd) %{_sbindir}/uuidd
+%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
+