[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