[openjpeg] - -devel: %_includedir/openjpeg/ symlink - add pkgconfig support (to cmake build)

Rex Dieter rdieter at fedoraproject.org
Thu Jan 13 14:58:10 UTC 2011


commit 0516f1e662600145426dee5fb97265bc56958c4e
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Thu Jan 13 08:57:12 2011 -0600

    - -devel: %_includedir/openjpeg/ symlink
    - add pkgconfig support (to cmake build)

 openjpeg-1.4-autoconf.patch        |   78 ++++++++++++++++++++++++++++++++++++
 openjpeg-1.4-cmake_pkgconfig.patch |   36 ++++++++++++++++
 openjpeg-1.4-no_undefined.patch    |   13 ++++++-
 openjpeg.spec                      |   65 +++++++++++++++++++++++++-----
 4 files changed, 180 insertions(+), 12 deletions(-)
---
diff --git a/openjpeg-1.4-autoconf.patch b/openjpeg-1.4-autoconf.patch
new file mode 100644
index 0000000..988b72b
--- /dev/null
+++ b/openjpeg-1.4-autoconf.patch
@@ -0,0 +1,78 @@
+diff -up openjpeg_v1_4_sources_r697/doc/Makefile.am.autoconf_DESTDIR openjpeg_v1_4_sources_r697/doc/Makefile.am
+--- openjpeg_v1_4_sources_r697/doc/Makefile.am.autoconf_DESTDIR	2011-01-02 12:14:47.000000000 -0600
++++ openjpeg_v1_4_sources_r697/doc/Makefile.am	2011-01-12 12:12:20.959518549 -0600
+@@ -20,30 +20,30 @@ all-local:
+ 	@cp man/man3/* .
+ 
+ install-data-hook:
+-	$(INSTALL) -d $(doc_dir)
+-	$(INSTALL) -d ${mandir}/man1 ${mandir}/man3
++	$(INSTALL) -d $(DESTDIR)$(doc_dir)
++	$(INSTALL) -d $(DESTDIR)${mandir}/man1 $(DESTDIR)${mandir}/man3
+ if with_libjpwl
+-	@(cd ${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image*)
+-	@(cd ${mandir}/man3 && $(RM) JPWL_libopenjpeg* )
++	@(cd $(DESTDIR)${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image*)
++	@(cd $(DESTDIR)${mandir}/man3 && $(RM) JPWL_libopenjpeg* )
+ endif
+-	@(cd ${mandir}/man1 && $(RM) image_to_j2k* j2k_to_image* j2k_dump* )
+-	@(cd ${mandir}/man3 && $(RM) libopenjpeg* )
++	@(cd $(DESTDIR)${mandir}/man1 && $(RM) image_to_j2k* j2k_to_image* j2k_dump* )
++	@(cd $(DESTDIR)${mandir}/man3 && $(RM) libopenjpeg* )
+ 	@gzip -f image_to_j2k.1 j2k_to_image.1 j2k_dump.1 libopenjpeg.3
+-	@cp image_to_j2k.1.gz j2k_to_image.1.gz j2k_dump.1.gz ${mandir}/man1
+-	@cp libopenjpeg.3.gz ${mandir}/man3
++	@cp image_to_j2k.1.gz j2k_to_image.1.gz j2k_dump.1.gz $(DESTDIR)${mandir}/man1
++	@cp libopenjpeg.3.gz $(DESTDIR)${mandir}/man3
+ 	@$(RM) *\.gz
+ if with_libjpwl
+-	@(cd ${mandir}/man1 && \
++	@(cd $(DESTDIR)${mandir}/man1 && \
+ 	$(LN_S) image_to_j2k.1.gz JPWL_image_to_j2k.1.gz && \
+ 	$(LN_S) j2k_to_image.1.gz JPWL_j2k_to_image.1.gz)
+ 	@(cd ${mandir}/man3 && $(LN_S) libopenjpeg.3.gz JPWL_libopenjpeg.3.gz)
+ endif
+-	@$(INSTALL) -m 644 ../LICENSE ../CHANGES $(doc_dir)
++	@$(INSTALL) -m 644 ../LICENSE ../CHANGES $(DESTDIR)$(doc_dir)
+ 
+ uninstall-hook:
+-	@(cd ${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image* && \
++	@(cd $(DESTDIR)${mandir}/man1 && $(RM) JPWL_image_to_j2k* JPWL_j2k_to_image* && \
+ 	$(RM) image_to_j2k* j2k_to_image* j2k_dump* )
+-	@(cd ${mandir}/man3 && $(RM) JPWL_libopenjpeg* && \
++	@(cd $(DESTDIR)${mandir}/man3 && $(RM) JPWL_libopenjpeg* && \
+ 	$(RM) libopenjpeg* )
+-	@(cd $(doc_dir) && $(RM) * )
+-	@rmdir $(doc_dir)
++	@(cd $(DESTDIR)$(doc_dir) && $(RM) * )
++	@rmdir $(DESTDIR)$(doc_dir)
+diff -up openjpeg_v1_4_sources_r697/Makefile.am.autoconf_DESTDIR openjpeg_v1_4_sources_r697/Makefile.am
+--- openjpeg_v1_4_sources_r697/Makefile.am.autoconf_DESTDIR	2011-01-02 12:14:55.000000000 -0600
++++ openjpeg_v1_4_sources_r697/Makefile.am	2011-01-12 12:15:37.006321242 -0600
+@@ -9,7 +9,7 @@ clean-local:
+ 
+ distclean-local: clean-local
+ 
+-pkgconf_dir = /usr/lib/pkgconfig
++pkgconf_dir = $(libdir)/pkgconfig
+ 
+ install-data-hook:
+ 	@echo ""
+@@ -17,12 +17,12 @@ install-data-hook:
+ 	cat $$f/.report.txt ; \
+ 	done
+ 	@echo ""
+-	@echo "Installing: libopenjpeg1.pc $(pkgconf_dir)"
++	@echo "Installing: libopenjpeg1.pc $(DESTDIR)$(pkgconf_dir)"
+ 	@echo ""
+-	@$(INSTALL) -d $(pkgconf_dir)
+-	@cp libopenjpeg.pc $(pkgconf_dir)/libopenjpeg1.pc
+-	@(cd $(pkgconf_dir) && $(RM) libopenjpeg.pc && \
++	@$(INSTALL) -d $(DESTDIR)$(pkgconf_dir)
++	@cp libopenjpeg.pc $(DESTDIR)$(pkgconf_dir)/libopenjpeg1.pc
++	@(cd $(DESTDIR)$(pkgconf_dir) && $(RM) libopenjpeg.pc && \
+ 	$(LN_S) libopenjpeg1.pc libopenjpeg.pc)
+ 
+ uninstall-hook:
+-	@(cd $(pkgconf_dir) && $(RM) libopenjpeg.pc libopenjpeg1.pc)
++	@(cd $(DESTDIR)$(pkgconf_dir) && $(RM) libopenjpeg.pc libopenjpeg1.pc)
diff --git a/openjpeg-1.4-cmake_pkgconfig.patch b/openjpeg-1.4-cmake_pkgconfig.patch
new file mode 100644
index 0000000..179e958
--- /dev/null
+++ b/openjpeg-1.4-cmake_pkgconfig.patch
@@ -0,0 +1,36 @@
+diff -up openjpeg_v1_4_sources_r697/CMakeLists.txt.cmake_pkgconfig openjpeg_v1_4_sources_r697/CMakeLists.txt
+--- openjpeg_v1_4_sources_r697/CMakeLists.txt.cmake_pkgconfig	2011-01-12 13:56:33.013889063 -0600
++++ openjpeg_v1_4_sources_r697/CMakeLists.txt	2011-01-12 13:59:55.124735760 -0600
+@@ -144,6 +144,16 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DI
+                @ONLY IMMEDIATE)
+ ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
+ 
++#----------------------------------------------------------------------------
++# pkgconfig support
++#if(NOT WIN32)
++  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libopenjpeg1.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc )
++  INSTALL( FILES  ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
++# This piece doesn't seem to work, not sure why  -- Rex
++  INSTALL( CODE
++  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink \$ENV{DESTDIR}\${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg1.pc \$ENV{DESTDIR}\${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg.pc)")
++#endif(NOT WIN32)
++
+ #-----------------------------------------------------------------------------
+ # Always build the library
+ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
+diff -up openjpeg_v1_4_sources_r697/libopenjpeg1.pc.cmake.cmake_pkgconfig openjpeg_v1_4_sources_r697/libopenjpeg1.pc.cmake
+--- openjpeg_v1_4_sources_r697/libopenjpeg1.pc.cmake.cmake_pkgconfig	2011-01-12 13:56:33.022889145 -0600
++++ openjpeg_v1_4_sources_r697/libopenjpeg1.pc.cmake	2011-01-12 13:56:33.022889145 -0600
+@@ -0,0 +1,12 @@
++prefix=${CMAKE_INSTALL_PREFIX}
++bindir=${OPENJPEG_INSTALL_BIN_DIR}
++datadir=${OPENJPEG_INSTALL_DATA_DIR}
++libdir=${OPENJPEG_INSTALL_LIB_DIR}
++includedir=${OPENJPEG_INSTALL_INCLUDE_DIR}
++
++Name: openjpeg
++Description: JPEG2000 files library
++URL: http://code.google.com/p/openjpeg/
++Version: ${OPENJPEG_VERSION} 
++Libs: -L${libdir} -lopenjpeg
++Cflags: -I${includedir}
diff --git a/openjpeg-1.4-no_undefined.patch b/openjpeg-1.4-no_undefined.patch
index 16ba52a..78ce84b 100644
--- a/openjpeg-1.4-no_undefined.patch
+++ b/openjpeg-1.4-no_undefined.patch
@@ -1,6 +1,6 @@
 diff -up openjpeg_v1_4_sources_r697/libopenjpeg/CMakeLists.txt.no_undefined openjpeg_v1_4_sources_r697/libopenjpeg/CMakeLists.txt
 --- openjpeg_v1_4_sources_r697/libopenjpeg/CMakeLists.txt.no_undefined	2011-01-02 12:14:45.000000000 -0600
-+++ openjpeg_v1_4_sources_r697/libopenjpeg/CMakeLists.txt	2011-01-03 11:00:00.467021827 -0600
++++ openjpeg_v1_4_sources_r697/libopenjpeg/CMakeLists.txt	2011-01-12 12:15:45.364398086 -0600
 @@ -32,6 +32,10 @@ ENDIF(WIN32)
  ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS})
  SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME} PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES})
@@ -12,3 +12,14 @@ diff -up openjpeg_v1_4_sources_r697/libopenjpeg/CMakeLists.txt.no_undefined open
  # Install library
  INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}
    EXPORT OpenJPEGTargets
+diff -up openjpeg_v1_4_sources_r697/libopenjpeg/Makefile.am.no_undefined openjpeg_v1_4_sources_r697/libopenjpeg/Makefile.am
+--- openjpeg_v1_4_sources_r697/libopenjpeg/Makefile.am.no_undefined	2011-01-02 12:14:45.000000000 -0600
++++ openjpeg_v1_4_sources_r697/libopenjpeg/Makefile.am	2011-01-12 12:18:40.953012288 -0600
+@@ -9,6 +9,7 @@ INCLUDES = -I.. -I.
+ 
+ libopenjpeg_la_LDFLAGS = -no-undefined \
+   -version-info $(CURRENT):$(BUILD):$(MINOR)
++libopenjpeg_la_LIBADD = -lm
+ 
+ SRCS = bio.c cio.c dwt.c event.c image.c j2k.c j2k_lib.c jp2.c jpt.c \
+  mct.c mqc.c openjpeg.c pi.c raw.c t1.c t2.c tcd.c tgt.c
diff --git a/openjpeg.spec b/openjpeg.spec
index 46aa179..76f323e 100644
--- a/openjpeg.spec
+++ b/openjpeg.spec
@@ -1,4 +1,9 @@
 
+# use cmake-buildsys, else autofoo
+# will probably rip this macro out soon, did so to help make
+# upstreamable patches -- Rex
+%define cmake_build 1
+
 ## enable conformance tests, bloats srpm
 # enable for rawhide only, should disable in production releases
 %if 0%{?fedora} > 14
@@ -7,7 +12,7 @@
 
 Name:    openjpeg
 Version: 1.4
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: JPEG 2000 command line tools
 
 Group:   Applications/Multimedia
@@ -20,17 +25,28 @@ Source0: http://openjpeg.googlecode.com/files/openjpeg_v1_4_sources_r697.tgz
 Source1: http://www.crc.ricoh.com/~gormish/jpeg2000conformance/j2kp4files_v1_5.zip
 %endif
 
-BuildRequires: cmake
+%if 0%{?cmake_build}
+BuildRequires: cmake 
+%else
+BuildRequires: automake libtool 
+%endif
 BuildRequires: libtiff-devel
 
 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
 
 ## upstreamable patches
 # libopenjpeg has undefined references, http://bugzilla.redhat.com/467661
+# http://groups.google.com/group/openjpeg/browse_thread/thread/fba9ad2a35b12e6a
 Patch50: openjpeg-1.4-no_undefined.patch
 # Use soversion 3 (instead of 1.4)
 # http://groups.google.com/group/openjpeg/browse_thread/thread/b9a1d1bfb6f8d09a
 Patch51: openjpeg-1.4-cmake_soversion_3.patch
+# fix autoconf buildsys (+DESTDIR support mostly) 
+# http://groups.google.com/group/openjpeg/browse_thread/thread/6326363ebb969a99
+Patch52: openjpeg-1.4-autoconf.patch
+# fix cmake to install pkgconfig file(s)
+# http://groups.google.com/group/openjpeg/browse_thread/thread/545a90cf2b0e4af2
+Patch53: openjpeg-1.4-cmake_pkgconfig.patch
 
 %description
 OpenJPEG is an open-source JPEG 2000 codec written in C. It has been
@@ -60,14 +76,18 @@ developing applications that use OpenJPEG.
 rm -rf libs
 
 %patch50 -p1 -b .no_undefined
+%if 0%{?cmake_build}
 %patch51 -p1 -b .cmake_soversion_3
-
-
-# fix permissions
-find . -type f -print0 | xargs -0 chmod a-x
+%patch53 -p1 -b .cmake_pkgconfig
+%else
+%patch52 -p1 -b .autoconf
+autoreconf -i -f
+%endif
 
 
 %build
+
+%if 0%{?cmake_build}
 mkdir -p %{_target_platform}
 pushd %{_target_platform}
 %{cmake} \
@@ -84,15 +104,28 @@ popd
 
 make %{?_smp_mflags} -C %{_target_platform}
 
+%else
+%configure \
+  --enable-shared \
+  --disable-static
+
+# smp build busted
+make 
+%endif
+
 
 %install
 rm -rf %{buildroot}
 
+%if 0%{?cmake_build}
 make install/fast DESTDIR=%{buildroot} -C %{_target_platform}
-
-# HACK: until pkg-config support lands, temporarily provide
-# openjpeg.h header in legacy location
 ln -s openjpeg-1.4/openjpeg.h %{buildroot}%{_includedir}/openjpeg.h
+ln -s libopenjpeg1.pc %{buildroot}%{_libdir}/pkgconfig/libopenjpeg.pc
+%else
+make install DESTDIR=%{buildroot}
+%endif
+
+ln -s openjpeg-1.4 %{buildroot}%{_includedir}/openjpeg
 
 ## unpackaged files
 # we use %%doc in -libs below instead
@@ -129,17 +162,27 @@ rm -rf %{buildroot}
 %defattr(-,root,root,-)
 %doc CHANGES LICENSE 
 %{_libdir}/libopenjpeg.so.3*
-%{_libdir}/openjpeg-1.4/
 %{_mandir}/man3/libopenjpeg.3*
 
 %files devel
 %defattr(-,root,root,-)
-%{_includedir}/openjpeg.h
 %{_includedir}/openjpeg-1.4/
 %{_libdir}/libopenjpeg.so
+%{_libdir}/pkgconfig/libopenjpeg.pc
+%{_libdir}/pkgconfig/libopenjpeg1.pc
+%if 0%{?cmake_build}
+%{_libdir}/openjpeg-1.4/
+%endif
+# legacy/compat header locations
+%{_includedir}/openjpeg.h
+%{_includedir}/openjpeg/
 
 
 %changelog
+* Thu Jan 13 2011 Rex Dieter <rdieter at fedoraproject.org> - 1.4-2
+- -devel: %%_includedir/openjpeg/ symlink
+- add pkgconfig support (to cmake build)
+
 * Mon Jan 03 2011 Rex Dieter <rdieter at fedoraproject.org> - 1.4-1
 - openjpeg-1.4
 


More information about the scm-commits mailing list