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