vmgl-0.1-2kkr2010.0.spec

%define distname            VMGL
##%define xserver_name        xorg-server
##%define xserver_version     1.4.2

%define name                vmgl
%define version             0.1
%define release             %mkrel 2

%define vmgllibdir          %{_libdir}/%{name}

%define use_osmesa 0
%{?_with_mesa: %global use_osmesa 1}


Summary:        OpenGL Hardware 3D Acceleration for Virtual Machines
Summary(ja):    仮想マシン向けのOpenGLハードウェア3Dアクセラレーション
Name:           %{name}
Version:        %{version}
Release:        %{release}
License:        BSD
URL:            http://sysweb.cs.toronto.edu/projects/7
Source0:        http://www.cs.toronto.edu/~andreslc/software/%{name}-%{version}.tar.bz2
  # Size  : 2,607,053
  # MD5   : 4ade4c48cf807c61fdfd9d3471eb7825
  # SHA-1 : 606f5ea29b8404caca148c1088adf3911645f001
#Source1:        http://xorg.freedesktop.org/releases/individual/xserver/%{xserver_name}-%{xserver_version}.tar.bz2
  # Size  : 6,216,638
  # MD5   : fa2915ae377f61c340a18ebef484b64b
  # SHA-1 : 385348721ecb6da4bc51a2b7ee5784de6be0a8b6
Patch0:          tightvnc-1.2.9-amd64support.patch
  # Size  : 1,195
  # MD5   : 1ccb40325699536de16742265bd4540e
  # SHA-1 : 9956876b16abe707aadf396ba2f4b77d917743f0
Patch1:          %{name}-%{version}-fix-str-fmt.patch
  # Size  : 5,493
  # MD5   : bd95b29da33cdbd0730beaadeeadf3d0
  # SHA-1 : 1dd8bcf57949ac014f3f75fc0c949512a9b5b810
Group:          System/X11
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires:  mesagl-devel pixman-devel libxext-devel libxmu-devel jpeg-devel xaw-devel libxp-devel libxt-devel libsm-devel libice-devel libxfont-devel libxkbfile-devel zlib1-devel x11-proto-devel x11-xtrans-devel gccmakedep imake python

%package guest
Summary:        %{distname} files for guest OS
Summary(ja):    ゲストOS用の%{distname}のファイル
Group:          System/X11
Provides:       x11-server-xvnc
#Suggests:       x11-server-xorg = %{xserver_version}

%package host
Summary:        %{distname} files for host OS
Summary(ja):    ホストOS用の%{distname}のファイル
Group:          System/X11


%description
OpenGL apps running inside a Virtual Machine (VM) can use %{distname} to take advantage of graphics hardware acceleration. %{distname} can be used on VMware guests, Xen HVM domains (depending on hardware virtualization extensions) and Xen paravirtual domains, using XVnc or the virtual framebuffer. Although we haven't tested it, %{distname} should work for qemu, KVM, and VirtualBox. %{distname} is available for X11-based guest OS's: Linux, FreeBSD and OpenSolaris. %{distname} is GPU-independent: we support ATI, Nvidia and Intel GPUs.

%description -l ja
仮想マシン(VM)内で動作するOpenGLアプリケーションは%{distname}を使用することでグラフィックスハードウェアアプリケーションを利用できます。%{distname}はVMware、Xen HVMドメイン(ハードウェアの仮想化支援拡張による)、Xenの準仮想化ドメインでXVncもしくは仮想フレームバッファを使うことで使用できます。%{distname}は、テストはしていませんがqemu、KVM、VirtualBoxでも動くはずです。%{distname}はX11ベースのゲストOSで利用できます: Linux、FreeBSD、OpenSolaris。%{distname}はGPUに関係なく使えます: ATI、Nvidia、IntelのGPUをサポート。

%description guest
OpenGL apps running inside a Virtual Machine (VM) can use %{distname} to take advantage of graphics hardware acceleration. %{distname} can be used on VMware guests, Xen HVM domains (depending on hardware virtualization extensions) and Xen paravirtual domains, using XVnc or the virtual framebuffer. Although we haven't tested it, %{distname} should work for qemu, KVM, and VirtualBox. %{distname} is available for X11-based guest OS's: Linux, FreeBSD and OpenSolaris. %{distname} is GPU-independent: we support ATI, Nvidia and Intel GPUs.

This package contains %{distname} files for guest OS.

%description guest -l ja
仮想マシン(VM)内で動作するOpenGLアプリケーションは%{distname}を使用することでグラフィックスハードウェアアプリケーションを利用できます。%{distname}はVMware、Xen HVMドメイン(ハードウェアの仮想化支援拡張による)とXenの準仮想化ドメインでXVncもしくは仮想フレームバッファを使うことで使用できます。%{distname}は、テストはしていませんがqemu、KVM、VirtualBoxでも動くはずです。%{distname}はX11ベースのゲストOSで利用できます: Linux、FreeBSD、OpenSolaris。%{distname}はGPUに関係なく使えます: ATI、Nvidia、IntelのGPUをサポート。

このパッケージはゲストOS用の%{distname}のファイルを含んでいます。

%description host
OpenGL apps running inside a Virtual Machine (VM) can use %{distname} to take advantage of graphics hardware acceleration. %{distname} can be used on VMware guests, Xen HVM domains (depending on hardware virtualization extensions) and Xen paravirtual domains, using XVnc or the virtual framebuffer. Although we haven't tested it, %{distname} should work for qemu, KVM, and VirtualBox. %{distname} is available for X11-based guest OS's: Linux, FreeBSD and OpenSolaris. %{distname} is GPU-independent: we support ATI, Nvidia and Intel GPUs.

This package contains %{distname} files for host OS.

%description host -l ja
仮想マシン(VM)内で動作するOpenGLアプリケーションは%{distname}を使用することでグラフィックスハードウェアアプリケーションを利用できます。%{distname}はVMware、Xen HVMドメイン(ハードウェアの仮想化支援拡張による)とXenの準仮想化ドメインでXVncもしくは仮想フレームバッファを使うことで使用できます。%{distname}は、テストはしていませんがqemu、KVM、VirtualBoxでも動くはずです。%{distname}はX11ベースのゲストOSで利用できます: Linux、FreeBSD、OpenSolaris。%{distname}はGPUに関係なく使えます: ATI、Nvidia、IntelのGPUをサポート。

このパッケージはホストOS用の%{distname}のファイルを含んでいます。


%prep
#%setup -q -a 1 -n %{name}.hg
%setup -q -n %{name}.hg
#%{__sed} 's:/xserver:/%{xserver_name}-%{xserver_version}:' extra/patches/Xorg.patch | %{__patch} -f -p1 || true
%patch0 -p1 -b .amd64support
%patch1 -p1 -b .fixstrfmt
# keep debug info
%{__sed} -i 's:-s \(-m 0755\):\1:' Makefile
# delete enclosed binaries
%{__rm} dist/ cr/dist/ -fr
# X11 proto dependency fix(rejected hunks)
#pushd %{xserver_name}-%{xserver_version}/
#%{__sed} -i 's:\(.*randrproto.*\)":\1 vmglproto":' configure.ac
#%{__automake} || true
#popd
# enable off screen rendering using Mesa
%if %{use_osmesa}
echo "enable off screen rendering using Mesa..."
%{__sed} -i 's:\(USE_OSMESA=\)0:\11:' cr/options.mk
%endif


%build
%make CC="%{__cc} %{optflags}" CXX="%{__cxx} %{optflags}"
#pushd %{xserver_name}-%{xserver_version}/
#%%configure
#%make -C hw/xfree86/dixmods/ libvmglext.la LDFLAGS=" "
#popd


%install
# clean
%{__rm} %{buildroot} -fr
# ld.so.conf.d
%{__install} -d %{buildroot}/%{_sysconfdir}/ld.so.conf.d
echo "%{vmgllibdir}" > %{buildroot}/%{_sysconfdir}/ld.so.conf.d/vmgl.conf
# bin
%{__install} -D -m 755 dist/bin/vncviewer %{buildroot}/%{_bindir}/vncviewer-vmgl
%{__install} -m 755 dist/bin/{Xvnc,glstub,stub-daemon} %{buildroot}/%{_bindir}/
# lib
%{__install} -d %{buildroot}/%{vmgllibdir}
%{__install} -m 755 dist/lib/*.so %{buildroot}/%{vmgllibdir}/
pushd %{buildroot}/%{vmgllibdir}/
%{__ln_s} libvmgl.so libGL.so.1.2
%{__ln_s} libGL.so.1{.2,}
%{__ln_s} libGL.so{.1,}
popd
# extension
#%{__install} -D -m 755 {%{xserver_name}-%{xserver_version}/hw/xfree86/dixmods/.libs/,%{buildroot}/%{_libdir}/xorg/modules/extensions/}libvmglext.so
# doc
%{__cat} tightvnc/LICENCE.TXT | %{__lzma} > LICENCE.tightvnc.lzma
%{__lzma} LICENCE.txt README
%{__lzma} cr/doc/{COPYRIGHT*,LICENSE,TO-DO}
%{__mv} cr/{doc,cr}


%post guest
if [ ${1} -eq 1 ]; then
/sbin/ldconfig
fi


%post host
if [ ${1} -eq 1 ]; then
/sbin/ldconfig
fi


%postun guest
if [ ${1} -eq 0 ]; then
/sbin/ldconfig
fi


%postun host
if [ ${1} -eq 0 ]; then
/sbin/ldconfig
fi


%clean
%{__rm} %{buildroot} -fr


%files guest
%defattr(-, root, root)
%{_bindir}/Xvnc
%{vmgllibdir}/lib[^Gr]*.so
%{vmgllibdir}/libGL.so*
#%{_libdir}/xorg/modules/extensions/libvmglext.so
%{_sysconfdir}/ld.so.conf.d/vmgl.conf
%dir %{vmgllibdir}
%doc LICENCE.txt* README* LICENCE.tightvnc* cr/cr/

%files host
%defattr(-, root, root)
%{_bindir}/[^X]*
%{vmgllibdir}/lib[cser]*.so
%{_sysconfdir}/ld.so.conf.d/vmgl.conf
%dir %{vmgllibdir}
%doc LICENCE.txt* README* LICENCE.tightvnc* cr/cr/


%changelog
* Fri Nov 27 2009 kakurasan <kakurasan AT gmail DOT com> 0.1-2kkr2010.0
- drop unneeded Requires
- disable X11 module support
- replace "/etc" with "%%{_sysconfdir}"

* Wed Dec 03 2008 kakurasan <kakurasan AT gmail DOT com> 0.1-1kkr2009.0
- Initial build