From: DongHun Kwak Date: Mon, 31 Jul 2017 08:01:20 +0000 (+0900) Subject: Reduce libmagic-data package size X-Git-Tag: accepted/tizen/base/20170804.132433^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0a5dec097d7a281e077a2488c768b516334dcda0;p=platform%2Fupstream%2Ffile.git Reduce libmagic-data package size - for ivi build [Model] all [BinType] AP [Customer] OPEN [Issue#] N/A [Request] N/A [Occurrence Version] N/A [Problem] [Cause & Measure] [Checking Method] N/A [Team] Open Source Management and Setting Part [Developer] dh0128.kwak [Solution company] Samsung [Change Type] N/A Change-Id: I4e25d118d0f4027034c1028ce9b04d7f62280f83 Signed-off-by: DongHun Kwak --- diff --git a/configure.ac b/configure.ac index 8d0c581..c011615 100644 --- a/configure.ac +++ b/configure.ac @@ -66,7 +66,8 @@ esac AC_SUBST(MINGW) AM_CONDITIONAL(MINGW, test "$MINGW" = 1) -AC_SUBST([pkgdatadir], ['$(datadir)/misc']) +AC_SUBST([pkgdatafulldir], ['$(datadir)']) +AC_SUBST([pkgdataminidir], ['$(datadir)']) AC_SUBST(fsect) AM_CONDITIONAL(FSECT5, test x$fsect = x5) diff --git a/magic/Makefile.am b/magic/Makefile.am index c0aa55c..40b9af9 100644 --- a/magic/Makefile.am +++ b/magic/Makefile.am @@ -5,9 +5,10 @@ MAGIC_FRAGMENT_BASE = Magdir 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 \ @@ -291,10 +292,10 @@ $(MAGIC_FRAGMENT_DIR)/xwindows \ $(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 @@ -306,9 +307,9 @@ FILE_COMPILE = $(top_builddir)/src/file${EXEEXT} 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 \ @@ -320,5 +321,31 @@ ${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP) 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 diff --git a/packaging/file.spec b/packaging/file.spec index 767a833..05e209d 100644 --- a/packaging/file.spec +++ b/packaging/file.spec @@ -23,11 +23,21 @@ specified file. File type recognition is controlled by the file /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. @@ -35,6 +45,7 @@ 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 @@ -88,39 +99,52 @@ echo '# Localstuff: file(1) magic(5) for locally observed files' > %{buildroot}% 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 @@ -128,5 +152,4 @@ unset LD_LIBRARY_PATH %defattr (644,root,root,755) %{_libdir}/lib*.so %{_includedir}/magic.h -%doc %{_mandir}/man3/libmagic.3.gz %license COPYING