From: Jakub Bogusz Date: Sat, 2 Nov 2013 14:33:29 +0000 (+0100) Subject: - added shared patch, build shared libraries X-Git-Tag: auto/th/mupdf-1.3-1~1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fmupdf.git;a=commitdiff_plain;h=f735ca8151cfbff7d005ea3f15b92a806f70eb9c - added shared patch, build shared libraries --- diff --git a/mupdf-shared.patch b/mupdf-shared.patch new file mode 100644 index 0000000..e860ab0 --- /dev/null +++ b/mupdf-shared.patch @@ -0,0 +1,187 @@ +--- mupdf-1.3-source/Makefile.orig 2013-08-14 14:41:20.000000000 +0200 ++++ mupdf-1.3-source/Makefile 2013-11-02 09:52:33.336720500 +0100 +@@ -44,17 +44,24 @@ + ifeq "$(verbose)" "" + QUIET_AR = @ echo ' ' ' ' AR $@ ; + QUIET_CC = @ echo ' ' ' ' CC $@ ; ++QUIET_LTCC = @ echo ' ' ' ' LTCC $@ ; + QUIET_CXX = @ echo ' ' ' ' CXX $@ ; ++QUIET_LTCXX = @ echo ' ' ' ' LTCXX $@ ; + QUIET_GEN = @ echo ' ' ' ' GEN $@ ; + QUIET_LINK = @ echo ' ' ' ' LINK $@ ; ++QUIET_LTLINK = @ echo ' ' ' ' LTLINK $@ ; + QUIET_MKDIR = @ echo ' ' ' ' MKDIR $@ ; + QUIET_RM = @ echo ' ' ' ' RM $@ ; + endif + + CC_CMD = $(QUIET_CC) $(CC) $(CFLAGS) -o $@ -c $< ++LTCC_CMD = $(QUIET_LTCC) libtool --mode=compile --tag=CC $(CC) $(CFLAGS) -o $@ -c $< + CXX_CMD = $(QUIET_CXX) $(CXX) $(CFLAGS) -o $@ -c $< ++LTCXX_CMD = $(QUIET_CXX) libtool --mode=compile --tag=CXX $(CXX) $(CFLAGS) -o $@ -c $< + AR_CMD = $(QUIET_AR) $(AR) cr $@ $^ + LINK_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) ++LTLINK_CMD = $(QUIET_LINK) libtool --mode=link --tag=CC $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) ++LTLINKCXX_CMD = $(QUIET_LINK) libtool --mode=link --tag=CXX $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS) + MKDIR_CMD = $(QUIET_MKDIR) mkdir -p $@ + RM_CMD = $(QUIET_RM) rm -f $@ + +@@ -86,35 +93,37 @@ + CBZ_SRC_HDR := $(wildcard source/cbz/*.h) + IMG_SRC_HDR := $(wildcard source/img/*.h) + +-FITZ_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(FITZ_SRC)))) +-PDF_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(PDF_SRC)))) +-XPS_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(XPS_SRC)))) +-CBZ_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(CBZ_SRC)))) +-IMG_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(IMG_SRC)))) +- +-PDF_JS_V8_OBJ := $(OUT)/pdf/js/pdf-js.o $(OUT)/pdf/js/pdf-jsimp-cpp.o $(OUT)/pdf/js/pdf-jsimp-v8.o +-PDF_JS_NONE_OBJ := $(OUT)/pdf/js/pdf-js-none.o +- +-$(FITZ_OBJ) : $(FITZ_HDR) $(FITZ_SRC_HDR) +-$(PDF_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) +-$(XPS_OBJ) : $(FITZ_HDR) $(XPS_HDR) $(XPS_SRC_HDR) +-$(CBZ_OBJ) : $(FITZ_HDR) $(CBZ_HDR) $(CBZ_SRC_HDR) +-$(IMG_OBJ) : $(FITZ_HDR) $(IMG_HDR) $(IMG_SRC_HDR) ++FITZ_LOBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(FITZ_SRC)))) ++PDF_LOBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(PDF_SRC)))) ++XPS_LOBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(XPS_SRC)))) ++CBZ_LOBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(CBZ_SRC)))) ++IMG_LOBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(IMG_SRC)))) ++ ++PDF_JS_V8_LOBJ := $(OUT)/pdf/js/pdf-js.lo $(OUT)/pdf/js/pdf-jsimp-cpp.lo $(OUT)/pdf/js/pdf-jsimp-v8.lo ++PDF_JS_NONE_LOBJ := $(OUT)/pdf/js/pdf-js-none.lo ++ ++$(FITZ_LOBJ) : $(FITZ_HDR) $(FITZ_SRC_HDR) ++$(PDF_LOBJ) : $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) ++$(XPS_LOBJ) : $(FITZ_HDR) $(XPS_HDR) $(XPS_SRC_HDR) ++$(CBZ_LOBJ) : $(FITZ_HDR) $(CBZ_HDR) $(CBZ_SRC_HDR) ++$(IMG_LOBJ) : $(FITZ_HDR) $(IMG_HDR) $(IMG_SRC_HDR) + +-$(PDF_JS_V8_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) +-$(PDF_JS_NONE_OBJ) := $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) ++$(PDF_JS_V8_LOBJ) : $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) ++$(PDF_JS_NONE_LOBJ) := $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) + + # --- Library --- + +-MUPDF_LIB := $(OUT)/libmupdf.a +-MUPDF_JS_NONE_LIB := $(OUT)/libmupdf-js-none.a ++MUPDF_LIB := $(OUT)/libmupdf.la ++MUPDF_JS_NONE_LIB := $(OUT)/libmupdf-js-none.la + +-$(MUPDF_LIB) : $(FITZ_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(CBZ_OBJ) $(IMG_OBJ) +-$(MUPDF_JS_NONE_LIB) : $(PDF_JS_NONE_OBJ) ++$(MUPDF_LIB) : $(FITZ_LOBJ) $(PDF_LOBJ) $(XPS_LOBJ) $(CBZ_LOBJ) $(IMG_LOBJ) ++$(MUPDF_JS_NONE_LIB) : $(PDF_JS_NONE_LOBJ) $(MUPDF_LIB) + + ifeq "$(V8_PRESENT)" "yes" +-MUPDF_JS_V8_LIB := $(OUT)/libmupdf-js-v8.a +-$(MUPDF_JS_V8_LIB) : $(PDF_JS_V8_OBJ) ++MUPDF_JS_V8_LIB := $(OUT)/libmupdf-js-v8.la ++$(MUPDF_JS_V8_LIB) : $(PDF_JS_V8_LOBJ) $(MUPDF_LIB) ++$(MUPDF_JS_V8_LIB) :: LDLIBS += -lv8 ++$(MUPDF_JS_V8_LIB) :: LTLINK_CMD = $(LTLINKCXX_CMD) + endif + + INSTALL_LIBS := $(MUPDF_LIB) $(MUPDF_JS_NONE_LIB) $(MUPDF_JS_V8_LIB) +@@ -124,10 +131,8 @@ + $(ALL_DIR) $(OUT) $(GEN) : + $(MKDIR_CMD) + +-$(OUT)/%.a : +- $(RM_CMD) +- $(AR_CMD) +- $(RANLIB_CMD) ++$(OUT)/%.la : ++ $(LTLINK_CMD) -rpath $(libdir) $(LDLIBS) + + $(OUT)/%: $(OUT)/%.o + $(LINK_CMD) +@@ -138,6 +142,12 @@ + $(OUT)/%.o : source/%.cpp | $(ALL_DIR) + $(CXX_CMD) + ++$(OUT)/%.lo : source/%.c | $(ALL_DIR) ++ $(LTCC_CMD) ++ ++$(OUT)/%.lo : source/%.cpp | $(ALL_DIR) ++ $(LTCXX_CMD) ++ + $(OUT)/%.o : scripts/%.c | $(OUT) + $(CC_CMD) + +@@ -208,10 +219,10 @@ + + generate: $(CMAP_GEN) $(FONT_GEN) $(JAVASCRIPT_GEN) $(ADOBECA_GEN) + +-$(OUT)/pdf/pdf-cmap-table.o : $(CMAP_GEN) +-$(OUT)/pdf/pdf-fontfile.o : $(FONT_GEN) +-$(OUT)/pdf/pdf-pkcs7.o : $(ADOBECA_GEN) +-$(OUT)/pdf/js/pdf-js.o : $(JAVASCRIPT_GEN) ++$(OUT)/pdf/pdf-cmap-table.lo : $(CMAP_GEN) ++$(OUT)/pdf/pdf-fontfile.lo : $(FONT_GEN) ++$(OUT)/pdf/pdf-pkcs7.lo : $(ADOBECA_GEN) ++$(OUT)/pdf/js/pdf-js.lo : $(JAVASCRIPT_GEN) + $(OUT)/cmapdump.o : source/pdf/pdf-cmap.c source/pdf/pdf-cmap-parse.c + + # --- Tools and Apps --- +@@ -219,31 +230,31 @@ + MUDRAW := $(addprefix $(OUT)/, mudraw) + $(MUDRAW) : $(MUPDF_LIB) $(MUPDF_JS_NONE_LIB) $(THIRD_LIBS) + $(MUDRAW) : $(addprefix $(OUT)/tools/, mudraw.o) +- $(LINK_CMD) ++ $(LTLINK_CMD) + + MUTOOL := $(addprefix $(OUT)/, mutool) + $(MUTOOL) : $(MUPDF_LIB) $(MUPDF_JS_NONE_LIB) $(THIRD_LIBS) + $(MUTOOL) : $(addprefix $(OUT)/tools/, mutool.o pdfclean.o pdfextract.o pdfinfo.o pdfposter.o pdfshow.o) +- $(LINK_CMD) ++ $(LTLINK_CMD) + + ifeq "$(V8_PRESENT)" "yes" + MUJSTEST_V8 := $(OUT)/mujstest-v8 + $(MUJSTEST_V8) : $(MUPDF_LIB) $(MUPDF_JS_V8_LIB) $(THIRD_LIBS) + $(MUJSTEST_V8) : $(addprefix $(OUT)/platform/x11/, jstest_main.o pdfapp.o) +- $(LINK_CMD) $(V8_LIBS) ++ $(LTLINK_CMD) $(V8_LIBS) + endif + + ifeq "$(NOX11)" "" + MUVIEW_X11 := $(OUT)/mupdf-x11 + $(MUVIEW_X11) : $(MUPDF_LIB) $(MUPDF_JS_NONE_LIB) $(THIRD_LIBS) + $(MUVIEW_X11) : $(addprefix $(OUT)/platform/x11/, x11_main.o x11_image.o pdfapp.o) +- $(LINK_CMD) $(X11_LIBS) ++ $(LTLINK_CMD) $(X11_LIBS) + + ifeq "$(NOCURL)" "" + MUVIEW_X11_CURL := $(OUT)/mupdf-x11-curl + $(MUVIEW_X11_CURL) : $(MUPDF_LIB) $(MUPDF_JS_NONE_LIB) $(THIRD_LIBS) $(CURL_LIB) + $(MUVIEW_X11_CURL) : $(addprefix $(OUT)/platform/x11/curl/, x11_main.o x11_image.o pdfapp.o curl_stream.o) +- $(LINK_CMD) $(X11_LIBS) $(CURL_LIBS) ++ $(LTLINK_CMD) $(X11_LIBS) $(CURL_LIBS) + endif + endif + +@@ -252,7 +263,7 @@ + MUVIEW_X11_V8 := $(OUT)/mupdf-x11-v8 + $(MUVIEW_X11_V8) : $(MUPDF_LIB) $(MUPDF_JS_V8_LIB) $(THIRD_LIBS) + $(MUVIEW_X11_V8) : $(addprefix $(OUT)/platform/x11/, x11_main.o x11_image.o pdfapp.o) +- $(LINK_CMD) $(X11_LIBS) $(V8_LIBS) ++ $(LTLINK_CMD) $(X11_LIBS) $(V8_LIBS) + endif + endif + +@@ -294,10 +305,10 @@ + install include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf + + install -d $(DESTDIR)$(libdir) +- install $(INSTALL_LIBS) $(DESTDIR)$(libdir) ++ libtool --mode=install install $(INSTALL_LIBS) $(DESTDIR)$(libdir) + + install -d $(DESTDIR)$(bindir) +- install $(INSTALL_APPS) $(DESTDIR)$(bindir) ++ libtool --mode=install install $(INSTALL_APPS) $(DESTDIR)$(bindir) + + install -d $(DESTDIR)$(mandir)/man1 + install docs/man/*.1 $(DESTDIR)$(mandir)/man1 diff --git a/mupdf.spec b/mupdf.spec index dfc669c..146a360 100644 --- a/mupdf.spec +++ b/mupdf.spec @@ -1,22 +1,23 @@ -# TODO: build shared library Summary: MuPDF - lightweight PDF, XPS and CBZ viewer and parser/rendering library Summary(pl.UTF-8): MuPDF - lekka przeglądarka oraz biblioteka renderująca PDF, XPS, CBZ Name: mupdf Version: 1.3 -Release: 0.1 -License: AGPL v3 -Group: Libraries +Release: 1 +License: AGPL v3+ +Group: Applications/Text #Source0Download: http://code.google.com/p/mupdf/downloads/list?q=source Source0: http://mupdf.googlecode.com/files/%{name}-%{version}-source.tar.gz # Source0-md5: fe53c2a56ebd7759f5f965bc4ff66359 Patch0: %{name}-openjpeg.patch Patch1: %{name}-curl.patch Patch2: %{name}-v8.patch +Patch3: %{name}-shared.patch URL: http://www.mupdf.com/ BuildRequires: curl-devel BuildRequires: freetype-devel >= 2 BuildRequires: jbig2dec-devel BuildRequires: libjpeg-devel +BuildRequires: libstdc++-devel BuildRequires: openjpeg2-devel >= 2 BuildRequires: openssl-devel BuildRequires: pkgconfig @@ -24,8 +25,12 @@ BuildRequires: v8-devel BuildRequires: xorg-lib-libX11-devel BuildRequires: xorg-lib-libXext-devel BuildRequires: zlib-devel +Requires: %{name}-libs = %{version}-%{release} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +# needs symbols from one of libmupdf-js-* +%define skip_post_check_so libmupdf.so.* + %description MuPDF is a lightweight PDF, XPS and CBZ viewer and parser/rendering library. @@ -34,44 +39,68 @@ library. MuPDF to lekka przeglądarka oraz biblioteka analizująca/renderująca pliki PDF, XPS i CBZ. +%package libs +Summary: Shared MuPDF libraries +Summary(pl.UTF-8): Biblioteki współdzielone MuPDF +Group: Libraries + +%description libs +Shared MuPDF libraries. + +%description libs -l pl.UTF-8 +Biblioteki współdzielone MuPDF. + %package devel -Summary: Header files for MuPDF library -Summary(pl.UTF-8): Pliki nagłówkowe biblioteki MuPDF +Summary: Header files for MuPDF libraries +Summary(pl.UTF-8): Pliki nagłówkowe bibliotek MuPDF Group: Development/Libraries -Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Requires: freetype2-devel >= 2 +Requires: jbig2dec-devel +Requires: libjpeg-devel +Requires: libstdc++-devel +Requires: openjpeg2-devel >= 2 +Requires: openssl-devel +Requires: v8-devel +Requires: zlib-devel %description devel -Header files for MuPDF library. +Header files for MuPDF libraries. %description devel -l pl.UTF-8 -Pliki nagłówkowe biblioteki MuPDF. +Pliki nagłówkowe bibliotek MuPDF. %package static -Summary: Static MuPDF library -Summary(pl.UTF-8): Statyczna biblioteka MuPDF +Summary: Static MuPDF libraries +Summary(pl.UTF-8): Statyczne biblioteki MuPDF Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static -Static MuPDF library. +Static MuPDF libraries. %description static -l pl.UTF-8 -Statyczna biblioteka MuPDF. +Statyczne biblioteki MuPDF. %prep %setup -q -n %{name}-%{version}-source %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 +# use system libs instead %{__rm} -r thirdparty/{curl,freetype,jbig2dec,jpeg,openjpeg,zlib} %build CFLAGS="%{rpmcflags} %{rpmcppflags}" \ +LDFLAGS="%{rpmldflags}" \ %{__make} \ CC="%{__cc}" \ + CXX="%{__cxx}" \ V8_PRESENT=yes \ build=release \ + libdir=%{_libdir} \ verbose=1 %install @@ -90,8 +119,8 @@ rm -rf $RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT -#%post -p /sbin/ldconfig -#%postun -p /sbin/ldconfig +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig %files %defattr(644,root,root,755) @@ -106,18 +135,28 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/mupdf.1* %{_mandir}/man1/mutool.1* +%files libs +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libmupdf.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libmupdf.so.0 +%attr(755,root,root) %{_libdir}/libmupdf-js-none.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libmupdf-js-none.so.0 +%attr(755,root,root) %{_libdir}/libmupdf-js-v8.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libmupdf-js-v8.so.0 + %files devel %defattr(644,root,root,755) %doc docs/{naming,overview,progressive,refcount,thirdparty}.txt -%{_libdir}/libmupdf.a -%{_libdir}/libmupdf-js-none.a -%{_libdir}/libmupdf-js-v8.a +%attr(755,root,root) %{_libdir}/libmupdf.so +%attr(755,root,root) %{_libdir}/libmupdf-js-none.so +%attr(755,root,root) %{_libdir}/libmupdf-js-v8.so +%{_libdir}/libmupdf.la +%{_libdir}/libmupdf-js-none.la +%{_libdir}/libmupdf-js-v8.la %{_includedir}/mupdf -%if 0 %files static %defattr(644,root,root,755) %{_libdir}/libmupdf.a %{_libdir}/libmupdf-js-none.a %{_libdir}/libmupdf-js-v8.a -%endif