Blob Blame History Raw
%{?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