%{?mingw_package_header}
Name: mingw-gtk-vnc
Version: 0.9.0
Release: 1%{?dist}%{?extra_release}
Summary: MinGW Windows port of VNC client GTK widget
License: LGPLv2+
Source: http://ftp.gnome.org/pub/GNOME/sources/gtk-vnc/0.5/gtk-vnc-%{version}.tar.xz
Patch1: 0001-fix-crash-when-connection-fails-early.patch
URL: https://wiki.gnome.org/Projects/gtk-vnc
BuildArch: noarch
BuildRequires: mingw32-filesystem >= 95
BuildRequires: mingw64-filesystem >= 95
BuildRequires: mingw32-gcc
BuildRequires: mingw64-gcc
BuildRequires: mingw32-binutils
BuildRequires: mingw64-binutils
BuildRequires: mingw32-cairo
BuildRequires: mingw64-cairo
BuildRequires: mingw32-gettext
BuildRequires: mingw64-gettext
BuildRequires: mingw32-win-iconv
BuildRequires: mingw64-win-iconv
BuildRequires: mingw32-libgcrypt
BuildRequires: mingw64-libgcrypt
BuildRequires: mingw32-gnutls
BuildRequires: mingw64-gnutls
BuildRequires: mingw32-gtk2
BuildRequires: mingw64-gtk2
BuildRequires: mingw32-gtk3
BuildRequires: mingw64-gtk3
BuildRequires: pkgconfig
BuildRequires: intltool
BuildRequires: /usr/bin/pod2man
# Mingw32
%package -n mingw32-gtk-vnc
Summary: MinGW Windows zlib compression library for the win32 target
Requires: pkgconfig
%package -n mingw32-gvnc
Summary: MinGW Windows port of VNC GObject
%package -n mingw32-gvnc-tools
Summary: Command line VNC tools
%package -n mingw32-gtk-vnc2
Summary: A GTK3 widget for VNC clients
Requires: pkgconfig
%description
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%description -n mingw32-gtk-vnc
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%description -n mingw32-gvnc
gvnc is a GObject for managing a VNC connection. It provides all the
infrastructure required to build a VNC client without having to deal
with the raw protocol itself.
%description -n mingw32-gvnc-tools
Provides useful command line utilities for interacting with
VNC servers. Includes the gvnccapture program for capturing
screenshots of a VNC desktop
%description -n mingw32-gtk-vnc2
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
# Mingw64
%package -n mingw64-gtk-vnc
Summary: MinGW Windows zlib compression library for the win64 target
Requires: pkgconfig
%package -n mingw64-gvnc
Summary: MinGW Windows port of VNC GObject
%package -n mingw64-gvnc-tools
Summary: Command line VNC tools
%package -n mingw64-gtk-vnc2
Summary: A GTK3 widget for VNC clients
Requires: pkgconfig
%description
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%description -n mingw64-gtk-vnc
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%description -n mingw64-gvnc
gvnc is a GObject for managing a VNC connection. It provides all the
infrastructure required to build a VNC client without having to deal
with the raw protocol itself.
%description -n mingw64-gvnc-tools
Provides useful command line utilities for interacting with
VNC servers. Includes the gvnccapture program for capturing
screenshots of a VNC desktop
%description -n mingw64-gtk-vnc2
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%{?mingw_debug_package}
%prep
%setup -q -n gtk-vnc-%{version} -c
cd gtk-vnc-%{version}
%patch1 -p1
cd ..
touch gtk-vnc-%{version}/GNUmakefile
cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
%build
cd gtk-vnc-%{version}
%mingw_configure --with-examples --without-sasl --with-gtk=2.0
rm build_win{32,64}/GNUmakefile
%mingw_make %{?_smp_mflags} V=1
cd ..
cd gtk-vnc2-%{version}
%mingw_configure --without-examples --without-sasl --with-gtk=3.0
rm build_win{32,64}/GNUmakefile
%mingw_make %{?_smp_mflags} V=1
cd ..
%install
cd gtk-vnc-%{version}
%mingw_make_install DESTDIR=$RPM_BUILD_ROOT
cd ..
cd gtk-vnc2-%{version}
%mingw_make_install DESTDIR=$RPM_BUILD_ROOT
cd ..
# Remove static libraries but DON'T remove *.dll.a files.
rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/libgtk-vnc-1.0.a
rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/libgtk-vnc-2.0.a
rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/libgvnc-1.0.a
rm -f $RPM_BUILD_ROOT%{mingw32_mandir}/man1/gvnccapture.1*
rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/libgtk-vnc-1.0.a
rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/libgtk-vnc-2.0.a
rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/libgvnc-1.0.a
rm -f $RPM_BUILD_ROOT%{mingw64_mandir}/man1/gvnccapture.1*
# Drop all .la files
find $RPM_BUILD_ROOT -name "*.la" -delete
%find_lang gtk-vnc
# Mingw32
%files -n mingw32-gtk-vnc -f gtk-vnc.lang
%{mingw32_bindir}/gvncviewer.exe
%{mingw32_bindir}/libgtk-vnc-1.0-0.dll
%{mingw32_libdir}/libgtk-vnc-1.0.dll.a
%{mingw32_libdir}/pkgconfig/gtk-vnc-1.0.pc
%{mingw32_includedir}/gtk-vnc-1.0
%files -n mingw32-gvnc
%doc gtk-vnc-%{version}/AUTHORS
%doc gtk-vnc-%{version}/ChangeLog
%doc gtk-vnc-%{version}/ChangeLog-old
%doc gtk-vnc-%{version}/NEWS
%doc gtk-vnc-%{version}/README
%doc gtk-vnc-%{version}/COPYING.LIB
%{mingw32_bindir}/libgvnc-1.0-0.dll
%{mingw32_libdir}/libgvnc-1.0.dll.a
%{mingw32_libdir}/pkgconfig/gvnc-1.0.pc
%{mingw32_includedir}/gvnc-1.0
%files -n mingw32-gtk-vnc2
%{mingw32_bindir}/libgtk-vnc-2.0-0.dll
%{mingw32_libdir}/libgtk-vnc-2.0.dll.a
%{mingw32_libdir}/pkgconfig/gtk-vnc-2.0.pc
%{mingw32_includedir}/gtk-vnc-2.0
%files -n mingw32-gvnc-tools
%{mingw32_bindir}/gvnccapture.exe
# Mingw64
%files -n mingw64-gtk-vnc -f gtk-vnc.lang
%{mingw64_bindir}/gvncviewer.exe
%{mingw64_bindir}/libgtk-vnc-1.0-0.dll
%{mingw64_libdir}/libgtk-vnc-1.0.dll.a
%{mingw64_libdir}/pkgconfig/gtk-vnc-1.0.pc
%{mingw64_includedir}/gtk-vnc-1.0
%files -n mingw64-gvnc
%doc gtk-vnc-%{version}/AUTHORS
%doc gtk-vnc-%{version}/ChangeLog
%doc gtk-vnc-%{version}/ChangeLog-old
%doc gtk-vnc-%{version}/NEWS
%doc gtk-vnc-%{version}/README
%doc gtk-vnc-%{version}/COPYING.LIB
%{mingw64_bindir}/libgvnc-1.0-0.dll
%{mingw64_libdir}/libgvnc-1.0.dll.a
%{mingw64_libdir}/pkgconfig/gvnc-1.0.pc
%{mingw64_includedir}/gvnc-1.0
%files -n mingw64-gtk-vnc2
%{mingw64_bindir}/libgtk-vnc-2.0-0.dll
%{mingw64_libdir}/libgtk-vnc-2.0.dll.a
%{mingw64_libdir}/pkgconfig/gtk-vnc-2.0.pc
%{mingw64_includedir}/gtk-vnc-2.0
%files -n mingw64-gvnc-tools
%{mingw64_bindir}/gvnccapture.exe
%changelog
* Fri Aug 24 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.9.0-1%{?extra_release}
- Update to 0.9.0 release
* Wed Aug 1 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.8.0-1
- Update to 0.8.0 release
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Mar 23 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.7.2-1
- Update to 0.7.2 release
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Feb 9 2017 Daniel P. Berrange <berrange@redhat.com> - 0.7.0-1
- Update to 0.7.0 release
- CVE-2017-5884 - fix bounds checking for RRE, hextile and
copyrect encodings
- CVE-2017-5885 - fix color map index bounds checking
* Thu Oct 6 2016 Daniel P. Berrange <berrange@redhat.com> - 0.6.0-1
- Update to 0.6.0 release
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild