From 2241f91b5e38408aacf3aeda5e3a84dfdaf9c01c Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 5 Jan 2018 12:35:52 +0100 Subject: [PATCH] add upstream patch and drop multilib hack --- libzip-multilib.patch | 218 ++++++++++++++++++++++++++++++++++++++++++ libzip.spec | 10 +- 2 files changed, 224 insertions(+), 4 deletions(-) create mode 100644 libzip-multilib.patch diff --git a/libzip-multilib.patch b/libzip-multilib.patch new file mode 100644 index 0000000..175698b --- /dev/null +++ b/libzip-multilib.patch @@ -0,0 +1,218 @@ +From 72440acea2369d3903ef73c62f02d62bd6dcde0a Mon Sep 17 00:00:00 2001 +From: Dieter Baron +Date: Tue, 2 Jan 2018 15:15:48 +0100 +Subject: [PATCH] Simplify generated zipconf.h by moving logic into + CMakeLists.txt. + +--- + CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++++++++++++ + cmake-zipconf.h.in | 103 ++++++----------------------------------------------- + 2 files changed, 92 insertions(+), 93 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3366b25..dfa22d5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -169,6 +169,88 @@ ENDIF(CMAKE_SYSTEM_NAME MATCHES BSD) + CONFIGURE_FILE(libzip.pc.in libzip.pc @ONLY) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libzip.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + ++# fixed size integral types ++ ++IF(HAVE_STDINT_H_LIBZIP) ++ SET(LIBZIP_TYPES_INCLUDE "#include ") ++ELSEIF(HAVE_INTTYPES_H_LIBZIP) ++ SET(LIBZIP_TYPES_INCLUDE "#include ") ++ELSEIF(HAVE_SYS_TYPES_H_LIBZIP) ++ SET(LIBZIP_TYPES_INCLUDE "#include ") ++ENDIF() ++ ++IF(HAVE_INT8_T_LIBZIP) ++ SET(ZIP_INT8_T int8_t) ++ELSEIF(HAVE___INT8_LIBZIP) ++ SET(ZIP_INT8_T __int8) ++ELSE() ++ SET(ZIP_INT8_T "signed char") ++ENDIF() ++ ++IF(HAVE_UINT8_T_LIBZIP) ++ SET(ZIP_UINT8_T uint8_t) ++ELSEIF(HAVE___INT8_LIBZIP) ++ SET(ZIP_UINT8_T "unsigned __int8") ++ELSE() ++ SET(ZIP_UINT8_T "unsigned char") ++ENDIF() ++ ++IF(HAVE_INT16_T_LIBZIP) ++ SET(ZIP_INT16_T int16_t) ++ELSEIF(HAVE___INT16_LIBZIP) ++ SET(INT16_T_LIBZIP __int16) ++ELSEIF(SHORT_LIBZIP EQUAL 2) ++ SET(INT16_T_LIBZIP short) ++ENDIF() ++ ++IF(HAVE_UINT16_T_LIBZIP) ++ SET(ZIP_UINT16_T uint16_t) ++ELSEIF(HAVE___INT16_LIBZIP) ++ SET(UINT16_T_LIBZIP "unsigned __int16") ++ELSEIF(SHORT_LIBZIP EQUAL 2) ++ SET(UINT16_T_LIBZIP "unsigned short") ++ENDIF() ++ ++IF(HAVE_INT32_T_LIBZIP) ++ SET(ZIP_INT32_T int32_t) ++ELSEIF(HAVE___INT32_LIBZIP) ++ SET(ZIP_INT32_T __int32) ++ELSEIF(INT_LIBZIP EQUAL 4) ++ SET(ZIP_INT32_T int) ++ELSEIF(LONG_LIBZIP EQUAL 4) ++ SET(ZIP_INT32_T long) ++ENDIF() ++ ++IF(HAVE_UINT32_T_LIBZIP) ++SET(ZIP_UINT32_T uint32_t) ++ELSEIF(HAVE___INT32_LIBZIP) ++SET(ZIP_UINT32_T "unsigned __int32") ++ELSEIF(INT_LIBZIP EQUAL 4) ++SET(ZIP_UINT32_T "unsigned int") ++ELSEIF(LONG_LIBZIP EQUAL 4) ++SET(ZIP_UINT32_T "unsigned long") ++ENDIF() ++ ++IF(HAVE_INT64_T_LIBZIP) ++ SET(ZIP_INT64_T int64_t) ++ELSEIF(HAVE___INT64_LIBZIP) ++ SET(ZIP_INT64_T __int64) ++ELSEIF(LONG_LIBZIP EQUAL 8) ++ SET(ZIP_INT64_T long) ++ELSEIF(LONG_LONG_LIBZIP EQUAL 8) ++ SET(ZIP_INT64_T "long long") ++ENDIF() ++ ++IF(HAVE_UINT64_T_LIBZIP) ++ SET(ZIP_UINT64_T uint64_t) ++ELSEIF(HAVE___INT64_LIBZIP) ++ SET(ZIP_UINT64_T "unsigned __int64") ++ELSEIF(LONG_LIBZIP EQUAL 8) ++ SET(ZIP_UINT64_T "unsigned long") ++ELSEIF(LONG_LONG_LIBZIP EQUAL 8) ++ SET(ZIP_UINT64_T "unsigned long long") ++ENDIF() ++ + # write out config file + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake-zipconf.h.in ${CMAKE_CURRENT_BINARY_DIR}/zipconf.h) +diff --git a/cmake-zipconf.h.in b/cmake-zipconf.h.in +index f0e24e8..6ff4fe3 100644 +--- a/cmake-zipconf.h.in ++++ b/cmake-zipconf.h.in +@@ -15,99 +15,16 @@ + + #cmakedefine ZIP_STATIC + +-#cmakedefine HAVE_INTTYPES_H_LIBZIP +-#cmakedefine HAVE_STDINT_H_LIBZIP +-#cmakedefine HAVE_SYS_TYPES_H_LIBZIP +-#cmakedefine HAVE___INT8_LIBZIP +-#cmakedefine HAVE_INT8_T_LIBZIP +-#cmakedefine HAVE_UINT8_T_LIBZIP +-#cmakedefine HAVE___INT16_LIBZIP +-#cmakedefine HAVE_INT16_T_LIBZIP +-#cmakedefine HAVE_UINT16_T_LIBZIP +-#cmakedefine HAVE___INT32_LIBZIP +-#cmakedefine HAVE_INT32_T_LIBZIP +-#cmakedefine HAVE_UINT32_T_LIBZIP +-#cmakedefine HAVE___INT64_LIBZIP +-#cmakedefine HAVE_INT64_T_LIBZIP +-#cmakedefine HAVE_UINT64_T_LIBZIP +-#cmakedefine HAVE_SSIZE_T_LIBZIP +-#cmakedefine SHORT_LIBZIP ${SHORT_LIBZIP} +-#cmakedefine INT_LIBZIP ${INT_LIBZIP} +-#cmakedefine LONG_LIBZIP ${LONG_LIBZIP} +-#cmakedefine LONG_LONG_LIBZIP ${LONG_LONG_LIBZIP} +- +-#if defined(HAVE_STDINT_H_LIBZIP) +-#include +-#elif defined(HAVE_INTTYPES_H_LIBZIP) +-#include +-#elif defined(HAVE_SYS_TYPES_H_LIBZIP) +-#include +-#endif +- +-#if defined(HAVE_INT8_T_LIBZIP) +-typedef int8_t zip_int8_t; +-#elif defined(HAVE___INT8_LIBZIP) +-typedef __int8 zip_int8_t; +-#else +-typedef signed char zip_int8_t; +-#endif +-#if defined(HAVE_UINT8_T_LIBZIP) +-typedef uint8_t zip_uint8_t; +-#elif defined(HAVE___INT8_LIBZIP) +-typedef unsigned __int8 zip_uint8_t; +-#else +-typedef unsigned char zip_uint8_t; +-#endif +-#if defined(HAVE_INT16_T_LIBZIP) +-typedef int16_t zip_int16_t; +-#elif defined(HAVE___INT16_LIBZIP) +-typedef __int16 zip_int16_t; +-#elif defined(SHORT_LIBZIP) && SHORT_LIBZIP == 2 +-typedef signed short zip_int16_t; +-#endif +-#if defined(HAVE_UINT16_T_LIBZIP) +-typedef uint16_t zip_uint16_t; +-#elif defined(HAVE___INT16_LIBZIP) +-typedef unsigned __int16 zip_uint16_t; +-#elif defined(SHORT_LIBZIP) && SHORT_LIBZIP == 2 +-typedef unsigned short zip_uint16_t; +-#endif +-#if defined(HAVE_INT32_T_LIBZIP) +-typedef int32_t zip_int32_t; +-#elif defined(HAVE___INT32_LIBZIP) +-typedef __int32 zip_int32_t; +-#elif defined(INT_LIBZIP) && INT_LIBZIP == 4 +-typedef signed int zip_int32_t; +-#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 4 +-typedef signed long zip_int32_t; +-#endif +-#if defined(HAVE_UINT32_T_LIBZIP) +-typedef uint32_t zip_uint32_t; +-#elif defined(HAVE___INT32_LIBZIP) +-typedef unsigned __int32 zip_uint32_t; +-#elif defined(INT_LIBZIP) && INT_LIBZIP == 4 +-typedef unsigned int zip_uint32_t; +-#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 4 +-typedef unsigned long zip_uint32_t; +-#endif +-#if defined(HAVE_INT64_T_LIBZIP) +-typedef int64_t zip_int64_t; +-#elif defined(HAVE___INT64_LIBZIP) +-typedef __int64 zip_int64_t; +-#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 8 +-typedef signed long zip_int64_t; +-#elif defined(LONG_LONG_LIBZIP) && LONG_LONG_LIBZIP == 8 +-typedef signed long long zip_int64_t; +-#endif +-#if defined(HAVE_UINT64_T_LIBZIP) +-typedef uint64_t zip_uint64_t; +-#elif defined(HAVE___INT64_LIBZIP) +-typedef unsigned __int64 zip_uint64_t; +-#elif defined(LONG_LIBZIP) && LONG_LONG_LIBZIP == 8 +-typedef unsigned long zip_uint64_t; +-#elif defined(LONG_LONG_LIBZIP) && LONG_LONG_LIBZIP == 8 +-typedef unsigned long long zip_uint64_t; +-#endif ++${LIBZIP_TYPES_INCLUDE} ++ ++typedef ${ZIP_INT8_T} zip_int8_t; ++typedef ${ZIP_UINT8_T} zip_uint8_t; ++typedef ${ZIP_INT16_T} zip_int16_t; ++typedef ${ZIP_UINT16_T} zip_uint16_t; ++typedef ${ZIP_INT32_T} zip_int32_t; ++typedef ${ZIP_UINT32_T} zip_uint32_t; ++typedef ${ZIP_INT64_T} zip_int64_t; ++typedef ${ZIP_UINT64_T} zip_uint64_t; + + #define ZIP_INT8_MIN (-ZIP_INT8_MAX-1) + #define ZIP_INT8_MAX 0x7f diff --git a/libzip.spec b/libzip.spec index 0f0a941..2e39aaf 100644 --- a/libzip.spec +++ b/libzip.spec @@ -2,7 +2,7 @@ Name: libzip Version: 1.4.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: C library for reading, creating, and modifying zip archives License: BSD @@ -13,6 +13,8 @@ Source0: https://libzip.org/download/libzip-%{version}.tar.xz Patch0: libzip-upstream.patch # drop RPATH from installed binaries Patch1: libzip-rpath.patch +# fix multi-lib issue +Patch2: libzip-multilib.patch # specific AES crypto for WinZip compatibility Provides: bundled(gladman-fcrypt) @@ -34,7 +36,6 @@ BuildRequires: perl(Symbol) BuildRequires: perl(UNIVERSAL) BuildRequires: perl(strict) BuildRequires: perl(warnings) -BuildRequires: multilib-rpm-config %description @@ -80,8 +81,6 @@ make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} INSTALL='install -p' -%multilib_fix_c_header --file %{_includedir}/zipconf.h - %check %if %{with_tests} @@ -117,6 +116,9 @@ make check %changelog +* Fri Jan 5 2018 Remi Collet - 1.4.0-3 +- add upstream patch and drop multilib hack + * Tue Jan 2 2018 Remi Collet - 1.4.0-2 - re-add multilib hack #1529886