#
+#TODO:
+# - subpackage for systemd / cron / udev files?
+#
+
# Conditional build:
%bcond_with allstatic # link everything statically
+%bcond_without fuse # fuse2fs program
%bcond_without nls # build without NLS
%bcond_without tls # TLS
+%bcond_without scrub # don't package e2scrub* utilities
%if "%{pld_release}" == "ac"
%bcond_with initrd # don't build initrd version
%bcond_without uClibc # link initrd version with static glibc instead of uClibc
%bcond_with dietlibc # link initrd version with dietlibc instead of uClibc
%else
-%bcond_without initrd # don't build initrd version
+%bcond_with initrd # don't build initrd version
%bcond_with uClibc # link initrd version with static glibc instead of uClibc
%bcond_without dietlibc # link initrd version with dietlibc instead of uClibc
%endif
Summary(zh_CN.UTF-8): 管理第二扩展(ext2)文件系统的工具。
Summary(zh_TW.UTF-8): 用於管理 ext2 檔案系統的工具程式。
Name: e2fsprogs
-Version: 1.42.4
-Release: 0.1
+Version: 1.47.0
+Release: 1
License: GPL v2 (with LGPL v2 and BSD parts)
Group: Applications/System
-Source0: http://downloads.sourceforge.net/e2fsprogs/%{name}-%{version}.tar.gz
-# Source0-md5: b6e296f210d642361b7394437ff0f318
-Source1: e2compr-0.4.texinfo.gz
-# Source1-md5: c3c59ff37e49d8759abb1ef95a8d3abf
+Source0: https://downloads.sourceforge.net/e2fsprogs/%{name}-%{version}.tar.gz
+# Source0-md5: 6b4f18a33873623041857b4963641ee9
Source2: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source2-md5: 992a37783bd42a897232972917e8ca7d
Patch0: %{name}-info.patch
-Patch1: e2compr-info.patch
-Patch2: %{name}-498381.patch
-Patch3: %{name}-diet.patch
+Patch1: %{name}-498381.patch
+Patch2: %{name}-diet.patch
URL: http://e2fsprogs.sourceforge.net/
-BuildRequires: autoconf >= 2.50
+BuildRequires: autoconf >= 2.71
+BuildRequires: autoconf-archive
BuildRequires: automake
-BuildRequires: gettext-devel >= 0.11
+BuildRequires: gettext-tools >= 0.11
BuildRequires: libblkid-devel
+%{?with_fuse:BuildRequires: libfuse-devel}
BuildRequires: libuuid-devel
BuildRequires: pkgconfig
BuildRequires: rpm >= 4.4.9-56
-BuildRequires: rpmbuild(macros) >= 1.583
+BuildRequires: rpmbuild(macros) >= 1.644
BuildRequires: texinfo
BuildRequires: texinfo-texi2dvi
%if %{with allstatic}
%endif
%endif
Requires(post,postun): /sbin/ldconfig
+Requires(post,preun,postun): systemd-units >= 38
Requires: %{name}-libs = %{version}-%{release}
Requires: fsck
Requires: libcom_err = %{version}-%{release}
Requires: libss = %{version}-%{release}
-Obsoletes: e2fsprogs-evms
+Requires: systemd-units >= 38
+Obsoletes: e2fsprogs-evms < 1.36
Obsoletes: libext2fs2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
创建测试范例)、 tune2fs(用于修改文件系统参数)和其它大多数核心
ext2fs 文件系统实用程序。
+%package fuse
+Summary: FUSE file system client for ext2/ext3/ext4 file systems
+Summary(pl.UTF-8): Klient systemu plików FUSE dla systemów plików ext2/ext3/ext4
+Group: Applications/System
+Requires: %{name}-libs = %{version}-%{release}
+Requires: libfuse-tools
+Requires: libcom_err = %{version}-%{release}
+
+%description fuse
+FUSE file system client for ext2/ext3/ext4 file systems.
+
+%description fuse -l pl.UTF-8
+Klient systemu plików FUSE dla systemów plików ext2/ext3/ext4.
+
%package libs
Summary: ext2 filesystem-specific libraries
Summary(pl.UTF-8): Biblioteki dla systemu plików ext2
Requires: libcom_err-devel = %{version}-%{release}
Requires: libuuid-devel
Obsoletes: libext2fs2-devel
+# until it comes back
+Obsoletes: libquota-devel < 1.42.12
%description devel
e2fsprogs-devel contains the libraries and header files needed to
%prep
%setup -q
%patch0 -p1
-%{__gzip} -dc < %{SOURCE1} > doc/e2compr.texinfo
%patch1 -p1
%patch2 -p1
-%patch3 -p1
-
-sed -i -e '/AC_SUBST(DO_TEST_SUITE/a\MKINSTALLDIRS="install -d"\nAC_SUBST(MKINSTALLDIRS)\n' configure.in
-
-# AX_TLS
-tail -n +2604 aclocal.m4 > acinclude.m4
%build
cp -f /usr/share/automake/config.sub .
-%{__gettextize}
%{__aclocal}
%{__autoconf}
%if %{with initrd}
-%if %{with dietlibc}
-# needed for syscall()
-cp -a MCONFIG.in MCONFIG.in.org
-sed -i -e 's|\(^LIBUUID = .*\)|\1 -lcompat|g' \
- -e 's|\(^STATIC_LIBUUID = .*\)|\1 -lcompat|g' MCONFIG.in
-%endif
%configure \
ac_cv_lib_dl_dlopen=no \
%{?with_uClibc:CC="%{_target_cpu}-uclibc-gcc"} \
%{?with_dietlibc:CC="diet %{__cc}"} \
CFLAGS="%{rpmcflags} -Os" \
LDFLAGS="%{rpmldflags} -static" \
-%if %{with dietlibc}
- LIBUUID_LIBADD="-lcompat" \
- LIBBLKID_LIBADD="-luuid -lcompat" \
-%else
- LIBBLKID_LIBADD="-luuid" \
-%endif
--disable-elf-shlibs \
--disable-fsck \
+ --disable-fuse2fs \
--disable-libblkid \
--disable-libuuid \
--disable-nls \
--disable-tls \
--disable-uuidd
-%{__make} -j1 libs \
+%{__make} libs \
V=1
%{__make} progs \
V=1
mv -f misc/mke2fs initrd-mke2fs
%{__make} clean
-%{?with_dietlibc:mv MCONFIG.in.org MCONFIG.in}
%endif
%configure \
--with-root-prefix="" \
--disable-fsck \
+ %{!?with_fuse:--disable-fuse2fs} \
--disable-libblkid \
--disable-libuuid \
%{!?with_nls:--disable-nls} \
%{!?with_tls:--disable-tls} \
--disable-rpath \
--disable-uuidd \
- --enable-compression \
- %{!?with_allstatic:--enable-elf-shlibs} \
- --enable-htree
+ %{!?with_allstatic:--enable-elf-shlibs}
-%{__make} -j1 libs \
+%{__make} libs \
LDFLAGS="%{rpmldflags}" \
V=1
%{__make} progs docs \
LDFLAGS="%{rpmldflags}" \
V=1
-cd doc
-makeinfo --no-split e2compr.texinfo
-
%install
rm -rf $RPM_BUILD_ROOT
%{?with_dietlibc:install -d $RPM_BUILD_ROOT%{dietlibdir}}
export PATH=/sbin:$PATH
-echo "install-shlibs:" >> intl/Makefile
-
-%{__make} install install-libs \
+%{__make} -j1 install install-libs \
root_libdir=/%{_lib} \
mkinstalldirs='install -d' \
+ LDCONFIG=true \
DESTDIR=$RPM_BUILD_ROOT
ln -sf e2fsck $RPM_BUILD_ROOT/sbin/fsck.ext2
ln -sf e2fsck $RPM_BUILD_ROOT/sbin/fsck.ext3
ln -sf mke2fs $RPM_BUILD_ROOT/sbin/mkfs.ext2
-cp -p doc/e2compr.info $RPM_BUILD_ROOT%{_infodir}
-
touch $RPM_BUILD_ROOT%{_sysconfdir}/e2fsck.conf
bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/{mkfs,fsck}.ext[234]*.8*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/{mkfs,fsck}.ext{2,3,4}.8*
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/man8/fsck.ext2.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/man8/fsck.ext3.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/man8/fsck.ext4.8
-echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/man8/fsck.ext4dev.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/man8/mkfs.ext2.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/man8/mkfs.ext3.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/man8/mkfs.ext4.8
-echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/man8/mkfs.ext4dev.8
# missing in non-english-man-pages tarball
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/hu/man8/fsck.ext3.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/hu/man8/fsck.ext4.8
-echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/hu/man8/fsck.ext4dev.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/it/man8/fsck.ext3.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/it/man8/fsck.ext4.8
-echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/it/man8/fsck.ext4dev.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/it/man8/mkfs.ext3.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/it/man8/mkfs.ext4.8
-echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/it/man8/mkfs.ext4dev.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/ja/man8/fsck.ext4.8
-echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/ja/man8/fsck.ext4dev.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/ja/man8/mkfs.ext4.8
-echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/ja/man8/mkfs.ext4dev.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/ko/man8/fsck.ext3.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/ko/man8/fsck.ext4.8
-echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/ko/man8/fsck.ext4dev.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/ko/man8/mkfs.ext3.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/ko/man8/mkfs.ext4.8
-echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/ko/man8/mkfs.ext4dev.8
echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/pl/man8/fsck.ext4.8
-echo '.so e2fsck.8' > $RPM_BUILD_ROOT%{_mandir}/pl/man8/fsck.ext4dev.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/pl/man8/mkfs.ext3.8
echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/pl/man8/mkfs.ext4.8
-echo '.so mke2fs.8' > $RPM_BUILD_ROOT%{_mandir}/pl/man8/mkfs.ext4dev.8
# moved to util-linux-ng.spec
%{__rm} $RPM_BUILD_ROOT%{_mandir}/*/man1/uuidgen.1
%{__rm} $RPM_BUILD_ROOT%{_mandir}/*/man3/libuuid.3
%find_lang %{name}
%endif
-rm -f $RPM_BUILD_ROOT%{_mandir}/README.e2fsprogs-non-english-man-pages
+%{__rm} $RPM_BUILD_ROOT/sbin/logsave
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/logsave.8*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.e2fsprogs-non-english-man-pages
%if %{with initrd}
install -d $RPM_BUILD_ROOT%{_libdir}/initrd
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/postshell
--/usr/sbin/fix-info-dir -c %{_infodir}
+%post
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} > /dev/null 2>&1
+%systemd_post e2scrub_all.service
-%postun -p /sbin/postshell
--/usr/sbin/fix-info-dir -c %{_infodir}
+%preun
+%systemd_preun e2scrub_all.service
+
+%postun
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} > /dev/null 2>&1
+%systemd_reload
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files %{?with_nls:-f %{name}.lang}
%defattr(644,root,root,755)
-# COPYING specifies license details for some parts of package
-%doc COPYING README RELEASE-NOTES
+%doc NOTICE README RELEASE-NOTES
%attr(755,root,root) /sbin/badblocks
%attr(755,root,root) /sbin/debugfs
%attr(755,root,root) /sbin/dumpe2fs
%attr(755,root,root) /sbin/e2fsck
%attr(755,root,root) /sbin/e2image
%attr(755,root,root) /sbin/e2label
+%attr(755,root,root) /sbin/e2mmpstatus
+%if %{with scrub}
+%attr(755,root,root) /sbin/e2scrub
+%attr(755,root,root) /sbin/e2scrub_all
+%endif
%attr(755,root,root) /sbin/e2undo
%attr(755,root,root) /sbin/fsck.ext2
%attr(755,root,root) /sbin/fsck.ext3
%attr(755,root,root) /sbin/fsck.ext4
-%attr(755,root,root) /sbin/fsck.ext4dev
-%attr(755,root,root) /sbin/logsave
%attr(755,root,root) /sbin/mke2fs
%attr(755,root,root) /sbin/mkfs.ext2
%attr(755,root,root) /sbin/mkfs.ext3
%attr(755,root,root) /sbin/mkfs.ext4
-%attr(755,root,root) /sbin/mkfs.ext4dev
%attr(755,root,root) /sbin/resize2fs
%attr(755,root,root) /sbin/tune2fs
%attr(755,root,root) %{_bindir}/chattr
%attr(755,root,root) %{_bindir}/lsattr
%attr(755,root,root) %{_sbindir}/e2freefrag
+%attr(755,root,root) %{_sbindir}/e4crypt
%attr(755,root,root) %{_sbindir}/e4defrag
%attr(755,root,root) %{_sbindir}/filefrag
%attr(755,root,root) %{_sbindir}/mklost+found
%attr(755,root,root) %{_libdir}/e2initrd_helper
+%dir %{_libdir}/e2fsprogs
+%if %{with scrub}
+%attr(755,root,root) %{_libdir}/e2fsprogs/e2scrub_all_cron
+%attr(755,root,root) %{_libdir}/e2fsprogs/e2scrub_fail
+%config(noreplace) %verify(not md5 mtime size) /etc/cron.d/e2scrub_all
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/e2scrub.conf
+%endif
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/e2fsck.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mke2fs.conf
+%if %{with scrub}
+%{systemdunitdir}/e2scrub@.service
+%{systemdunitdir}/e2scrub_all.service
+%{systemdunitdir}/e2scrub_all.timer
+%{systemdunitdir}/e2scrub_fail@.service
+%{systemdunitdir}/e2scrub_reap.service
+/lib/udev/rules.d/96-e2scrub.rules
+%endif
%{_mandir}/man1/chattr.1*
%{_mandir}/man1/lsattr.1*
%{_mandir}/man5/e2fsck.conf.5*
+%{_mandir}/man5/ext2.5*
+%{_mandir}/man5/ext3.5*
+%{_mandir}/man5/ext4.5*
%{_mandir}/man5/mke2fs.conf.5*
%{_mandir}/man8/badblocks.8*
%{_mandir}/man8/debugfs.8*
%{_mandir}/man8/e2fsck.8*
%{_mandir}/man8/e2image.8*
%{_mandir}/man8/e2label.8*
+%{_mandir}/man8/e2mmpstatus.8*
+%if %{with scrub}
+%{_mandir}/man8/e2scrub.8*
+%{_mandir}/man8/e2scrub_all.8*
+%endif
%{_mandir}/man8/e2undo.8*
+%{_mandir}/man8/e4crypt.8*
%{_mandir}/man8/e4defrag.8*
%{_mandir}/man8/filefrag.8*
%{_mandir}/man8/fsck.ext2.8*
%{_mandir}/man8/fsck.ext3.8*
%{_mandir}/man8/fsck.ext4.8*
-%{_mandir}/man8/fsck.ext4dev.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*
%lang(hu) %{_mandir}/hu/man8/fsck.ext2.8*
%lang(hu) %{_mandir}/hu/man8/fsck.ext3.8*
%lang(hu) %{_mandir}/hu/man8/fsck.ext4.8*
-%lang(hu) %{_mandir}/hu/man8/fsck.ext4dev.8*
%lang(hu) %{_mandir}/hu/man8/tune2fs.8*
%lang(it) %{_mandir}/it/man1/chattr.1*
%lang(it) %{_mandir}/it/man1/lsattr.1*
%lang(it) %{_mandir}/it/man8/fsck.ext2.8*
%lang(it) %{_mandir}/it/man8/fsck.ext3.8*
%lang(it) %{_mandir}/it/man8/fsck.ext4.8*
-%lang(it) %{_mandir}/it/man8/fsck.ext4dev.8*
%lang(it) %{_mandir}/it/man8/mke2fs.8*
%lang(it) %{_mandir}/it/man8/mkfs.ext2.8*
%lang(it) %{_mandir}/it/man8/mkfs.ext3.8*
%lang(it) %{_mandir}/it/man8/mkfs.ext4.8*
-%lang(it) %{_mandir}/it/man8/mkfs.ext4dev.8*
%lang(it) %{_mandir}/it/man8/mklost+found.8*
%lang(it) %{_mandir}/it/man8/tune2fs.8*
%lang(ja) %{_mandir}/ja/man1/chattr.1*
%lang(ja) %{_mandir}/ja/man8/fsck.ext2.8*
%lang(ja) %{_mandir}/ja/man8/fsck.ext3.8*
%lang(ja) %{_mandir}/ja/man8/fsck.ext4.8*
-%lang(ja) %{_mandir}/ja/man8/fsck.ext4dev.8*
%lang(ja) %{_mandir}/ja/man8/mke2fs.8*
%lang(ja) %{_mandir}/ja/man8/mkfs.ext2.8*
%lang(ja) %{_mandir}/ja/man8/mkfs.ext3.8*
%lang(ja) %{_mandir}/ja/man8/mkfs.ext4.8*
-%lang(ja) %{_mandir}/ja/man8/mkfs.ext4dev.8*
%lang(ja) %{_mandir}/ja/man8/mklost+found.8*
%lang(ja) %{_mandir}/ja/man8/resize2fs.8*
%lang(ja) %{_mandir}/ja/man8/tune2fs.8*
%lang(ko) %{_mandir}/ko/man8/fsck.ext2.8*
%lang(ko) %{_mandir}/ko/man8/fsck.ext3.8*
%lang(ko) %{_mandir}/ko/man8/fsck.ext4.8*
-%lang(ko) %{_mandir}/ko/man8/fsck.ext4dev.8*
%lang(ko) %{_mandir}/ko/man8/mke2fs.8*
%lang(ko) %{_mandir}/ko/man8/mkfs.ext2.8*
%lang(ko) %{_mandir}/ko/man8/mkfs.ext3.8*
%lang(ko) %{_mandir}/ko/man8/mkfs.ext4.8*
-%lang(ko) %{_mandir}/ko/man8/mkfs.ext4dev.8*
%lang(ko) %{_mandir}/ko/man8/mklost+found.8*
%lang(ko) %{_mandir}/ko/man8/tune2fs.8*
%lang(pl) %{_mandir}/pl/man1/chattr.1*
%lang(pl) %{_mandir}/pl/man8/fsck.ext2.8*
%lang(pl) %{_mandir}/pl/man8/fsck.ext3.8*
%lang(pl) %{_mandir}/pl/man8/fsck.ext4.8*
-%lang(pl) %{_mandir}/pl/man8/fsck.ext4dev.8*
%lang(pl) %{_mandir}/pl/man8/mke2fs.8*
%lang(pl) %{_mandir}/pl/man8/mkfs.ext2.8*
%lang(pl) %{_mandir}/pl/man8/mkfs.ext3.8*
%lang(pl) %{_mandir}/pl/man8/mkfs.ext4.8*
-%lang(pl) %{_mandir}/pl/man8/mkfs.ext4dev.8*
%lang(pl) %{_mandir}/pl/man8/mklost+found.8*
%lang(pl) %{_mandir}/pl/man8/tune2fs.8*
-%{_infodir}/e2compr.info*
+
+%if %{with fuse}
+%files fuse
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/fuse2fs
+%{_mandir}/man1/fuse2fs.1*
+%endif
%if %{without allstatic}
%files libs
%if %{without allstatic}
%attr(755,root,root) %{_libdir}/libe2p.so
%attr(755,root,root) %{_libdir}/libext2fs.so
-%attr(755,root,root) %{_libdir}/libss.so
%endif
%{_includedir}/e2p
%{_includedir}/ext2fs
%defattr(644,root,root,755)
%{_libdir}/libss.a
+%if 0
+# was installed in >= 1.42.2, since 1.42.12 is private only
%files -n libquota-devel
%defattr(644,root,root,755)
%{_libdir}/libquota.a
%{_includedir}/quota
%{_pkgconfigdir}/quota.pc
+%endif
%if %{with initrd}
%files initrd