## START: Set by rpmautospec
## (rpmautospec version 0.5.1)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 8;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%if 0%{?rhel}
# EPEL - only Qt5 packages
%bcond_with	qt4
%bcond_without	qt5
%bcond_with	qt6
%else
# Fedora - build everything
%bcond_without	qt4
%bcond_without	qt5
%bcond_without	qt6
%endif

%bcond_without test

# see top-ldevel CMakeLists.txt for variables of same name
%global QUAZIP_LIB_VERSION %{version} 
%global QUAZIP_LIB_SOVERSION 1.4.0

Name:		quazip
Version:	1.4
Release:	%autorelease
Summary:	Qt/C++ wrapper for the minizip library
License:	GPLv2+ or LGPLv2+
URL:		https://github.com/stachenov/quazip
Source0:	%{url}/archive/v%{version}/%{name}-v%{version}.tar.gz
# pre-1.0 compat CMake module
Source1:	FindQuaZip.cmake
BuildRequires:	bzip2-devel
BuildRequires:	cmake
BuildRequires:	gcc-c++
BuildRequires:	zlib-devel
%if %{with qt4}
BuildRequires:	qt4-devel
%endif
%if %{with qt5}
BuildRequires:	qt5-qtbase-devel
%endif
%if %{with qt6}
BuildRequires:	qt6-qtbase-devel
BuildRequires:	qt6-qt5compat-devel
%endif
BuildRequires:	doxygen graphviz


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

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.


%if %{with qt4}
%package devel
Summary:	Development files for %{name}
Requires:	%{name}%{?_isa} = %{version}-%{release}
Requires:	bzip2-devel%{?_isa}
Requires:	qt4-devel%{?_isa}
Requires:	zlib-devel%{?_isa}

%description devel
The %{name}-devel package contains libraries, header files and documentation
for developing applications that use %{name}. 
%endif

%if %{with qt5}
%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}-qt5
Requires:	%{name}-qt5%{?_isa} = %{version}-%{release}
Requires:	bzip2-devel%{?_isa}
Requires:	qt5-qtbase-devel%{?_isa}
Requires:	zlib-devel%{?_isa}

%description qt5-devel
The %{name}-qt5-devel package contains libraries, header files and documentation
for developing applications that use %{name}-qt5.
%endif

%if %{with qt6}
%package qt6
Summary: Qt6 wrapper for the minizip library
%description qt6
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 qt6-devel
Summary:	Development files for %{name}-qt6
Requires:	%{name}-qt6%{?_isa} = %{version}-%{release}
Requires:	bzip2-devel%{?_isa}
Requires:	qt6-qtbase-devel%{?_isa}
Requires:	qt6-qt5compat-devel%{?_isa}
Requires:	zlib-devel%{?_isa}

%description qt6-devel
The %{name}-qt6-devel package contains libraries, header files and documentation
for developing applications that use %{name}-qt6.
%endif


%prep
%autosetup -p1

%build
%if %{with qt4}
%global _vpath_builddir build-qt4
%cmake -DQUAZIP_QT_MAJOR_VERSION=4 -DQUAZIP_ENABLE_TESTS=ON
%cmake_build
%endif

%if %{with qt5}
%global _vpath_builddir build-qt5
%cmake -DQUAZIP_QT_MAJOR_VERSION=5 -DQUAZIP_ENABLE_TESTS=ON
%cmake_build
%endif

%if %{with qt6}
%global _vpath_builddir build-qt6
%cmake -DQUAZIP_QT_MAJOR_VERSION=6 -DQUAZIP_ENABLE_TESTS=ON
%cmake_build
%endif

doxygen Doxyfile
for file in doc/html/*; do
	touch -r Doxyfile $file
done

%install
%if %{with qt4}
%global _vpath_builddir build-qt4
%cmake_install
%endif

%if %{with qt5}
%global _vpath_builddir build-qt5
%cmake_install
%endif

%if %{with qt6}
%global _vpath_builddir build-qt6
%cmake_install
%endif

# Create compat symlinks/files so that packages that use the old (pre-1.0)
# library location, include paths, or CMake module still build against the
# devel package. Note that the resulting binaries will refer to the new
# library name, though.
#
# These symlinks should probably be removed once all dependent packages are
# switched to use the new pkgconfig or CMake modules.
%if %{with qt4}
ln -s libquazip1-qt4.so %{buildroot}%{_libdir}/libquazip.so

install -d %{buildroot}%{_includedir}/quazip
pushd %{buildroot}%{_includedir}/QuaZip-Qt4-%{version}/quazip
for f in *; do
	ln -s ../QuaZip-Qt4-%{version}/quazip/$f %{buildroot}%{_includedir}/quazip/$f
done
popd

install -d %{buildroot}%{_datadir}/cmake/Modules
install -pm 0644 %{SOURCE1} %{buildroot}%{_datadir}/cmake/Modules/FindQuaZip.cmake
%endif

%if %{with qt5}
ln -s libquazip1-qt5.so %{buildroot}%{_libdir}/libquazip5.so

install -d %{buildroot}%{_includedir}/quazip5
pushd %{buildroot}%{_includedir}/QuaZip-Qt5-%{version}/quazip
for f in *; do
	ln -s ../QuaZip-Qt5-%{version}/quazip/$f %{buildroot}%{_includedir}/quazip5/$f
done
popd

install -d %{buildroot}%{_datadir}/cmake/Modules
install -pm 0644 %{SOURCE1} %{buildroot}%{_datadir}/cmake/Modules/FindQuaZip5.cmake
%endif


%if %{with test}
%check
# Qt4 uses the locale rather than libicu to determine file name encoding.
# Thus we need to force a UTF-8 locale, otherwise the tests will fail
# under Qt4.
# https://github.com/stachenov/quazip/issues/127
export LC_ALL=C.UTF-8
# In some emulated environments (such as the s390x mock chroot emulated
# on x86_64) the regexp JIT is broken, so turn it off to avoid incorrect
# test failures.
export QT_ENABLE_REGEXP_JIT=0

%if %{with qt4}
%global _vpath_builddir build-qt4
%ctest
%endif

%if %{with qt5}
%global _vpath_builddir build-qt5
%ctest
%endif

%if %{with qt6}
%global _vpath_builddir build-qt6
%ctest
%endif
%endif


%if %{with qt4}
%files
%doc NEWS.txt README.md
%license COPYING
%{_libdir}/libquazip1-qt4.so.%{QUAZIP_LIB_VERSION}
%{_libdir}/libquazip1-qt4.so.%{QUAZIP_LIB_SOVERSION}

%files devel
%doc doc/html
%{_includedir}/QuaZip-Qt4-%{version}/
%{_libdir}/libquazip1-qt4.so
%{_libdir}/cmake/QuaZip-Qt4-%{version}/
%{_libdir}/pkgconfig/quazip1-qt4.pc
# pre-1.0 compat files
%{_includedir}/quazip/
%{_libdir}/libquazip.so
%{_datadir}/cmake/Modules/FindQuaZip.cmake
%endif

%if %{with qt5}
%files qt5
%doc NEWS.txt README.md
%license COPYING
%{_libdir}/libquazip1-qt5.so.%{QUAZIP_LIB_VERSION}
%{_libdir}/libquazip1-qt5.so.%{QUAZIP_LIB_SOVERSION}

%files qt5-devel
%doc doc/html
%{_includedir}/QuaZip-Qt5-%{version}/
%{_libdir}/libquazip1-qt5.so
%{_libdir}/cmake/QuaZip-Qt5-%{version}/
%{_libdir}/pkgconfig/quazip1-qt5.pc
# pre-1.0 compat files
%{_includedir}/quazip5/
%{_libdir}/libquazip5.so
%{_datadir}/cmake/Modules/FindQuaZip5.cmake
%endif

%if %{with qt6}
%files qt6
%doc NEWS.txt README.md
%license COPYING
%{_libdir}/libquazip1-qt6.so.%{QUAZIP_LIB_VERSION}
%{_libdir}/libquazip1-qt6.so.%{QUAZIP_LIB_SOVERSION}

%files qt6-devel
%doc doc/html
%{_includedir}/QuaZip-Qt6-%{version}/
%{_libdir}/libquazip1-qt6.so
%{_libdir}/cmake/QuaZip-Qt6-%{version}/
%{_libdir}/pkgconfig/quazip1-qt6.pc
%endif


%changelog
* Mon May 20 2024 Raven <raven@sysadmins.ws> - 1.4-8
- Rebuilt (qt6)

* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Fri May 05 2023 Nicolas Chauvet <kwizart@gmail.com> - 1.4-4
- Add bzip2-devel

* Thu May 04 2023 Nicolas Chauvet <kwizart@gmail.com> - 1.4-3
- Fixup soversion

* Thu May 04 2023 Nicolas Chauvet <kwizart@gmail.com> - 1.4-2
- Update quazip soversion

* Thu May 04 2023 Nicolas Chauvet <kwizart@gmail.com> - 1.4-1
- Update to 1.4

* Sat Mar 25 2023 topazus <topazus@outlook.com> - 1.3-10
- switch to %%ctest macro

* Sat Mar 25 2023 topazus <topazus@outlook.com> - 1.3-9
- Remove ldconfig scriptlets

* Sat Mar 25 2023 topazus <topazus@outlook.com> - 1.3-8
- CMake do out-of-source builds by default

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Thu Sep 01 2022 Ondrej Mosnáček <omosnacek@gmail.com> - 1.3-6
- Ship quazip1-qt6.pc in the devel package
- Resolves: rhbz#2123295

* Thu Sep 01 2022 Ondrej Mosnáček <omosnacek@gmail.com> - 1.3-5
- Switch to rpmautospec

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

* Mon Apr 18 2022 Rex Dieter <rdieter@fedoraproject.org> 1.3-2
- track library sonames explicitly

* Sun Apr 17 2022 Ondrej Mosnacek <omosnace@redhat.com> - 1.3-1
- Update to 1.3
- Resolves: rhbz#2075993

* Sun Mar 06 2022 Ondrej Mosnacek <omosnace@redhat.com> - 1.2-3
- Build Qt6 subpackages on s390x

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Sun Nov 14 2021 Fedora Release Monitoring <release-monitoring@fedoraproject.org> - 1.2-1
- Update to 1.2 (#2023014)

* Tue Sep 14 2021 Ondrej Mosnacek <omosnace@redhat.com> - 1.1-3
- Fix symlink-directory conflict on upgrade

* Thu Aug 19 2021 Ondrej Mosnacek <omosnace@redhat.com> - 1.1-2
- Add Qt6 subpackages

* Sat Jul 31 2021 Ondrej Mosnacek <omosnace@redhat.com> - 1.1-1
- Update to 1.1
- Resolves: rhbz#1895170

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

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.6-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

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

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

* Wed Mar 04 2020 Sandro Mani <manisandro@gmail.com> - 0.7.6-7
- Fix cmake module install path

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.6-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Mon Oct 21 2019 Felipe Borges <feborges@redhat.com> - 0.7.6-5
- Add patch to fix FindQuaZip.cmake install path

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Tue Mar 26 2019 Nicolas Chauvet <kwizart@gmail.com> - 0.7.6-3
- Add zlib-devel - rhbz#1634468

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Tue Jul 17 2018 Nicolas Chauvet <kwizart@gmail.com> - 0.7.6-1
- Update to 0.7.6

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

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

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

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

* Mon Feb 13 2017 Nicolas Chauvet <kwizart@gmail.com> - 0.7.3-1
- Update to 0.7.3

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

* Tue Apr 12 2016 Nicolas Chauvet <kwizart@gmail.com> - 0.7.2-1
- Update to 0.7.2
- Add patch to fix build with qt5 (disable static version)

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sun Apr 19 2015 Rex Dieter <rdieter@fedoraproject.org> 0.7.1-2
- quazip qt5 support (#1197484)

* Thu Jan 08 2015 Nicolas Chauvet <kwizart@gmail.com> - 0.7.1-1
- Update to 0.7.1

* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Tue Jul 29 2014 Nicolas Chauvet <kwizart@gmail.com> - 0.7-1
- Update to 0.7.0

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Wed Feb 12 2014 Nicolas Chauvet <kwizart@gmail.com> - 0.6.2-1
- Update to 0.6.2

* Sun Jan 26 2014 Nicolas Chauvet <kwizart@gmail.com> - 0.6.1-1
- Update to 0.6.1
- Clean spec file

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Sun Mar 03 2013 Nicolas Chauvet <kwizart@gmail.com> - 0.5.1-1
- Update to 0.5.1

* Sun Sep 09 2012 Nicolas Chauvet <kwizart@gmail.com> - 0.5-1
- Update to 0.5

* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Mon Jan 16 2012 Nicolas Chauvet <kwizart@gmail.com> - 0.4.4-1
- Update to 0.4.4

* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Sat Dec 17 2011 Nicolas Chauvet <kwizart@gmail.com> - 0.4.3-1
- Update to 0.4.3

* Fri Aug 19 2011 Nicolas Chauvet <kwizart@gmail.com> - 0.4.2-1
- Update to 0.4.2
- Rebase ld patch

* Mon Jul 25 2011 Nicolas Chauvet <kwizart@gmail.com> - 0.4.1-1
- Update to 0.4.1

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Sat Jul 24 2010 Chen Lei <supercyper@163.com> - 0.3-2
- add BR:graphviz for building apidocs

* Sat Jul 24 2010 Chen Lei <supercyper@163.com> - 0.3-1
- update to 0.3

* Wed Feb  3 2010 Chen Lei <supercyper@163.com> - 0.2.3-5
- quazip-devel must Requires minizip-devel

* Sun Jan 31 2010 Chen Lei <supercyper@163.com> - 0.2.3-4
- change license to GPLv2+ or LGPLv2+

* Sun Jan 31 2010 Chen Lei <supercyper@163.com> - 0.2.3-3
- use %%doc for packaging documentations

* Sun Jan 31 2010 Chen Lei <supercyper@163.com> - 0.2.3-2
- use system-wide minizip library

* Sun Jan 31 2010 Chen Lei <supercyper@163.com> - 0.2.3-1
- initial rpm build

## END: Generated by rpmautospec
