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