From b13d2bd635d8b3ae3733dfc4e63e36e5c219acc3 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Thu, 28 Jun 2012 09:53:00 -0500 Subject: [PATCH] 0.2.6-1 - lensfun-0.2.6 (#836156) - use cmake - use pkgconfig-style deps Don't actually build yet, want to try some local build-time and runtime testing with dependent apps first --- .gitignore | 3 +- lensfun-0.2.5-cpuid.patch | 128 --------------------------- lensfun-0.2.6-cmake_LIB_SUFFIX.patch | 12 +++ lensfun-0.2.6-cmake_pkgconfig.patch | 22 +++++ lensfun.spec | 90 +++++++++---------- sources | 2 +- 6 files changed, 81 insertions(+), 176 deletions(-) delete mode 100644 lensfun-0.2.5-cpuid.patch create mode 100644 lensfun-0.2.6-cmake_LIB_SUFFIX.patch create mode 100644 lensfun-0.2.6-cmake_pkgconfig.patch diff --git a/.gitignore b/.gitignore index 40e704b..99cd6de 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -lensfun-0.2.5.tar.bz2 +/lensfun-0.2.5.tar.bz2 +/lensfun-0.2.6.tar.bz2 diff --git a/lensfun-0.2.5-cpuid.patch b/lensfun-0.2.5-cpuid.patch deleted file mode 100644 index ff071bf..0000000 --- a/lensfun-0.2.5-cpuid.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 9a3301bc3c239e0e74d6bc20f950b338d31457d9 Mon Sep 17 00:00:00 2001 -From: zap -Date: Sun, 9 May 2010 13:53:35 +0000 -Subject: [PATCH] * Modified a little the asm instructions for detecting CPU features - * configure will now print the vectorization instrution sets which will be used - -git-svn-id: svn://svn.berlios.de/lensfun/trunk@109 2a61fa91-e63d-0410-b60c-e65103854af9 ---- - configure | 1 + - libs/lensfun/cpuid.cpp | 28 ++++++++-------------------- - 2 files changed, 9 insertions(+), 20 deletions(-) - -diff --git a/configure b/configure -index 2439096..8cee50a 100755 ---- a/configure -+++ b/configure -@@ -118,4 +118,5 @@ print "Target directory for data files: " + tibs.DATADIR - print "Target directory for libraries: " + tibs.LIBDIR - print "Target directory for include files: " + tibs.INCLUDEDIR - print "Target directory for documentation: " + tibs.DOCDIR -+print "Use vector instruction set(-s): " + ", ".join (x for x in tibs.VECTORIZATION) - print "--------------------------------------------------------------------" -diff --git a/libs/lensfun/cpuid.cpp b/libs/lensfun/cpuid.cpp -index ed0ecf9..d7f43b3 100644 ---- a/libs/lensfun/cpuid.cpp -+++ b/libs/lensfun/cpuid.cpp -@@ -25,17 +25,13 @@ - guint _lf_detect_cpu_features () - { - #define cpuid(cmd) \ -- asm ( \ -- "push %%"R_BX"\n" \ -+ __asm volatile ( \ - "cpuid\n" \ -- "pop %%"R_BX"\n" \ - : "=a" (ax), "=c" (cx), "=d" (dx) \ -- : "0" (cmd)) -+ : "0" (cmd) \ -+ : R_BX) - -- register __SIZE_TYPE__ ax asm (R_AX); -- register __SIZE_TYPE__ bx asm (R_BX); -- register __SIZE_TYPE__ dx asm (R_DX); -- register __SIZE_TYPE__ cx asm (R_CX); -+ __SIZE_TYPE__ ax, cx, dx, tmp; - static GStaticMutex lock = G_STATIC_MUTEX_INIT; - static guint cpuflags = -1; - -@@ -45,7 +41,7 @@ guint _lf_detect_cpu_features () - cpuflags = 0; - - /* Test cpuid presence by checking bit 21 of eflags */ -- asm ( -+ __asm volatile ( - "pushf\n" - "pop %0\n" - "mov %0, %1\n" -@@ -57,7 +53,7 @@ guint _lf_detect_cpu_features () - "cmp %0, %1\n" - "setne %%al\n" - "movzb %%al, %0\n" -- : "=r" (ax), "=r" (bx)); -+ : "=r" (ax), "=r" (tmp)); - - if (ax) - { -@@ -88,12 +84,12 @@ guint _lf_detect_cpu_features () - cpuflags |= LF_CPU_FLAG_SSE4_2; - } - -- /* Is there extensions */ -+ /* Are there extensions? */ - cpuid (0x80000000); - - if (ax) - { -- /* Request for extensions */ -+ /* Ask extensions */ - cpuid (0x80000001); - - if (dx & 0x80000000) -@@ -112,12 +108,4 @@ guint _lf_detect_cpu_features () - #undef cpuid - } - --#else -- --guint --rs_detect_cpu_features() --{ -- return 0; --} -- - #endif /* __i386__ || __x86_64__ */ --- -1.7.2.3 - -From 19a5478ec455de6a9201d5acf5e844a926761bdb Mon Sep 17 00:00:00 2001 -From: zap -Date: Wed, 12 May 2010 19:31:09 +0000 -Subject: [PATCH] * cpuid.cpp: push/pop ebx instead of marking it as clobbered, because gcc can't survive that when using -fPIC - -git-svn-id: svn://svn.berlios.de/lensfun/trunk@110 2a61fa91-e63d-0410-b60c-e65103854af9 ---- - libs/lensfun/cpuid.cpp | 5 +++-- - 1 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/libs/lensfun/cpuid.cpp b/libs/lensfun/cpuid.cpp -index d7f43b3..491412c 100644 ---- a/libs/lensfun/cpuid.cpp -+++ b/libs/lensfun/cpuid.cpp -@@ -26,10 +26,11 @@ guint _lf_detect_cpu_features () - { - #define cpuid(cmd) \ - __asm volatile ( \ -+ "push %%"R_BX"\n" \ - "cpuid\n" \ -+ "pop %%"R_BX"\n" \ - : "=a" (ax), "=c" (cx), "=d" (dx) \ -- : "0" (cmd) \ -- : R_BX) -+ : "0" (cmd)) - - __SIZE_TYPE__ ax, cx, dx, tmp; - static GStaticMutex lock = G_STATIC_MUTEX_INIT; --- -1.7.2.3 - diff --git a/lensfun-0.2.6-cmake_LIB_SUFFIX.patch b/lensfun-0.2.6-cmake_LIB_SUFFIX.patch new file mode 100644 index 0000000..63e5e5e --- /dev/null +++ b/lensfun-0.2.6-cmake_LIB_SUFFIX.patch @@ -0,0 +1,12 @@ +diff -up lensfun-0.2.6/CMakeLists.txt.LIB_SUFFIX lensfun-0.2.6/CMakeLists.txt +--- lensfun-0.2.6/CMakeLists.txt.LIB_SUFFIX 2012-06-10 09:19:35.000000000 -0500 ++++ lensfun-0.2.6/CMakeLists.txt 2012-06-28 08:32:16.628591449 -0500 +@@ -74,7 +74,7 @@ ENDIF() + + # define destination dirs (relative to prefix) + SET(BINDIR bin) +-SET(LIBDIR lib) ++SET(LIBDIR lib${LIB_SUFFIX}) + SET(INCLUDEDIR include) + SET(DATADIR share/lensfun) + SET(DOCDIR share/doc/lensfun-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUGFIX}) diff --git a/lensfun-0.2.6-cmake_pkgconfig.patch b/lensfun-0.2.6-cmake_pkgconfig.patch new file mode 100644 index 0000000..4e4f7f4 --- /dev/null +++ b/lensfun-0.2.6-cmake_pkgconfig.patch @@ -0,0 +1,22 @@ +diff -up lensfun-0.2.6/libs/lensfun/CMakeLists.txt.cmake_pkgconfig lensfun-0.2.6/libs/lensfun/CMakeLists.txt +--- lensfun-0.2.6/libs/lensfun/CMakeLists.txt.cmake_pkgconfig 2012-02-12 05:19:39.000000000 -0600 ++++ lensfun-0.2.6/libs/lensfun/CMakeLists.txt 2012-06-28 09:27:52.891959669 -0500 +@@ -26,3 +26,8 @@ INSTALL(TARGETS lensfun + RUNTIME DESTINATION ${BINDIR} + LIBRARY DESTINATION ${LIBDIR} + ARCHIVE DESTINATION ${LIBDIR}) ++ ++# pkgconfig support ++CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/lensfun.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/lensfun.pc @ONLY) ++INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/lensfun.pc DESTINATION ${LIBDIR}/pkgconfig ) ++ +diff -up lensfun-0.2.6/libs/lensfun/lensfun.pc.cmake.cmake_pkgconfig lensfun-0.2.6/libs/lensfun/lensfun.pc.cmake +--- lensfun-0.2.6/libs/lensfun/lensfun.pc.cmake.cmake_pkgconfig 2012-06-28 09:30:08.819551879 -0500 ++++ lensfun-0.2.6/libs/lensfun/lensfun.pc.cmake 2012-06-28 09:29:05.323538151 -0500 +@@ -0,0 +1,6 @@ ++Name: lensfun ++Description: A photographic lens database and access library ++Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_MICRO@.@VERSION_BUGFIX@ ++Requires.private: glib-2.0 ++Libs: -L@CMAKE_INSTALL_PREFIX@/@LIBDIR@ -llensfun ++Cflags: -I@CMAKE_INSTALL_PREFIX@/@INCLUDEDIR@ diff --git a/lensfun.spec b/lensfun.spec index 0328708..d9b3cc6 100644 --- a/lensfun.spec +++ b/lensfun.spec @@ -1,23 +1,27 @@ -# Fedora pkg-review: http://bugzilla.redhat.com/466764 - -Name: lensfun -Version: 0.2.5 +Name: lensfun +Version: 0.2.6 Summary: Library to rectify defects introduced by photographic lenses -Release: 8%{?dist} +Release: 1%{?dist} + License: LGPLv3 and CC-BY-SA Group: System Environment/Libraries URL: http://lensfun.berlios.de/ +# an odd redirect is going on, spectool doesn't work (for 0.2.6 anyway) Source0: http://download.berlios.de/lensfun/lensfun-%{version}.tar.bz2 -Patch0: lensfun-0.2.5-cpuid.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +## upstreamable patches +# add LIB_SUFFIX support (and not hardcode prefix/lib) +Patch50: lensfun-0.2.6-cmake_LIB_SUFFIX.patch +# add pkgconfig support +Patch51: lensfun-0.2.6-cmake_pkgconfig.patch + +BuildRequires: cmake BuildRequires: doxygen -BuildRequires: glib2-devel -BuildRequires: libpng-devel -BuildRequires: pkgconfig -BuildRequires: python -BuildRequires: zlib-devel +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(zlib) %description The lensfun library provides an open source database of photographic lenses and @@ -31,44 +35,37 @@ vignetting and color contribution of a lens. Summary: Development toolkit for %{name} Group: Development/Libraries License: LGPLv3 -Requires: %{name} = %{version}-%{release} -Requires: pkgconfig - +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel This package contains library and header files needed to build applications using lensfun. + %prep %setup -q -%patch0 -p1 -b .cpuid + +%patch50 -p1 -b .LIB_SUFFIX +%patch51 -p1 -b .cmake_pkgconfig %build -# We can't use macro configure -./configure \ - --cflags="${CFLAGS:-%optflags}" \ - --cxxflags="${CXXFLAGS:-%optflags}" \ - --prefix=%{_prefix} \ - --bindir=%{_bindir} \ - --sysconfdir=%{_sysconfdir} \ - --datadir=%{_datadir}/lensfun \ - --libdir=%{_libdir} \ - --includedir=%{_includedir} \ - --libexecdir=%{_libexecdir} \ -%ifnarch %{ix86} x86_64 - --vectorization \ -%endif - --target=..generic -# set GCC.LDFLAGS to avoid stripping and useless -debuginfo -make AUTODEP=0 %{?_smp_mflags} lensfun manual \ - V=1 \ - GCC.LDFLAGS.release="" +mkdir -p %{_target_platform} +pushd %{_target_platform} +%{cmake} \ + -DBUILD_DOC:BOOL=ON \ + -DBUILD_TESTS:BOOL=OFF \ + .. +popd + +make %{?_smp_mflags} -C %{_target_platform} +make doc -C %{_target_platform} %install -rm -rf %{buildroot} -make AUTODEP=0 INSTALL_PREFIX=%{buildroot} install +rm -rf $RPM_BUILD_ROOT + +make install/fast DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform} %clean @@ -76,30 +73,31 @@ rm -rf %{buildroot} %post -p /sbin/ldconfig - %postun -p /sbin/ldconfig - %files %defattr(-,root,root,-) -%dir %{_docdir}/%{name}-%{version}/ -%doc %{_docdir}/%{name}-%{version}/README -%doc %{_docdir}/%{name}-%{version}/*.txt -# currently, nothing is covered by GPLv3 (no apps in the package), no need to -# confuse people: -%exclude %{_docdir}/%{name}-%{version}/gpl-3.0.txt +%doc README +%doc docs/cc-by-sa-3.0.txt docs/lgpl-3.0.txt +%doc docs/adobe-lens-profile.txt %{_datadir}/lensfun/ %{_libdir}/liblensfun.so.0* %files devel %defattr(-,root,root,-) -%doc %{_docdir}/%{name}-%{version}/manual/ -%{_includedir}/lensfun.h +%doc %{_target_platform}/doc_doxygen/* +%{_includedir}/lensfun/ %{_libdir}/liblensfun.so %{_libdir}/pkgconfig/lensfun.pc %changelog +* Thu Jun 28 2012 Rex Dieter +- 0.2.6-1 +- lensfun-0.2.6 (#836156) +- use cmake +- use pkgconfig-style deps + * Thu Jun 21 2012 Nils Philippsen - 0.2.5-8 - don't modify doxygen configuration anymore as doxygen carries fixes now (#831399) diff --git a/sources b/sources index a25fd67..a974d8d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a10438dffae68a5988fc54b0393a3755 lensfun-0.2.5.tar.bz2 +740e4749db04da0a597630dd6339b966 lensfun-0.2.6.tar.bz2