MAGIC_DIR = $(top_srcdir)/magic
MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE)
-pkgdata_DATA = magic.mgc
+pkgdatafull_DATA = magic_full.mgc
+pkgdatamini_DATA = magic_mini.mgc
-EXTRA_DIST = \
+EXTRA_FULL_DIST = \
$(MAGIC_DIR)/Header \
$(MAGIC_DIR)/Localstuff \
$(MAGIC_FRAGMENT_DIR)/acorn \
$(MAGIC_FRAGMENT_DIR)/yara \
$(MAGIC_FRAGMENT_DIR)/zfs \
$(MAGIC_FRAGMENT_DIR)/zilog \
-$(MAGIC_FRAGMENT_DIR)/zyxel
+$(MAGIC_FRAGMENT_DIR)/zyxel
-MAGIC = magic.mgc
-CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff
+MAGIC_FULL = magic_full.mgc
+CLEANFILES = ${MAGIC_FULL} $(MAGIC_FRAGMENT_DIR)/Localstuff
# FIXME: Build file natively as well so that it can be used to compile
# the target's magic file; for now we bail if the local version does not match
FILE_COMPILE_DEP = $(FILE_COMPILE)
endif
-${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP)
- @rm -fr magic
- @mkdir magic && cp -p $(EXTRA_DIST) magic
+${MAGIC_FULL}: $(EXTRA_DIST) $(FILE_COMPILE_DEP)
+ @rm -fr magic_full
+ @mkdir magic_full && cp -p $(EXTRA_FULL_DIST) magic_full
@(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \
echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \
else \
exit 1; \
fi; \
fi)
- LD_LIBRARY_PATH=../src/.libs $(FILE_COMPILE) -C -m magic
- @rm -fr magic
+ LD_LIBRARY_PATH=../src/.libs $(FILE_COMPILE) -C -m magic_full
+ @rm -fr magic_full
+
+EXTRA_MINI_DIST = \
+$(MAGIC_DIR)/Header \
+$(MAGIC_DIR)/Localstuff \
+$(MAGIC_FRAGMENT_DIR)/filesystems \
+$(MAGIC_FRAGMENT_DIR)/rpm
+
+MAGIC_MINI = magic_mini.mgc
+CLEANFILES = ${MAGIC_MINI} $(MAGIC_FRAGMENT_DIR)/Localstuff
+
+${MAGIC_MINI}: $(EXTRA_DIST) $(FILE_COMPILE_DEP)
+ @rm -fr magic_mini
+ @mkdir magic_mini && cp -p $(EXTRA_MINI_DIST) magic_mini
+ @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \
+ echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \
+ else \
+ v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \
+ if [ "$$v" != "${PACKAGE_VERSION}" ]; then \
+ echo "Cannot use the installed version of file ($$v) to"; \
+ echo "cross-compile file ${PACKAGE_VERSION}"; \
+ echo "Please install file ${PACKAGE_VERSION} locally first"; \
+ exit 1; \
+ fi; \
+ fi)
+ LD_LIBRARY_PATH=../src/.libs $(FILE_COMPILE) -C -m magic_mini
+ @rm -fr magic_mini
/etc/magic, which contains the classification criteria. This command is
used by apsfilter to permit automatic printing of different file types.
-%package -n libmagic-data
+%package -n libmagic-data-full
Summary: The magic files for libmagic to use
Group: System/Libraries
+Provides: libmagic-data
-%description -n libmagic-data
+%description -n libmagic-data-full
+This package contains the basic magic files that libmagic reads and uses
+to estimate a file's type.
+
+%package -n libmagic-data-mini
+Summary: The magic files for libmagic to use
+Group: System/Libraries
+Provides: libmagic-data
+
+%description -n libmagic-data-mini
This package contains the basic magic files that libmagic reads and uses
to estimate a file's type.
Summary: Library with file's functionality
Group: System/Libraries
Requires: libmagic-data = %{version}
+Recommends: libmagic-data-full
Provides: libfile
Obsoletes: libfile =< 5.04
echo '# global magic file is %{_miscdir}/magic(.mgc)' >> %{buildroot}%{_sysconfdir}/magic
%{nil install -s dcore %{buildroot}%{_bindir}}
# Check out that the binary does not bail out:
+ln -sf %{buildroot}%{_miscdir}/magic_full.mgc %{buildroot}%{_miscdir}/magic.mgc
LD_LIBRARY_PATH=%{buildroot}%{_libdir}
export LD_LIBRARY_PATH
%{buildroot}%{_bindir}/file --version
find %{buildroot}%{_bindir}/file %{_bindir}/ /%{_lib}/ %{_libdir}/ | \
- xargs %{buildroot}%{_bindir}/file -m %{buildroot}%{_miscdir}/magic
+ xargs %{buildroot}%{_bindir}/file -m %{buildroot}%{_miscdir}/magic.mgc
unset LD_LIBRARY_PATH
%{__rm} -f %{buildroot}%{_libdir}/*.la
+%{__rm} -f %{buildroot}%{_miscdir}/magic.mgc
+
+%remove_docs
%post -n libmagic -p /sbin/ldconfig
+%post -n libmagic-data-full
+ln -sf %{_miscdir}/magic_full.mgc %{_miscdir}/magic.mgc
+
+%post -n libmagic-data-mini
+ln -sf %{_miscdir}/magic_mini.mgc %{_miscdir}/magic.mgc
+
%postun -n libmagic -p /sbin/ldconfig
%files -n libmagic
%manifest %{name}.manifest
%defattr (644,root,root,755)
%license COPYING
+%config(noreplace) %{_sysconfdir}/magic
%{_libdir}/lib*.so.*
-%files -n libmagic-data
+%files -n libmagic-data-full
%manifest %{name}.manifest
%defattr (644,root,root,755)
%license COPYING
-%config(noreplace) %{_sysconfdir}/magic
-#%%{_miscdir}/magic
-%{_miscdir}/magic.mgc
-%doc %{_mandir}/man5/magic.5.gz
+%{_miscdir}/magic_full.mgc
+
+%files -n libmagic-data-mini
+%manifest %{name}.manifest
+%defattr (644,root,root,755)
+%license COPYING
+%{_miscdir}/magic_mini.mgc
%files
%manifest %{name}.manifest
%defattr (644,root,root,755)
%{nil %{_bindir}/dcore}
%attr(755,root,root) %{_bindir}/file
-%doc %{_mandir}/man1/file.1.gz
%license COPYING
%files -n file-devel
%defattr (644,root,root,755)
%{_libdir}/lib*.so
%{_includedir}/magic.h
-%doc %{_mandir}/man3/libmagic.3.gz
%license COPYING