#
# Conditional build:
-%bcond_without python # don't build python-magic module
+%bcond_without python2 # don't build python-magic module for Python 2.x
+%bcond_without python3 # don't build python-magic module for Python 3.x
%bcond_without static_libs # don't build static libraries
%bcond_without tests # don't perform "make check"
-#
+
Summary: A utility for determining file types
Summary(cs.UTF-8): Program pro zjišťování typu souborů
Summary(da.UTF-8): Et værktøj til bestemmelse af filtyper
Summary(zh_CN.UTF-8): 判定文件类型的工具。
Summary(zh_TW.UTF-8): 用於決定檔案類型的一個工具程式。
Name: file
-Version: 5.03
+Version: 5.20
Release: 1
License: distributable
Group: Applications/File
-URL: http://www.darwinsys.com/file/
Source0: ftp://ftp.astron.com/pub/file/%{name}-%{version}.tar.gz
-# Source0-md5: d05f08a53e5c2f51f8ee6a4758c0cc53
-Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
-# Source1-md5: c157a183b64156f8baafaefd9cbf04c1
+# Source0-md5: 5d5e13eb3e0e13839da869a31790faf2
+Source1: http://ftp1.pld-linux.org/people/glen/%{name}-non-english-man-pages.tar.bz2
+# Source1-md5: 6a45bcaefd19b94db36a1b2b7c5b806b
Source2: %{name}-zisofs.magic
Source3: %{name}-mscompress.magic
Source4: %{name}-magic.mime-gen.awk
-Patch0: %{name}-debian.patch
-Patch1: %{name}-sparc.patch
-Patch2: %{name}-lmagic.patch
-Patch3: %{name}-greedy-dump.patch
-Patch4: %{name}-selinux.patch
-Patch5: %{name}-msdos.patch
-Patch6: %{name}-fusecompress.patch
-BuildRequires: autoconf
+Patch0: %{name}-selinux.patch
+Patch1: searchpath.patch
+Patch2: automake.patch
+Patch3: %{name}-perl.patch
+URL: http://www.darwinsys.com/file/
+BuildRequires: autoconf >= 2.50
BuildRequires: automake
-BuildRequires: libtool
-%if %{with python}
-BuildRequires: python-devel >= 1:2.5
-BuildRequires: python-modules >= 1:2.5
+BuildRequires: libtool >= 2:2.0
+BuildRequires: rpmbuild(macros) >= 1.453
+%if %{with python2}
+BuildRequires: python-devel
+BuildRequires: python-modules
BuildRequires: rpm-pythonprov
%endif
+%if %{with python3}
+BuildRequires: python3-devel
+BuildRequires: python3-modules
+BuildRequires: rpm-pythonprov
+%endif
+BuildRequires: zlib-devel
+Requires(pretrans): coreutils
Requires: libmagic = %{version}-%{release}
Conflicts: rpm-build < 4.4.1-9
Conflicts: xdelta < 1.0.0
Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libmagic
Group: Development/Libraries
Requires: libmagic = %{version}-%{release}
+Requires: zlib-devel
%description -n libmagic-devel
Library of functions which operate on magic database file.
Ten pakiet zawiera statyczną wersję biblioteki.
%package -n python-magic
-Summary: Python bindings for libmagic
-Summary(pl.UTF-8): Wiązania Pythona dla libmagic
+Summary: Python 2 bindings for libmagic
+Summary(pl.UTF-8): Wiązania Pythona 2 do biblioteki libmagic
Group: Libraries/Python
Requires: libmagic = %{version}-%{release}
-%pyrequires_eq python-libs
+Requires: python-libs
%description -n python-magic
-Python bindings for libmagic.
+Python 2 bindings for libmagic.
%description -n python-magic -l pl.UTF-8
-Wiązania Pythona dla libmagic.
+Wiązania Pythona 2 do biblioteki libmagic.
+
+%package -n python3-magic
+Summary: Python 3 bindings for libmagic
+Summary(pl.UTF-8): Wiązania Pythona 3 do biblioteki libmagic
+Group: Libraries/Python
+Requires: libmagic = %{version}-%{release}
+Requires: python-libs
+
+%description -n python3-magic
+Python 3 bindings for libmagic.
+
+%description -n python3-magic -l pl.UTF-8
+Wiązania Pythona 3 do biblioteki libmagic.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
+
+%if "%{cc_version}" < "3.4"
+%{__sed} -i -e 's,-Wextra,,' configure.ac
+%endif
+
+cp -p %{SOURCE3} magic/Magdir/mscompress
+cp -p %{SOURCE2} magic/Magdir/zisofs
rm -f magic/Magdir/{*.orig,*~}
+%if %{with python3}
+cp -a python py3
+%endif
+
%build
%{__libtoolize}
%{__aclocal}
%{__autoconf}
%{__automake}
%configure \
+ --disable-silent-rules \
--enable-fsect-man5 \
- %{!?with_static_libs:--enable-static=no}
+ %{?with_static_libs:--enable-static}
%{__make}
-%if %{with python}
+%if %{with python2}
cd python
-python setup.py build
+%{__python} setup.py build
+cd ..
+%endif
+%if %{with python3}
+cd py3
+%{__python3} setup.py build
cd ..
%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/%{_lib},%{_datadir}/file}
+install -d $RPM_BUILD_ROOT/%{_lib}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libmagic.so.*.*.*) \
$RPM_BUILD_ROOT%{_libdir}/libmagic.so
-%if %{with python}
+%if %{with python2}
cd python
-python setup.py install \
- --root=$RPM_BUILD_ROOT \
- --optimize=2
+%{__python} setup.py install \
+ --optimize=2 \
+ --root=$RPM_BUILD_ROOT
cd ..
+%py_postclean
%endif
-install -D magic/Localstuff $RPM_BUILD_ROOT%{_sysconfdir}/magic
+%if %{with python3}
+cd py3
+%{__python3} setup.py install \
+ --optimize=2 \
+ --skip-build \
+ --root=$RPM_BUILD_ROOT
+cd ..
+%endif
-cat magic/Header magic/Magdir/* %{SOURCE2} %{SOURCE3} >$RPM_BUILD_ROOT%{_datadir}/file/magic
-awk -f %{SOURCE4} <$RPM_BUILD_ROOT%{_datadir}/file/magic >$RPM_BUILD_ROOT%{_datadir}/file/magic.mime
+awk -f %{SOURCE4} < $RPM_BUILD_ROOT%{_datadir}/misc/magic > $RPM_BUILD_ROOT%{_datadir}/misc/magic.mime
+ln -s misc $RPM_BUILD_ROOT%{_datadir}/file
bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-
-# somebody forgot about patching in tarball
-mv -f $RPM_BUILD_ROOT%{_mandir}/pt_BR/man{4,5}
-sed -e 's/MAGIC 4/MAGIC 5/' $RPM_BUILD_ROOT%{_mandir}/pt_BR/man5/magic.4 \
- > $RPM_BUILD_ROOT%{_mandir}/pt_BR/man5/magic.5
-rm -f $RPM_BUILD_ROOT%{_mandir}/pt_BR/man5/magic.4
-
-src/file -m $RPM_BUILD_ROOT%{_datadir}/file/magic -c -C
-
-rm -f $RPM_BUILD_ROOT%{_mandir}/README.file-non-english-man-pages
-rm -f $RPM_BUILD_ROOT%{_mandir}/file-magic4.diff
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.file-non-english-man-pages
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/file-magic4.diff
%clean
rm -rf $RPM_BUILD_ROOT
%post -n libmagic -p /sbin/ldconfig
%postun -n libmagic -p /sbin/ldconfig
+%pretrans
+# it used to be directory
+if [ -d %{_datadir}/file -a ! -L %{_datadir}/file ]; then
+ mv -b %{_datadir}/file{,.dir}
+ ln -sn misc %{_datadir}/file
+%banner -e %{name} <<EOF
+Check %{_datadir}/file.dir for your own files and remove it when done.
+EOF
+fi
+
%files
%defattr(644,root,root,755)
%doc ChangeLog COPYING README
%{_datadir}/file
%{_datadir}/misc/magic
%{_datadir}/misc/magic.mgc
+%{_datadir}/misc/magic.mime
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/magic
%{_mandir}/man1/file.1*
%{_mandir}/man5/magic.5*
%{_libdir}/libmagic.a
%endif
-%if %{with python}
+%if %{with python3}
%files -n python-magic
%defattr(644,root,root,755)
-%attr(755,root,root) %{py_sitedir}/magic.so
-%{py_sitedir}/Magic_file_extensions-*.egg-info
+%doc python/README python/example.py
+%if "%{py_ver}" > "2.4"
+%{py_sitescriptdir}/Magic_file_extensions-*.egg-info
+%endif
+%{py_sitescriptdir}/magic.py[co]
+%endif
+
+%if %{with_python3}
+%files -n python3-magic
+%defattr(644,root,root,755)
+%doc python/README python/example.py
+%{py3_sitescriptdir}/magic.py
+%{py3_sitescriptdir}/__pycache__/magic.*.py[co]
+%{py3_sitescriptdir}/Magic_file_extensions-*.egg-info
%endif