#
# Conditional build:
%bcond_with allstatic # link everything statically
-%bcond_without static # link e2fsck dynamically with libc
%bcond_without nls # build without NLS
+%bcond_without tls # TLS
+%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 uClibc # link initrd version with static glibc instead of uClibc
%bcond_without dietlibc # link initrd version with dietlibc instead of uClibc
-#
-%ifarch sparc64 sparc
+%endif
+
+%ifarch sparc64 sparc alpha ppc ppc64
%undefine with_uClibc
%endif
-#
+
+# see glibc.spec
+%ifarch i386
+%undefine with_tls
+%endif
+
Summary: Utilities for managing the second extended (ext2) filesystem
Summary(cs.UTF-8): Nástroje pro správu souborových systémů typu ext2
Summary(da.UTF-8): Værktøjer til håndtering af ext2 filsystemer
Summary(zh_CN.UTF-8): 管理第二扩展(ext2)文件系统的工具。
Summary(zh_TW.UTF-8): 用於管理 ext2 檔案系統的工具程式。
Name: e2fsprogs
-Version: 1.41.8
-Release: 4
+Version: 1.42.4
+Release: 0.1
License: GPL v2 (with LGPL v2 and BSD parts)
Group: Applications/System
-Source0: http://dl.sourceforge.net/e2fsprogs/%{name}-%{version}.tar.gz
-# Source0-md5: 6708cc8e484809fc5cfb232882e48489
+Source0: http://downloads.sourceforge.net/e2fsprogs/%{name}-%{version}.tar.gz
+# Source0-md5: b6e296f210d642361b7394437ff0f318
Source1: e2compr-0.4.texinfo.gz
# Source1-md5: c3c59ff37e49d8759abb1ef95a8d3abf
Source2: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
Patch1: e2compr-info.patch
Patch2: %{name}-498381.patch
Patch3: %{name}-diet.patch
-Patch4: %{name}-external-libblkid.patch
-Patch5: %{name}-external-libuuid.patch
URL: http://e2fsprogs.sourceforge.net/
BuildRequires: autoconf >= 2.50
BuildRequires: automake
BuildRequires: gettext-devel >= 0.11
-BuildRequires: rpmbuild(macros) >= 1.426
-BuildRequires: texinfo
-BuildRequires: texinfo-texi2dvi
BuildRequires: libblkid-devel
BuildRequires: libuuid-devel
+BuildRequires: pkgconfig
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpmbuild(macros) >= 1.583
+BuildRequires: texinfo
+BuildRequires: texinfo-texi2dvi
%if %{with allstatic}
BuildRequires: glibc-static
%endif
BuildRequires: uClibc-static >= 2:0.9.29
%else
%if %{with dietlibc}
-BuildRequires: dietlibc-static
+BuildRequires: dietlibc-static >= 2:0.32-9
BuildRequires: libblkid-dietlibc
BuildRequires: libuuid-dietlibc
%else
BuildRequires: glibc-static
+BuildRequires: libblkid-static
+BuildRequires: libuuid-static
%endif
%endif
%endif
Requires(post,postun): /sbin/ldconfig
-Requires: fsck = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Requires: fsck
Requires: libcom_err = %{version}-%{release}
+Requires: libss = %{version}-%{release}
Obsoletes: e2fsprogs-evms
Obsoletes: libext2fs2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# changing CFLAGS in the middle confuses confcache
%undefine configure_cache
+# objdump -T /lib/libcom_err.so.2.1 | grep ___tls_get_addr
+# on ac it is:
+# 00000000 D *UND* 00000000 ___tls_get_addr
+# on th it is:
+# 00000000 DF *UND* 00000000 GLIBC_2.3 ___tls_get_addr
+# yet on ac rpm-build-macros think it's unresolved symbol, but program still seem to work
+%if "%{pld_release}" == "ac"
+%define skip_post_check_so libcom_err.so.2.1
+%endif
+
# for some reason known only to rpm there must be "\\|" not "\|" here
%define dietarch %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/')
%define dietlibdir %{_prefix}/lib/dietlibc/lib-%{dietarch}
Summary: ext2 filesystem-specific libraries
Summary(pl.UTF-8): Biblioteki dla systemu plików ext2
Group: Libraries
+Requires: libcom_err = %{version}-%{release}
Conflicts: e2fsprogs < 1.40.6-3
Conflicts: fsck < 1.40.6-3
%description -n libcom_err-static -l pl.UTF-8
Biblioteka opisu popularnych błędów dla uniksów - wersja statyczna.
-%package -n fsck
-Summary: Check and repair a Linux file system
-Summary(pl.UTF-8): Sprawdzenie i naprawa linuksowego systemu plików
-Group: Applications/System
-%if %{without allstatic}
-Requires: %{name}-libs = %{version}-%{release}
-%endif
+%package -n libss
+Summary: Subsystem command parsing library
+Summary(pl.UTF-8): Biblioteka analizy poleceń podsystemów
+Group: Libraries
+Requires: libcom_err = %{version}-%{release}
+Conflicts: e2fsprogs < 1.34-3
+Conflicts: e2fsprogs-libs < 1.41.11-2
+
+%description -n libss
+Subsystem command parsing library.
+
+%description -n libss -l pl.UTF-8
+Biblioteka analizy poleceń podsystemów.
+
+%package -n libss-devel
+Summary: Development files for subsystem command parsing library
+Summary(pl.UTF-8): Pliki dla programistów do biblioteki analizy poleceń podsystemów
+Group: Development/Libraries
+Requires: libcom_err-devel = %{version}-%{release}
+Requires: libss = %{version}-%{release}
+Conflicts: e2fsprogs < 1.41.11-2
+Conflicts: e2fsprogs-devel < 1.41.11-2
-%description -n fsck
-Check and repair a Linux file system.
+%description -n libss-devel
+Development files for subsystem command parsing library, including
+header files and mk_cmds utility.
-%description -n fsck -l pl.UTF-8
-Sprawdzenie i naprawa linuksowego systemu plików.
+%description -n libss-devel -l pl.UTF-8
+Biblioteka opisu popularPliki dla programistów do biblioteki analizy
+poleceń podsystemów - w tym pliki nagłówkowe i narzędzie mk_cmds.
+
+%package -n libss-static
+Summary: Static version of subsystem command parsing library
+Summary(pl.UTF-8): Statyczna wersja biblioteki analizy poleceń podsystemów
+Group: Development/Libraries
+Requires: libss-devel = %{version}-%{release}
+Conflicts: e2fsprogs-static < 1.41.11-2
+
+%description -n libss-static
+Static version of subsystem command parsing library.
+
+%description -n libss-static -l pl.UTF-8
+Statyczna wersja biblioteki analizy poleceń podsystemów.
+
+%package -n libquota-devel
+Summary: Quota management library
+Summary(pl.UTF-8): Biblioteka do zarządzania limitami dyskowymi (quotami)
+Group: Development/Libraries
+
+%description -n libquota-devel
+Quota management library.
+
+%description -n libquota-devel -l pl.UTF-8
+Biblioteka do zarządzania limitami dyskowymi (quotami).
%package initrd
Summary: e2fsck and mke2fs - initrd version
Conflicts: geninitrd < 10000.10
%description initrd
-This package includes a e2fsck and mke2fs utilities staticaly
-linked for initrd.
+This package includes a e2fsck and mke2fs utilities staticaly linked
+for initrd.
%description initrd -l pl.UTF-8
-Pakiet ten zawiera narzędziae2fsck i mke2fs statycznie skonsolidowane
+Pakiet ten zawiera narzędzia e2fsck i mke2fs statycznie skonsolidowane
na potrzeby initrd.
%prep
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
-%patch5 -p1
sed -i -e '/AC_SUBST(DO_TEST_SUITE/a\MKINSTALLDIRS="install -d"\nAC_SUBST(MKINSTALLDIRS)\n' configure.in
%configure \
ac_cv_lib_dl_dlopen=no \
%{?with_uClibc:CC="%{_target_cpu}-uclibc-gcc"} \
- %{?with_dietlibc:--with-cc="diet %{__cc}"} \
- --with-ccopts="%{rpmcflags} -Os" \
- --with-ldopts="%{rpmldflags} -static" \
+ %{?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-libblkid \
--disable-libuuid \
--disable-nls \
--disable-testio-debug \
--disable-e2initrd-helper \
- --disable-uuidd \
+ --disable-threads \
--disable-tls \
- --disable-nls \
- --disable-threads
+ --disable-uuidd
-%{__make} -j1 libs
-%{__make} progs
+%{__make} -j1 libs \
+ V=1
+%{__make} progs \
+ V=1
mv -f misc/mke2fs initrd-mke2fs
-mv -f misc/fsck initrd-e2fsck
%{__make} clean
%{?with_dietlibc:mv MCONFIG.in.org MCONFIG.in}
%endif
%configure \
--with-root-prefix="" \
- %{!?with_nls:--disable-nls} \
- %{!?with_allstatic:--enable-elf-shlibs} \
+ --disable-fsck \
--disable-libblkid \
--disable-libuuid \
+ %{!?with_nls:--disable-nls} \
+ %{!?with_tls:--disable-tls} \
+ --disable-rpath \
--disable-uuidd \
--enable-compression \
- --enable-htree \
- --enable-fsck \
- --disable-rpath
+ %{!?with_allstatic:--enable-elf-shlibs} \
+ --enable-htree
%{__make} -j1 libs \
- LDFLAGS="%{rpmldflags}"
+ LDFLAGS="%{rpmldflags}" \
+ V=1
%{__make} progs docs \
- LDFLAGS="%{rpmldflags}"
+ LDFLAGS="%{rpmldflags}" \
+ V=1
cd doc
makeinfo --no-split e2compr.texinfo
ln -sf e2fsck $RPM_BUILD_ROOT/sbin/fsck.ext3
ln -sf mke2fs $RPM_BUILD_ROOT/sbin/mkfs.ext2
-install doc/e2compr.info $RPM_BUILD_ROOT%{_infodir}
+cp -p doc/e2compr.info $RPM_BUILD_ROOT%{_infodir}
touch $RPM_BUILD_ROOT%{_sysconfdir}/e2fsck.conf
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
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/*/man3/uuid_*.3
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/*/man8/findfs.8
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/*/man8/fsck.8
%if %{with nls}
[ "`file $RPM_BUILD_ROOT%{_datadir}/locale/it/LC_MESSAGES/e2fsprogs.mo |\
%if %{with initrd}
install -d $RPM_BUILD_ROOT%{_libdir}/initrd
-install initrd-e2fsck $RPM_BUILD_ROOT%{_libdir}/initrd/e2fsck
-install initrd-mke2fs $RPM_BUILD_ROOT%{_libdir}/initrd/mke2fs
+install -p initrd-mke2fs $RPM_BUILD_ROOT%{_libdir}/initrd/mke2fs
%endif
%clean
%post -n libcom_err -p /sbin/ldconfig
%postun -n libcom_err -p /sbin/ldconfig
-%post -n fsck -p /sbin/ldconfig
-%postun -n fsck -p /sbin/ldconfig
+%post -n libss -p /sbin/ldconfig
+%postun -n libss -p /sbin/ldconfig
%files %{?with_nls:-f %{name}.lang}
%defattr(644,root,root,755)
%attr(755,root,root) /sbin/tune2fs
%attr(755,root,root) %{_bindir}/chattr
%attr(755,root,root) %{_bindir}/lsattr
-%attr(755,root,root) %{_bindir}/mk_cmds
+%attr(755,root,root) %{_sbindir}/e2freefrag
+%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
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mke2fs.conf
%{_mandir}/man1/chattr.1*
%{_mandir}/man1/lsattr.1*
-%{_mandir}/man1/mk_cmds.1*
%{_mandir}/man5/e2fsck.conf.5*
%{_mandir}/man5/mke2fs.conf.5*
%{_mandir}/man8/badblocks.8*
%{_mandir}/man8/debugfs.8*
%{_mandir}/man8/dumpe2fs.8*
+%{_mandir}/man8/e2freefrag.8*
%{_mandir}/man8/e2fsck.8*
%{_mandir}/man8/e2image.8*
%{_mandir}/man8/e2label.8*
%{_mandir}/man8/e2undo.8*
+%{_mandir}/man8/e4defrag.8*
%{_mandir}/man8/filefrag.8*
%{_mandir}/man8/fsck.ext2.8*
%{_mandir}/man8/fsck.ext3.8*
%lang(pl) %{_mandir}/pl/man8/mkfs.ext4dev.8*
%lang(pl) %{_mandir}/pl/man8/mklost+found.8*
%lang(pl) %{_mandir}/pl/man8/tune2fs.8*
-%{_datadir}/ss
%{_infodir}/e2compr.info*
%if %{without allstatic}
%attr(755,root,root) %ghost /%{_lib}/libe2p.so.2
%attr(755,root,root) /%{_lib}/libext2fs.so.*.*
%attr(755,root,root) %ghost /%{_lib}/libext2fs.so.2
-%attr(755,root,root) /%{_lib}/libss.so.*.*
-%attr(755,root,root) %ghost /%{_lib}/libss.so.2
%endif
%files devel
%endif
%{_includedir}/e2p
%{_includedir}/ext2fs
-%{_includedir}/ss
%{_pkgconfigdir}/e2p.pc
%{_pkgconfigdir}/ext2fs.pc
-%{_pkgconfigdir}/ss.pc
%{_infodir}/libext2fs.info*
%files static
%defattr(644,root,root,755)
%{_libdir}/libe2p.a
%{_libdir}/libext2fs.a
-%{_libdir}/libss.a
%files -n libcom_err
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/compile_et
%{!?with_allstatic:%attr(755,root,root) %{_libdir}/libcom_err.so}
+%{_includedir}/com_err.h
%{_includedir}/et
%{_datadir}/et
%{_pkgconfigdir}/com_err.pc
%defattr(644,root,root,755)
%{_libdir}/libcom_err.a
-%files -n fsck
+%if %{without allstatic}
+%files -n libss
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/libss.so.*.*
+%attr(755,root,root) %ghost /%{_lib}/libss.so.2
+%endif
+
+%files -n libss-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mk_cmds
+%if %{without allstatic}
+%attr(755,root,root) %{_libdir}/libss.so
+%endif
+%{_includedir}/ss
+%{_datadir}/ss
+%{_pkgconfigdir}/ss.pc
+%{_mandir}/man1/mk_cmds.1*
+
+%files -n libss-static
+%defattr(644,root,root,755)
+%{_libdir}/libss.a
+
+%files -n libquota-devel
%defattr(644,root,root,755)
-%attr(755,root,root) /sbin/fsck
-%{_mandir}/man8/fsck.8*
-%lang(it) %{_mandir}/it/man8/fsck.8*
-%lang(ja) %{_mandir}/ja/man8/fsck.8*
-%lang(ko) %{_mandir}/ko/man8/fsck.8*
-%lang(pl) %{_mandir}/pl/man8/fsck.8*
+%{_libdir}/libquota.a
+%{_includedir}/quota
+%{_pkgconfigdir}/quota.pc
%if %{with initrd}
%files initrd
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/initrd/e2fsck
%attr(755,root,root) %{_libdir}/initrd/mke2fs
%endif