File e2fsprogs.spec of Package e2fsprogs

#
# spec file for package e2fsprogs (version 1.41.9)
#
# Copyright (c) Lincom Software Team. All spec files
# are released under the CC-BY-NC-ND, version 3 United States.
#

# Basic Information
Name:		e2fsprogs
Version:	1.41.9
Release:	2%{?dist}
Summary:	ext2/3/4 filesystem userspace utilities
Group:		System Enviroment/Base
License:	GPL
URL:		http://e2fsprogs.sourceforge.net/

# Source Information
Source0:	http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-%{version}.tar.gz
Source1:	ext2_types-wrapper.h

# Set a 24hr grace period for fsck (necessary for installations)
Patch10:	e2fsprogs-1.41.9-24hr-fsck-grace.patch

# Build Information
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:	e2fsprogs-libs = %{version}-%{release}
BuildRequires:	pkgconfig texinfo autoconf automake
# What are these?
BuildRequires:	libblkid-devel
BuildRequires:	libuuid-devel

%description
The e2fsprogs package contains a number of utilities for creating,
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 filesystems, and most of the other core ext2fs filesystem
utilities.

%package libs
Summary:	Ext2/3/4 filesystem-specific shared libraries
Group:	Development/Libraries
License:	GPLv2 and LGPLv2

%description libs
E2fsprogs-libs contains libe2p and libext2fs, the libraries of the
e2fsprogs package.

These libraries are used to directly acccess ext2/3/4 filesystems
from userspace.

%package devel
Summary:	Ext2/3/4 filesystem-specific static libraries and headers
Group:	Development/Libraries
License:	GPLv2 and LGPLv2
Provides:	%{name}-static = %{version}-%{release}
Requires:	e2fsprogs-libs = %{version}-%{release}
Requires:	gawk
Requires:	libcom_err-devel
Requires:	pkgconfig
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info

%description devel
E2fsprogs-devel contains the libraries and header files needed to
develop second, third and fourth extended (ext2/ext3/ext4)
filesystem-specific programs.

You should install e2fsprogs-devel if you want to develop ext2/3/4
filesystem-specific programs. If you install e2fsprogs-devel, you'll
also want to install e2fsprogs.

%package -n libcom_err
Summary:	Common error description library
Group:	Development/Libraries
License:	MIT

%description -n libcom_err
This is the common error description library, part of e2fsprogs.

libcom_err is an attempt to present a common error-handling mechanism.

%package -n libcom_err-devel
Summary:	Common error description library
Group:	Development/Libraries
License:	MIT
Provides:	libcom_err-static = %{version}-%{release}
Requires:	libcom_err = %{version}-%{release}
Requires:	pkgconfig

%description -n libcom_err-devel
This is the common error description development library and headers,
part of e2fsprogs.  It contains the compile_et commmand, used
to convert a table listing error-code names and associated messages
messages into a C source file suitable for use with the library.

libcom_err is an attempt to present a common error-handling mechanism.

%package -n libss
Summary:	Command line interface parsing library
Group:	Development/Libraries
License:	MIT

%description -n libss
This is libss, a command line interface parsing library, part of e2fsprogs.

This package includes a tool that parses a command table to generate
a simple command-line interface parser, the include files needed to
compile and use it, and the static libs.

It was originally inspired by the Multics SubSystem library.

%package -n libss-devel
Summary:	Command line interface parsing library
Group:	Development/Libraries
License:	MIT
Provides:	libss-static = %{version}-%{release}
Requires:	libss = %{version}-%{release}
Requires:	pkgconfig

%description -n libss-devel
This is the command line interface parsing (libss) development library
and headers, part of e2fsprogs.  It contains the mk_cmds command, which
parses a command table to generate a simple command-line interface parser.

It was originally inspired by the Multics SubSystem library.

%prep
%setup -q
%patch10 -p1 -b .24h

%build
%configure --prefix=/usr --with-root-prefix="" \
      --enable-elf-shlibs --disable-libblkid --disable-libuuid \
      --disable-uuidd --disable-fsck
make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install
make DESTDIR=%{buildroot} install-libs
# else the stripping fails
chmod -v u+w %{buildroot}/%{_libdir}/{libcom_err,libe2p,libext2fs,libss}.a

# hack to allow parallel install of 32/64 bit packages (devel)
%ifarch %{ix86} x86_64
mv -f %{buildroot}%{_includedir}/ext2fs/ext2_types.h \
      %{buildroot}%{_includedir}/ext2fs/ext2_types-%{_arch}.h
install -p -m 644 %{SOURCE1} %{buildroot}%{_includedir}/ext2fs/ext2_types.h
%endif

# Move libraries to their supposed-to-be locations
mkdir -pv %{buildroot}/%{_lib}
mv -v %{buildroot}%{_libdir}/libe2p.so.* %{buildroot}/%{_lib}/
mv -v %{buildroot}%{_libdir}/libext2fs.so.* %{buildroot}/%{_lib}/
mv -v %{buildroot}%{_libdir}/libcom_err.so.* %{buildroot}/%{_lib}/
mv -v %{buildroot}%{_libdir}/libss.so.* %{buildroot}/%{_lib}/

# Move executables to their right locations
mkdir -pv %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/badblocks %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/debugfs %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/dumpe2fs %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/e2fsck %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/e2image %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/e2label %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/e2undo %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/fsck.ext2 %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/fsck.ext3 %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/fsck.ext4 %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/fsck.ext4dev %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/logsave %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/mke2fs %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/mkfs.ext2 %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/mkfs.ext3 %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/mkfs.ext4 %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/mkfs.ext4dev %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/resize2fs %{buildroot}/sbin
mv -v %{buildroot}/usr/sbin/tune2fs %{buildroot}/sbin

%find_lang %{name}

# Really, I'm not sure if we need or can do this...
#makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
#install -v -m644 doc/com_err.info %{buildroot}/usr/share/info
#gzip -v %{buildroot}/usr/share/info/doc/com_err.info

%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig

# Test for file; if installed with --excludedocs it may not be there
%post devel
if [ -f %{_infodir}/libext2fs.info.gz ]; then
   /sbin/install-info %{_infodir}/libext2fs.info.gz %{_infodir}/dir || :
fi

%preun devel
if [ $1 = 0 -a -f %{_infodir}/libext2fs.info.gz ]; then
   /sbin/install-info --delete %{_infodir}/libext2fs.info.gz %{_infodir}/dir || :
fi
exit 0

%post -n libcom_err -p /sbin/ldconfig
%postun -n libcom_err -p /sbin/ldconfig

%post -n libss -p /sbin/ldconfig
%postun -n libss -p /sbin/ldconfig

%clean
rm -rf %{buildroot}

%files -f %{name}.lang
%defattr(-,root,root,-)
%doc COPYING README RELEASE-NOTES

%config(noreplace) /etc/mke2fs.conf
%{_sbindir}/filefrag
%{_sbindir}/e2freefrag
%{_sbindir}/mklost+found
/sbin/badblocks
/sbin/debugfs
/sbin/dumpe2fs
/sbin/e2fsck
/sbin/e2image
/sbin/e2label
/sbin/e2undo
/sbin/fsck.ext2
/sbin/fsck.ext3
/sbin/fsck.ext4
/sbin/fsck.ext4dev
/sbin/logsave
/sbin/mke2fs
/sbin/mkfs.ext2
/sbin/mkfs.ext3
/sbin/mkfs.ext4
/sbin/mkfs.ext4dev
/sbin/resize2fs
/sbin/tune2fs
%{_bindir}/chattr
%{_bindir}/lsattr
%{_mandir}/man1/chattr.1*
%{_mandir}/man1/lsattr.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/e2fsck.8*
%{_mandir}/man8/filefrag.8*
%{_mandir}/man8/e2freefrag.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/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*

%files libs
%defattr(-,root,root)
%doc COPYING
/%{_lib}/libe2p.so.*
/%{_lib}/libext2fs.so.*
%{_libdir}/e2initrd_helper

%files devel
%defattr(-,root,root)
%{_infodir}/libext2fs.info*
%{_libdir}/libe2p.a
%{_libdir}/libe2p.so
%{_libdir}/libext2fs.a
%{_libdir}/libext2fs.so
%{_libdir}/pkgconfig/e2p.pc
%{_libdir}/pkgconfig/ext2fs.pc

%{_includedir}/e2p
%{_includedir}/ext2fs

%files -n libcom_err
%defattr(-,root,root)
%doc COPYING
/%{_lib}/libcom_err.so.*

%files -n libcom_err-devel
%defattr(-,root,root)
%{_bindir}/compile_et
%{_libdir}/libcom_err.a
%{_libdir}/libcom_err.so
%{_datadir}/et
%{_includedir}/et
%{_mandir}/man1/compile_et.1*
%{_mandir}/man3/com_err.3*
%{_libdir}/pkgconfig/com_err.pc

%files -n libss
%defattr(-,root,root)
%doc COPYING
/%{_lib}/libss.so.*

%files -n libss-devel
%defattr(-,root,root)
%{_bindir}/mk_cmds
%{_libdir}/libss.a
%{_libdir}/libss.so
%{_datadir}/ss
%{_includedir}/ss
%{_mandir}/man1/mk_cmds.1*
%{_libdir}/pkgconfig/ss.pc


%changelog
* Sun Dec 27 2009 Robert Xu <robxu9@gmail.com> 1.41.9-2
- Added the fedora patch for the 24 hour grace period
- Comparison with major distributions
- * Split up in to MANY many subpackages (why...)
* Sun Nov 14 2009 Robert Xu <robxu9@gmail.com> 1.41.9-1
- Created Initial Spec File.
openSUSE Build Service is sponsored by