- added shared patch, build shared libraries
authorJakub Bogusz <qboosh@pld-linux.org>
Sat, 2 Nov 2013 14:33:29 +0000 (15:33 +0100)
committerJakub Bogusz <qboosh@pld-linux.org>
Sat, 2 Nov 2013 14:33:29 +0000 (15:33 +0100)
mupdf-shared.patch [new file with mode: 0644]
mupdf.spec

diff --git a/mupdf-shared.patch b/mupdf-shared.patch
new file mode 100644 (file)
index 0000000..e860ab0
--- /dev/null
@@ -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
index dfc669ca3deef54e9fb1b510c0808ffda4d179dd..146a36007df47cdfcc70e83d8f983e64c9d3631e 100644 (file)
@@ -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
This page took 0.088062 seconds and 4 git commands to generate.