%if 0%{?fedora} %bcond_without mingw %else %bcond_with mingw %endif %undefine __cmake_in_source_build # Avoid architecture-specific name of build-dir to fix per-arch reproducibility with doxygen %global _vpath_builddir %{_vendor}-%{_target_os}-build Name: zipios Version: 2.3.2 Release: 2%{?dist} # Most of the project is under LGPLv2+ but two source filesa are GPLv2+ so the # combined work is GPLv2+. License: GPLv2+ Summary: C++ library for reading and writing Zip files URL: https://snapwebsites.org/project/zipios Source0: https://github.com/Zipios/Zipios/archive/%{version}/%{name}-%{version}.tar.gz # Patch0 submitted upstream as pull request: # https://github.com/Zipios/Zipios/pull/46 Patch0: zipios-2.3.2-stdint.patch BuildRequires: cmake BuildRequires: gcc-c++ libstdc++-devel #BuildRequires: catch1-devel BuildRequires: catch2-devel BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: cppunit-devel BuildRequires: graphviz BuildRequires: ImageMagick BuildRequires: doxygen # For man page generation BuildRequires: help2man %if %{with_mingw} BuildRequires: mingw32-filesystem BuildRequires: mingw32-gcc-c++ BuildRequires: mingw32-libstdc++ BuildRequires: mingw32-binutils BuildRequires: mingw32-zlib BuildRequires: mingw64-filesystem BuildRequires: mingw64-gcc-c++ BuildRequires: mingw64-libstdc++ BuildRequires: mingw64-binutils BuildRequires: mingw64-zlib %endif %description Zipios is a java.util.zip-like C++ library for reading and writing Zip files. Access to individual entries is provided through standard C++ iostreams. A simple read-only virtual file system that mounts regular directories and zip files is also provided. Note: This is nearly a complete rewrite of the 1.x series by a new upstream. The previous version is depreciated but still supported as zipios++. %package devel Summary: Header files for zipios Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libstdc++-devel Requires: zlib-devel Requires: cmake %description devel The header files are only needed for development of programs using %{name}. Note: This is nearly a complete rewrite of the 1.x series by a new upstream. The previous version is depreciated but still supported as zipios++. %package doc Summary: Documentation for %{name} BuildArch: noarch Requires: %{name} = %{version}-%{release} %description doc Developer documentation for %{name}. %if %{with mingw} %package -n mingw32-zipios Summary: MinGW zipios library for Win32. BuildArch: noarch %description -n mingw32-zipios MinGW zipios library for Win32. %package -n mingw64-zipios Summary: MinGW zipios library for Win64 BuildArch: noarch %description -n mingw64-zipios MinGW zipios library for Win64. %{?mingw_debug_package} %endif %prep %autosetup -n Zipios-%{version} -p 1 sed -i "s/\-std=c++11//g" CMakeLists.txt sed -i '63i option(ZIPIOS_WINDOWS "Force add_definitions(-DZIPIOS_WINDOWS)" OFF)' CMakeLists.txt sed -i '64i if(ZIPIOS_WINDOWS)' CMakeLists.txt sed -i '65i add_definitions(-DZIPIOS_WINDOWS)' CMakeLists.txt sed -i '66i endif()' CMakeLists.txt sed -i '40d' src/zipios_common.hpp %build %cmake -DCMAKE_MODULES_INSTALL_DIR=%{_datadir}/cmake/Modules \ -DBUILD_ZIPIOS_TESTS=FALSE \ %{nil} %cmake_build %if %{with_mingw} %mingw_cmake -DZIPIOS_WINDOWS=TRUE \ -DBUILD_ZIPIOS_TESTS=FALSE \ -DBUILD_DOCUMENTATION=FALSE %mingw_make_build %endif %install %cmake_install # Create man pages mkdir -p %{buildroot}%{_mandir}/man1 for bin in appendzip dosdatetime zipios; do help2man -s 1 -N %{_vpath_builddir}/tools/$bin > %{buildroot}%{_mandir}/man1/$bin.1 done %if %{with_mingw} %mingw_make_install %{?mingw_debug_install_post} %endif %check # Catch based testing is broken on gcc 6 # https://sourceforge.net/p/zipios/bugs/9/ # Test executable no longer compiles with gcc 7 # https://bugzilla.redhat.com/show_bug.cgi?id=1424569 # https://sourceforge.net/p/zipios/bugs/10/ # Still broken, gcc 10.2.1 # https://github.com/Zipios/Zipios/issues/4 # Zipios switched to SnapCatch2. Attempted to make # it work with standard Fedora catch2, but was # not successful. #pushd %{_vpath_builddir} #make run_zipios_tests %ldconfig_scriptlets %files %license COPYING %doc AUTHORS NEWS README.md TODO.md %exclude %{_pkgdocdir}/html/ %{_bindir}/* %{_libdir}/*.so.* %{_mandir}/man1/*.1* %{_metainfodir}/* %files devel %{_libdir}/*.so %{_datadir}/cmake/ZipIos/ %{_includedir}/%{name} %{_mandir}/man3/* %files doc %{_pkgdocdir}/html/ %if %{with_mingw} %files -n mingw32-zipios %license COPYING %{mingw32_bindir}/appendzip.exe %{mingw32_bindir}/dosdatetime.exe %{mingw32_bindir}/zcrc32.exe %{mingw32_bindir}/zipdir.exe %{mingw32_bindir}/zipios.exe %{mingw32_bindir}/libzipios.dll %{mingw32_libdir}/libzipios.dll.a %{mingw32_includedir}/zipios %{mingw32_datadir}/cmake/ZipIos %files -n mingw64-zipios %license COPYING %{mingw64_bindir}/appendzip.exe %{mingw64_bindir}/dosdatetime.exe %{mingw64_bindir}/zcrc32.exe %{mingw64_bindir}/zipdir.exe %{mingw64_bindir}/zipios.exe %{mingw64_bindir}/libzipios.dll %{mingw64_libdir}/libzipios.dll.a %{mingw64_includedir}/zipios %{mingw64_datadir}/cmake/ZipIos %endif %changelog * Sat Nov 25 2023 Eric Smith - 2.3.2-2 - Added MinGW builds. * Wed Nov 01 2023 Eric Smith - 2.3.2-1 - Update to 2.3.2. * Sat Jul 22 2023 Fedora Release Engineering - 2.2.5.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Sat Jan 21 2023 Fedora Release Engineering - 2.2.5.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Sat Jul 23 2022 Fedora Release Engineering - 2.2.5.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Sat Jan 22 2022 Fedora Release Engineering - 2.2.5.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Jul 23 2021 Fedora Release Engineering - 2.2.5.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Thu Jan 28 2021 Fedora Release Engineering - 2.2.5.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Mon Aug 10 2020 Richard Shaw - 2.2.5.0-1 - Update to 2.2.5.0. * Sat Aug 01 2020 Fedora Release Engineering - 2.2.1.0-5 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Wed Jul 29 2020 Fedora Release Engineering - 2.2.1.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Fri Jan 31 2020 Fedora Release Engineering - 2.2.1.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Sat Jul 27 2019 Fedora Release Engineering - 2.2.1.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Thu Apr 11 2019 Richard Shaw - 2.2.0-1 - Update to 2.2.0. * Sun Feb 03 2019 Fedora Release Engineering - 2.1.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Sat Jul 14 2018 Fedora Release Engineering - 2.1.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Fri Feb 09 2018 Fedora Release Engineering - 2.1.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Mon Jan 15 2018 Igor Gnatenko - 2.1.1-4 - catch → catch1 * Thu Jul 27 2017 Fedora Release Engineering - 2.1.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Sat Feb 11 2017 Fedora Release Engineering - 2.1.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Thu Apr 7 2016 Richard Shaw - 2.1.1-1 - Update to latest upstream release. - Disable unit testing until catch works with gcc 6. * Mon Oct 19 2015 Richard Shaw - 2.1.0-5 - Use system catch now that it's available. * Wed Sep 16 2015 Richard Shaw - 2.1.0-4 - Add cmake as requirement to devel subpackage. - Fix references to documentation for directory ownership. - Fix documentation install to be compliant with the packaging guidelines. - Make doc subpackage only require the main package. - Add help2man to build requirements to generate man pages. - Update %%{_pkgdocdir} in %%files to fix directory ownership. * Fri Aug 28 2015 Richard Shaw - 2.1.0-2 - Update license tag to GPLv2+. - Fix dist tag. - Add note to description how this package differs from zipios++. * Mon May 11 2015 Richard Shaw - 2.1.0-1 - Initial packaging.