rdieter pushed to quazip (f22). "quazip qt5 support (#1197484)"

notifications at fedoraproject.org notifications at fedoraproject.org
Tue Apr 21 16:21:31 UTC 2015


>From 8cc672e4b7b83404e80c379bb632c5fe655c22fa Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter at math.unl.edu>
Date: Sun, 19 Apr 2015 17:39:38 -0500
Subject: quazip qt5 support (#1197484)


diff --git a/quazip-0.7.1-qt5.patch b/quazip-0.7.1-qt5.patch
new file mode 100644
index 0000000..098f878
--- /dev/null
+++ b/quazip-0.7.1-qt5.patch
@@ -0,0 +1,94 @@
+diff -up quazip-0.7.1/CMakeLists.txt.qt5 quazip-0.7.1/CMakeLists.txt
+--- quazip-0.7.1/CMakeLists.txt.qt5	2013-11-18 11:37:54.000000000 -0600
++++ quazip-0.7.1/CMakeLists.txt	2015-04-19 17:25:59.638703934 -0500
+@@ -10,10 +10,11 @@ endif()
+ 
+ if (Qt5Core_FOUND)
+     set(QTCORE_LIBRARIES ${Qt5Core_LIBRARIES})
++    set(QUAZIP_LIB_VERSION_SUFFIX 5)
+     # if there is no QT_ROOT, try to deduce it from Qt QtCore include
+     if ("${QT_ROOT}" STREQUAL "")
+         set(QT_ROOT ${QT_QTCORE_INCLUDE_DIR}/../..)
+-    endif()    
++    endif()
+     include_directories(${Qt5Core_INCLUDE_DIRS})
+ 
+     macro(qt_wrap_cpp)
+@@ -33,7 +34,7 @@ else()
+ endif()
+ 
+ # Use system zlib on unix and Qt ZLIB on Windows
+-IF(UNIX)
++IF(UNIX OR MINGW)
+ 	find_package(ZLIB REQUIRED)
+ ELSE(UNIX)
+ 	SET(ZLIB_INCLUDE_DIRS "${QT_ROOT}/src/3rdparty/zlib" CACHE STRING "Path to ZLIB headers of Qt")
+@@ -48,7 +49,9 @@ SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_D
+ 
+ set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
+ set(LIB_DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Library directory name" FORCE)
++set(QUAZIP_LIB_TARGET_NAME quazip${QUAZIP_LIB_VERSION_SUFFIX} CACHE
++    INTERNAL "Target name of libquazip" FORCE)
+ 
+ add_subdirectory(quazip)
+ 
+-install(FILES FindQuaZip.cmake DESTINATION ${CMAKE_ROOT}/Modules)
++install(FILES FindQuaZip.cmake RENAME FindQuaZip${QUAZIP_LIB_VERSION_SUFFIX}.cmake DESTINATION ${CMAKE_ROOT}/Modules)
+diff -up quazip-0.7.1/FindQuaZip.cmake.qt5 quazip-0.7.1/FindQuaZip.cmake
+--- quazip-0.7.1/FindQuaZip.cmake.qt5	2012-02-26 00:46:10.000000000 -0600
++++ quazip-0.7.1/FindQuaZip.cmake	2015-04-19 17:25:59.638703934 -0500
+@@ -9,14 +9,17 @@ IF (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRA
+ 	# in cache already
+ 	SET(QUAZIP_FOUND TRUE)
+ ELSE (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
++	IF (Qt5Core_FOUND)
++		set(QUAZIP_LIB_VERSION_SUFFIX 5)
++	ENDIF()
+ 	IF (WIN32)
+ 		FIND_PATH(QUAZIP_LIBRARY_DIR
+ 			WIN32_DEBUG_POSTFIX d
+-			NAMES libquazip.dll
++			NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll
+ 			HINTS "C:/Programme/" "C:/Program Files"
+ 			PATH_SUFFIXES QuaZip/lib
+ 		)
+-		FIND_LIBRARY(QUAZIP_LIBRARIES NAMES libquazip.dll HINTS ${QUAZIP_LIBRARY_DIR})
++		FIND_LIBRARY(QUAZIP_LIBRARIES NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll HINTS ${QUAZIP_LIBRARY_DIR})
+ 		FIND_PATH(QUAZIP_INCLUDE_DIR NAMES quazip.h HINTS ${QUAZIP_LIBRARY_DIR}/../ PATH_SUFFIXES include/quazip)
+ 		FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR NAMES zlib.h)
+ 	ELSE(WIN32)
+@@ -25,12 +28,12 @@ ELSE (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIB
+ 		pkg_check_modules(PC_QUAZIP quazip)
+ 		FIND_LIBRARY(QUAZIP_LIBRARIES
+ 			WIN32_DEBUG_POSTFIX d
+-			NAMES quazip
++			NAMES quazip${QUAZIP_LIB_VERSION_SUFFIX}
+ 			HINTS /usr/lib /usr/lib64
+ 		)
+ 		FIND_PATH(QUAZIP_INCLUDE_DIR quazip.h
+ 			HINTS /usr/include /usr/local/include
+-			PATH_SUFFIXES quazip
++			PATH_SUFFIXES quazip${QUAZIP_LIB_VERSION_SUFFIX}
+ 		)
+ 		FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR zlib.h HINTS /usr/include /usr/local/include)
+ 	ENDIF (WIN32)
+diff -up quazip-0.7.1/quazip/CMakeLists.txt.qt5 quazip-0.7.1/quazip/CMakeLists.txt
+--- quazip-0.7.1/quazip/CMakeLists.txt.qt5	2013-08-10 11:00:00.000000000 -0500
++++ quazip-0.7.1/quazip/CMakeLists.txt	2015-04-19 17:29:26.600686574 -0500
+@@ -14,10 +14,11 @@ ADD_DEFINITIONS(-DQUAZIP_BUILD)
+ qt_wrap_cpp(MOC_SRCS ${PUBLIC_HEADERS})
+ set(SRCS ${SRCS} ${MOC_SRCS})
+ 
+-add_library(quazip SHARED ${SRCS})
+-set_target_properties(quazip PROPERTIES VERSION 1.0.0 SOVERSION 1)
++add_library(${QUAZIP_LIB_TARGET_NAME} SHARED ${SRCS})
++ 
++set_target_properties(${QUAZIP_LIB_TARGET_NAME} PROPERTIES VERSION 1.0.0 SOVERSION 1 DEBUG_POSTFIX d)
+ # Link against ZLIB_LIBRARIES if needed (on Windows this variable is empty)
+-target_link_libraries(quazip ${QT_QTMAIN_LIBRARY} ${QT_QTCORE_LIBRARY} ${ZLIB_LIBRARIES})
++target_link_libraries(${QUAZIP_LIB_TARGET_NAME} ${QT_QTMAIN_LIBRARY} ${QTCORE_LIBRARIES} ${ZLIB_LIBRARIES})
+ 
+-install(FILES ${PUBLIC_HEADERS} DESTINATION include/quazip)
+-install(TARGETS quazip LIBRARY DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION} RUNTIME DESTINATION ${LIB_DESTINATION})
++install(FILES ${PUBLIC_HEADERS} DESTINATION include/quazip${QUAZIP_LIB_VERSION_SUFFIX})
++install(TARGETS ${QUAZIP_LIB_TARGET_NAME} LIBRARY DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION} RUNTIME DESTINATION ${LIB_DESTINATION})
diff --git a/quazip.spec b/quazip.spec
index 43eb7b1..d034f69 100644
--- a/quazip.spec
+++ b/quazip.spec
@@ -1,13 +1,21 @@
 Name:		quazip
 Version:	0.7.1
-Release:	1%{?dist}
+Release:	2%{?dist}
 Summary:	Qt/C++ wrapper for the minizip library
 License:	GPLv2+ or LGPLv2+
 URL:		http://quazip.sourceforge.net/
 Source0:	http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+BuildRequires: 	cmake
 BuildRequires:	qt4-devel
+BuildRequires:	qt5-qtbase-devel
 BuildRequires:	doxygen graphviz
 
+# Combine upstream qt5 parallel-installable commits and some other fixes
+# and omit support for quazip_static (it's broken)
+#http://sourceforge.net/p/quazip/code/254/
+#http://sourceforge.net/p/quazip/code/257/
+Patch1: quazip-0.7.1-qt5.patch
+
 %description
 QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP package that
 can be used to access ZIP archives. It uses Trolltech's Qt toolkit.
@@ -29,19 +37,47 @@ Requires:		qt4-devel%{?_isa}
 The %{name}-devel package contains libraries, header files and documentation
 for developing applications that use %{name}. 
 
+%package qt5
+Summary: Qt5 wrapper for the minizip library
+%description qt5
+QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP package that
+can be used to access ZIP archives. It uses Trolltech's Qt toolkit.
+
+QuaZIP allows you to access files inside ZIP archives using QIODevice API,
+and - yes! - that means that you can also use QTextStream, QDataStream or
+whatever you would like to use on your zipped files.
+
+QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both reading
+from and writing to ZIP archives.
+
+%package qt5-devel
+Summary:		Development files for %{name}
+Requires:		%{name}-qt5%{?_isa} = %{version}-%{release}
+Requires:               qt5-qtbase-devel%{?_isa}
+
+%description qt5-devel
+The %{name}-devel package contains libraries, header files and documentation
+for developing applications that use %{name}.
+
+
 %prep
 %setup -q
+%patch1 -p1 -b .qt5
 
-# Fixes build and install
-sed -i 's\PREFIX/lib\PREFIX/%{_lib}\' %{name}/%{name}.pro
+%build
+mkdir build-qt4
+pushd build-qt4
+%cmake .. -DBUILD_WITH_QT4:BOOL=ON
 
+make %{?_smp_mflags}
+popd
 
-%build
-export PATH=%{_qt4_bindir}:$PATH
-%{_qt4_qmake} PREFIX=%{_prefix}
-#do not build in parallel - there are race conditions in 
-#qmake-generated makefiles
-make
+mkdir build-qt5
+pushd build-qt5
+%cmake .. -DBUILD_WITH_QT4:BOOL=OFF
+
+make %{?_smp_mflags}
+popd
 
 doxygen Doxyfile
 for file in doc/html/*; do
@@ -49,7 +85,8 @@ for file in doc/html/*; do
 done
 
 %install
-make INSTALL="install -p" INSTALL_ROOT=%{buildroot} install
+make install/fast DESTDIR=%{buildroot} -C build-qt5
+make install/fast DESTDIR=%{buildroot} -C build-qt4
 
 %post -p /sbin/ldconfig
 
@@ -57,14 +94,29 @@ make INSTALL="install -p" INSTALL_ROOT=%{buildroot} install
 
 %files
 %doc COPYING NEWS.txt README.txt
-%{_libdir}/*.so.*
+%{_libdir}/libquazip.so.1*
 
 %files devel
 %doc doc/html
-%{_includedir}/%{name}
-%{_libdir}/*.so
+%{_includedir}/quazip/
+%{_libdir}/libquazip.so
+%{_datadir}/cmake/Modules/FindQuaZip.cmake
+
+%files qt5
+%doc COPYING NEWS.txt README.txt
+%{_libdir}/libquazip5.so.1*
+
+%files qt5-devel
+%doc doc/html
+%{_includedir}/quazip5/
+%{_libdir}/libquazip5.so
+%{_datadir}/cmake/Modules/FindQuaZip5.cmake
+
 
 %changelog
+* Sun Apr 19 2015 Rex Dieter <rdieter at fedoraproject.org> 0.7.1-2
+- quazip qt5 support (#1197484)
+
 * Thu Jan 08 2015 Nicolas Chauvet <kwizart at gmail.com> - 0.7.1-1
 - Update to 0.7.1
 
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/quazip.git/commit/?h=f22&id=8cc672e4b7b83404e80c379bb632c5fe655c22fa


More information about the scm-commits mailing list