Blob Blame History Raw
%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.2.5.0
Release:        8%{?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/v%{version}/%{name}-%{version}.tar.gz

BuildRequires:  cmake
BuildRequires:  gcc-c++ libstdc++-devel
BuildRequires:  catch1-devel
BuildRequires:  libtool
BuildRequires:  zlib-devel
BuildRequires:  cppunit-devel
BuildRequires:  graphviz
BuildRequires:  ImageMagick
BuildRequires:  doxygen
# For man page generation
BuildRequires:  help2man


%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}.


%prep
%autosetup -n Zipios-%{version}
sed -i "s/\-std=c++11//g" CMakeLists.txt


%build
%cmake -DCATCH_INCLUDE_DIR=%{_includedir}/catch \
       -DCMAKE_MODULES_INSTALL_DIR=%{_datadir}/cmake/Modules \
       -DBUILD_ZIPIOS_TESTS=TRUE \
       %{nil}
%cmake_build


%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


%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
#pushd %{_vpath_builddir}
#make run_zipios_tests


%ldconfig_scriptlets


%files
%license COPYING
%doc AUTHORS NEWS README.md TODO
%exclude %{_pkgdocdir}/html/
%{_bindir}/*
%{_libdir}/*.so.*
%{_mandir}/man1/*.1*

%files devel
%{_libdir}/*.so
%{_datadir}/cmake/ZipIos/
%{_includedir}/%{name}
%{_mandir}/man3/*

%files doc
%{_pkgdocdir}/html/


%changelog
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Mon Aug 10 2020 Richard Shaw <hobbes1069@gmail.com> - 2.2.5.0-1
- Update to 2.2.5.0.

* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1.0-5
- Second attempt - Rebuilt for
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Thu Apr 11 2019 Richard Shaw <hobbes1069@gmail.com> - 2.2.0-1
- Update to 2.2.0.

* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Mon Jan 15 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.1.1-4
- catch → catch1

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Apr  7 2016 Richard Shaw <hobbes1069@gmail.com> - 2.1.1-1
- Update to latest upstream release.
- Disable unit testing until catch works with gcc 6.

* Mon Oct 19 2015 Richard Shaw <hobbes1069@gmail.com> - 2.1.0-5
- Use system catch now that it's available.

* Wed Sep 16 2015 Richard Shaw <hobbes1069@gmail.com> - 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 <hobbes1069@gmail.com> - 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 <hobbes1069@gmail.com> - 2.1.0-1
- Initial packaging.