glc-0.5.8-2kkr2010.0.spec

%define name                 glc
%define elfhacks_version     0.4.1
%define packetstream_version 0.1.4
%define version              0.5.8
%define release              %mkrel 2

%define libname   %mklibname    glc 0
%define develname %mklibname -d glc


Summary:        ALSA & OpenGL capture tool for Linux
Summary(ja):    ALSA & OpenGL環境のLinux向けキャプチャツール
Name:           %{name}
Version:        %{version}
Release:        %{release}
Source0:        http://nullkey.ath.cx/%{name}/archive/%{name}-%{version}.tar.gz
  # Size  : 146,823
  # MD5   : 92463f64fdcf123b1dbc67fc79ff9a13
  # SHA-1 : 012812ad68be4ffcdcbd064023b1e4e1c2157261
Source1:        http://nullkey.ath.cx/elfhacks/archive/elfhacks-%{elfhacks_version}.tar.gz
  # Size  : 9,051
  # MD5   : 1c9bfa5dd6cfaed0a514fd2cf1eb3c6c
  # SHA-1 : 471ee23a9030edefe193f162a0cb8bb492231109
  # various ELF run-time hacks
Source2:        http://nullkey.ath.cx/packetstream/archive/packetstream-%{packetstream_version}.tar.gz
  # Size  : 14,680
  # MD5   : 89ce1ecfd592c9419be3e2e4ea1aba28
  # SHA-1 : 9859fb832c34fc999ea29e755f35a903f6018f38
  # thread-safe ring buffer library with shm support
URL:            http://nullkey.ath.cx/projects/glc/
# The entire source code is ZLIB except glc/support/minilzo/ which is GPLv2+,
#                                       glc/support/quicklz/ which is GPLv2+,
#                                   and glc/support/lzjb/    which is CDDL.
License:        ZLIB
Group:          Video
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires:  libmesagl-devel libx11-devel libxxf86vm-devel libpng-devel libalsa-devel cmake
%ifarch x86_64
BuildRequires:  libmesagl1 libalsa2 libxxf86vm1 libx11_6 libpng3
## following symlinks are required additionally (x86_64 only)
# /usr/lib/libGL.so      -> /usr/lib/libGL.so.1
# /usr/lib/libasound.so  -> /usr/lib/libasound.so.2
# /usr/lib/libXxf86vm.so -> /usr/lib/libXxf86vm.so.1
# /usr/lib/libX11.so     -> /usr/lib/libX11.so.6
# /usr/lib/libpng.so     -> /usr/lib/libpng.so.3
##
# cd /usr/lib/
# sudo ln -s libGL.so{.1,}
# sudo ln -s libasound.so{.2,}
# sudo ln -s libXxf86vm.so{.1,}
# sudo ln -s libX11.so{.6,}
# sudo ln -s libpng.so{.3,}
%endif

%package -n %{libname}
Summary:        %{name} library
Summary(ja):    %{name}ライブラリ
Group:          System/Libraries
Provides:       libglc = %{version}-%{release}

%package -n %{develname}
Summary:        Development files for %{name}
Summary(ja):    %{name}の開発用ファイル
Group:          Development/Other
Requires:       %{libname} = %{version}
Provides:       libglc-devel = %{version}-%{release}


%description
%{name} is an ALSA & OpenGL capture tool for Linux.
%{name} should be able to capture any application that uses ALSA for sound and OpenGL for drawing.

%description -l ja
%{name}はALSA & OpenGL環境のLinux向けキャプチャツールです。
%{name}はサウンドにALSA、描画にOpenGLを用いた任意のアプリケーションをキャプチャできるはずです。

%description -n %{libname}
This package contains library files for %{name}.

%description -n %{libname} -l ja
本パッケージは%{name}のライブラリファイルを含んでいます。

%description -n %{develname}
This package contains development files for %{name}.

%description -n %{develname} -l ja
本パッケージは%{name}の開発ファイルを含んでいます。


%prep
%setup -q -c -b 1 -b 2
# don't use "libglc-*.so" files
%{__sed} -i 's:\(libglc-.*\.so\):\1.0:' glc/src/capture.c


%build
CFLAGS="-O2 -msse -mmmx -fomit-frame-pointer %{optflags}"
export CMAKE_INCLUDE_PATH="${PWD}/elfhacks/src:${PWD}/packetstream/src"
export CMAKE_LIBRARY_PATH="${PWD}/elfhacks/build/src:${PWD}/packetstream/build/src"
# elfhacks, packetstream
for d in elfhacks packetstream; do
	%{__mkdir_p} ${d}/build && pushd ${d}/build/
	%{__cmake} -Wno-dev .. \
		-DCMAKE_INSTALL_PREFIX:PATH="%{_prefix}" \
		-DCMAKE_BUILD_TYPE:STRING="Release" \
		-DCMAKE_C_FLAGS_RELEASE_RELEASE:STRING="${CFLAGS}" \
		-DMLIBDIR="%{_prefix}/%{_lib}"
	%{__make}
	popd
%ifarch x86_64
	%{__mkdir_p} ${d}/build32 && pushd ${d}/build32/
	%{__cmake} -Wno-dev .. \
		-DCMAKE_INSTALL_PREFIX:PATH="%{_prefix}" \
		-DCMAKE_BUILD_TYPE:STRING="Release" \
		-DCMAKE_C_FLAGS_RELEASE:STRING="${CFLAGS} -m32" \
		-DMLIBDIR="%{_prefix}/lib"
	%{__make}
	popd
%endif
done
# glc
%{__mkdir_p} glc/build && pushd glc/build/
%{__cmake} -Wno-dev .. \
	-DCMAKE_INSTALL_PREFIX:PATH="%{_prefix}" \
	-DCMAKE_BUILD_TYPE:STRING="Release" \
	-DCMAKE_C_FLAGS_RELEASE:STRING="${CFLAGS}" \
	-DLZJB:BOOL=OFF \
	-DMLIBDIR="%{_prefix}/%{_lib}"
%{__make}
popd
%ifarch x86_64
export CMAKE_LIBRARY_PATH="${PWD}/elfhacks/build32/src:${PWD}/packetstream/build32/src"
%{__mkdir_p} glc/build32 && pushd glc/build32/
%{__cmake} -Wno-dev .. \
	-DCMAKE_INSTALL_PREFIX:PATH="%{_prefix}" \
	-DCMAKE_BUILD_TYPE:STRING="Release" \
	-DCMAKE_C_FLAGS_RELEASE:STRING="${CFLAGS} -m32" \
	-DBINARIES:BOOL=OFF \
	-DLZJB:BOOL=OFF \
	-DMLIBDIR="%{_prefix}/lib"
%{__make}
popd
%endif
for d in packetstream glc; do
	%{__mv} ${d}/CHANGELOG{,.${d}}
done
%{__lzma} */CHANGELOG*


%install
%{__rm} %{buildroot} -fr
for d in elfhacks packetstream glc; do
	%{__make} -C ${d}/build install DESTDIR=%{buildroot}
%ifarch x86_64
	%{__make} -C ${d}/build32 install DESTDIR=%{buildroot}
%endif
done
# scripts
for n in capture encode play; do
	%{__install} -p -m 755 glc/scripts/${n}.sh %{buildroot}/%{_bindir}/%{name}-${n}.sh
done


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


%files
%defattr(-, root, root)
%{_bindir}/glc-capture
%{_bindir}/glc-play
%{_bindir}/glc-*.sh
%doc */CHANGELOG*

%files -n %{libname}
%defattr(-, root, root)
%{_libdir}/*.so.*
%ifarch x86_64
%{_prefix}/lib/*.so.*
%endif

%files -n %{develname}
%defattr(-, root, root)
%{_includedir}/glc/
%{_includedir}/elfhacks.h
%{_includedir}/packetstream.h
%{_libdir}/*.so
%ifarch x86_64
%{_prefix}/lib/*.so
%endif


%changelog
* Fri Nov 27 2009 kakurasan <kakurasan AT gmail DOT com> 0.5.8-2kkr2010.0
- drop unneeded Requires
- BuildRequires: libmesagl1 libalsa2 libxxf86vm1 libx11_6 libpng3 (x86_64 only)
- disable LZJB support
- fix license info

* Thu Sep 03 2009 kakurasan <kakurasan AT gmail DOT com> 0.5.8-1kkr2009.0
- initial build