vmgl-0.1-1kkr2009.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 1

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

%define libx11              %mklibname    x11_    6
%define libx11_devel        %mklibname -d x11_    6
%define libxext             %mklibname    xext    6
%define libxext_devel       %mklibname -d xext    6
%define libxmu              %mklibname    xmu     6
%define libxmu_devel        %mklibname -d xmu     6
%define libxp               %mklibname    xp      6
%define libxp_devel         %mklibname -d xp
%define libxt               %mklibname    xt      6
%define libxt_devel         %mklibname -d xt      6
%define libsm               %mklibname    sm      6
%define libsm_devel         %mklibname -d sm      6
%define libice              %mklibname    ice     6
%define libice_devel        %mklibname -d ice     6
%define libxpm              %mklibname    xpm     4
%define libxpm_devel        %mklibname -d xpm
%define libxaw              %mklibname    xaw     8
%define libxaw_devel        %mklibname -d xaw
%define libmesa             %mklibname    mesagl  1
%define libmesa_devel       %mklibname -d mesagl  1
%define libjpeg             %mklibname    jpeg    62
%define libjpeg_devel       %mklibname -d jpeg    62
%define libxfont            %mklibname    xfont   1
%define libxfont_devel      %mklibname -d xfont   1
%define libxkbfile          %mklibname    xkbfile 1
%define libxkbfile_devel    %mklibname -d xkbfile
%define libfontenc          %mklibname    fontenc 1
%define libfontenc_devel    %mklibname -d fontenc 1

%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
Source1:        http://xorg.freedesktop.org/releases/individual/xserver/%{xserver_name}-%{xserver_version}.tar.bz2
Patch:          tightvnc-1.2.9-amd64support.patch
Group:          System/X11
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires:  %{libmesa_devel} %{libxext_devel} %{libxmu_devel} %{libjpeg_devel} %{libxaw_devel} %{libxp_devel} %{libxt_devel} %{libsm_devel} %{libice_devel} %{libxpm_devel} %{libxfont_devel} %{libxkbfile_devel} %{libfontenc_devel} zlib1-devel x11-proto-devel x11-proto-vmgl-devel x11-xtrans-devel gcc-c++ gccmakedep imake python

%package guest
Summary:        %{distname} files for guest OS
Summary(ja):    ゲストOS用の%{distname}のファイル
Group:          System/X11
Requires:       libstdc++6 %{libx11} %{libjpeg}
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
Requires:       libstdc++6 %{libx11} %{libxext} %{libxmu} %{libjpeg} %{libxaw} %{libxp} %{libxt} %{libsm} %{libice}


%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
%{__sed} 's:/xserver:/%{xserver_name}-%{xserver_version}:' extra/patches/Xorg.patch | %{__patch} -f -p1 || true
%patch0 -p1
# 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}
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}/etc/ld.so.conf.d
echo "%{vmgllibdir}" > %{buildroot}/etc/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
/etc/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
/etc/ld.so.conf.d/vmgl.conf
%dir %{vmgllibdir}
%doc LICENCE.txt* README* LICENCE.tightvnc* cr/cr/


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