Blob Blame History Raw
# If neither fedora nor rhel was defined, try to guess them from %%{dist}
%if !0%{?rhel} && !0%{?fedora}
%{expand:%(echo "%{?dist}" | \
  sed -ne 's/^\.el\([0-9]\+\).*/%%define rhel \1/p')}
%{expand:%(echo "%{?dist}" | \
  sed -ne 's/^\.fc\?\([0-9]\+\).*/%%define fedora \1/p')}
%endif

%if 0%{?fedora} >= 15  ||  0%{?rhel} >= 7
%define with_systemd 1
%else
%define with_systemd 0
%define _initdir  /etc/rc.d/init.d
%endif

Name:           novnc
Version:        0.4
Release:        4%{?dist}
Summary:        VNC client using HTML5 (Web Sockets, Canvas) with encryption support
Requires:       python-websockify

License:        GPLv3
URL:            https://github.com/kanaka/noVNC
Source0:        https://github.com/downloads/kanaka/noVNC/novnc-%{version}.tar.gz
Source1:        openstack-nova-novncproxy.service
Source2:        openstack-nova-novncproxy.init
Source3:        openstack-nova-novncproxy.sysconfig


Patch0:         novnc-0.4-nova-wsproxy.patch
Patch1:         novnc-0.4-manpage.patch
Patch2:         novnc-0.4-call-websockify.patch
BuildArch:      noarch
BuildRequires:  python2-devel

%description
Websocket implementation of VNC client


%package -n openstack-nova-novncproxy
Summary:        Proxy server for noVNC traffic over Websockets
Requires:       novnc
Requires:       openstack-nova
Requires:       python-websockify

%if %{with_systemd}
Requires(post): systemd-units
Requires(post): systemd-sysv
Requires(preun): systemd-units
Requires(postun): systemd-units
%else
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
%endif

%description -n openstack-nova-novncproxy
OpenStack Nova noVNC server that proxies VNC traffic over Websockets

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1

%build


%install
mkdir -p %{buildroot}/%{_usr}/share/novnc/utils
install -m 444 *html %{buildroot}/%{_usr}/share/novnc
#provide an index file to prevent default directory browsing
install -m 444 vnc.html %{buildroot}/%{_usr}/share/novnc/index.html

mkdir -p %{buildroot}/%{_usr}/share/novnc/include/
install -m 444 include/*.*  %{buildroot}/%{_usr}/share/novnc/include
mkdir -p %{buildroot}/%{_usr}/share/novnc/images
install -m 444 images/*.*  %{buildroot}/%{_usr}/share/novnc/images

mkdir -p %{buildroot}/%{_bindir}
install utils/launch.sh  %{buildroot}/%{_bindir}/novnc_server

install utils/nova-novncproxy %{buildroot}/%{_bindir}

mkdir -p %{buildroot}%{_mandir}/man1/
install -m 444 docs/novnc_server.1 %{buildroot}%{_mandir}/man1/

%if %{with_systemd}
mkdir -p %{buildroot}%{_unitdir}
install -p -D -m 444 %{SOURCE1} %{buildroot}%{_unitdir}
%else
mkdir -p %{buildroot}%{_initddir}
install -p -D -m 755 %{SOURCE2} %{buildroot}%{_initddir}/openstack-nova-novncproxy
%endif

%{__install} -d %{buildroot}%{_sysconfdir}/sysconfig
%{__install} -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/openstack-nova-novncproxy


%post -n openstack-nova-novncproxy
%if %{with_systemd}
%else
# This adds the proper /etc/rc*.d links for the script
/sbin/chkconfig --add openstack-nova-novncproxy
%endif

%preun -n openstack-nova-novncproxy
%if %{with_systemd}
%else
if [ $1 -eq 0 ] ; then
    /sbin/service openstack-nova-novncproxy stop >/dev/null 2>&1
    /sbin/chkconfig --del openstack-nova-novncproxy
fi
%endif


%files
%doc README.md LICENSE.txt

%dir %{_usr}/share/novnc
%{_usr}/share/novnc/*.*
%dir %{_usr}/share/novnc/include
%{_usr}/share/novnc/include/*
%dir %{_usr}/share/novnc/images
%{_usr}/share/novnc/images/*
%{_bindir}/novnc_server
%{_mandir}/man1/novnc_server.1*


%files -n openstack-nova-novncproxy
%{_bindir}/nova-novncproxy
%{_sysconfdir}/sysconfig/openstack-nova-novncproxy
%if %{with_systemd}
%{_unitdir}/openstack-nova-novncproxy.service
%else
%{_initdir}/openstack-nova-novncproxy
%endif

%changelog
* Thu Feb 28 2013 Pádraig Brady <P@draigBrady.com> - 0.4-4
- Support /etc/sysconfig/openstack-nova-novncproxy #916479

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Mon Oct 22 2012 Nikola Đipanoov <ndipanov@redhat.com> - 0.4-2
- Fixes the supplied init script to match the new 0.4 version

* Mon Oct 22 2012 Nikola Đipanoov <ndipanov@redhat.com> - 0.4-1
- Moves to upstream version 0.4.0

* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Wed Jul  4 2012 Till Maas <opensource@till.name> - 0.3-11
- Add a dependency for novnc on python-websockify

* Wed Jun 15 2012 Jose Castro Leon <jose.castro.leon@cern.ch> - 0.3-10
- Add a dependency for openstack-nova-novncproxy on openstack-nova

* Thu Jun 14 2012 Matthew Miller <mattdm@mattdm.org> - 0.3-9
- Remove a dependency for openstack-nova-novncproxy on numpy

* Wed Jun 13 2012 Alan Pevec <apevec@redhat.com> - 0.3-8
- Add a dependency for openstack-nova-novncproxy on python-nova

* Wed Jun 13 2012 Jose Castro Leon <jose.castro.leon@cern.ch> - 0.3-7
- Add a dependency for openstack-nova-novncproxy on novnc

* Mon Jun 11 2012 Adam Young <ayoung@redhat.com> - 0.3-6
- systemd initialization for Nova Proxy
- system V init script
- remove Flash binary supporting older browsers

* Tue Jun 8 2012 Adam Young <ayoung@redhat.com> - 0.3-3
- Added man pages
- novnc_server usese the websockify executable, not wsproxy.py

* Tue Jun 7 2012 Adam Young <ayoung@redhat.com> - 0.3-2
- Make Javascript files non-executable, as they are not script files
- Patch Nova noVNC proxy to use websockify directly

* Tue May 15 2012 Adam Young <ayoung@redhat.com> - 0.3-1
- Added in support for the Nova noVNC proxy
- Added files for the images and inclues subdirectories

* Thu May 10 2012 Adam Young <ayoung@redhat.com> - 0.2
- Initial RPM release.