diff --git a/.cvsignore b/.cvsignore index e69de29..7f3bc1c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +libvpx-0.9.0.tar.bz2 diff --git a/import.log b/import.log new file mode 100644 index 0000000..dc70ee5 --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +libvpx-0_9_0-4_fc13:HEAD:libvpx-0.9.0-4.fc13.src.rpm:1274455258 diff --git a/libvpx-0.9.0-no-explicit-dep-on-static-lib.patch b/libvpx-0.9.0-no-explicit-dep-on-static-lib.patch new file mode 100644 index 0000000..d909d7e --- /dev/null +++ b/libvpx-0.9.0-no-explicit-dep-on-static-lib.patch @@ -0,0 +1,11 @@ +diff -up libvpx-0.9.0/examples.mk.BAD libvpx-0.9.0/examples.mk +--- libvpx-0.9.0/examples.mk.BAD 2010-05-19 17:58:42.611058552 -0400 ++++ libvpx-0.9.0/examples.mk 2010-05-19 17:59:11.934181029 -0400 +@@ -129,7 +129,6 @@ BINS-$(NOT_MSVS) += $(addprefi + # Instantiate linker template for all examples. + CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) + $(foreach bin,$(BINS-yes),\ +- $(if $(BUILD_OBJS),$(eval $(bin): $(LIB_PATH)/lib$(CODEC_LIB).a))\ + $(if $(BUILD_OBJS),$(eval $(call linker_template,$(bin),\ + $(call objs,$($(notdir $(bin)).SRCS)) \ + -l$(CODEC_LIB) $(addprefix -l,$(CODEC_EXTRA_LIBS))\ diff --git a/libvpx.pc b/libvpx.pc new file mode 100644 index 0000000..4632ec5 --- /dev/null +++ b/libvpx.pc @@ -0,0 +1,14 @@ +prefix=@PREFIX@ +exec_prefix=@PREFIX@ +libdir=@LIBDIR@ +includedir=@INCLUDEDIR@ + +Name: libvpx +Description: VP8 Video Codec SDK library +Version: 0.9.0 +URL: http://www.webmproject.org/tools/vp8-sdk/ +Requires: +Conflicts: +Libs: -L${libdir} -lvpx +Libs.private: +Cflags: -I${includedir}/vpx/ diff --git a/libvpx.spec b/libvpx.spec new file mode 100644 index 0000000..07180df --- /dev/null +++ b/libvpx.spec @@ -0,0 +1,160 @@ +Name: libvpx +Summary: VP8 Video Codec SDK +Version: 0.9.0 +Release: 4%{?dist} +License: BSD +Group: System Environment/Libraries +Source0: http://webm.googlecode.com/files/%{name}-%{version}.tar.bz2 +Source1: libvpx.pc +# Thanks to debian. +Source2: libvpx.ver +Patch0: libvpx-0.9.0-no-explicit-dep-on-static-lib.patch +URL: http://www.webmproject.org/tools/vp8-sdk/ +%ifarch %{ix86} x86_64 +BuildRequires: yasm +%endif +BuildRequires: doxygen, php-cli + +%description +libvpx provides the VP8 SDK, which allows you to integrate your applications +with the VP8 video codec, a high quality, royalty free, open source codec +deployed on millions of computers and devices worldwide. + +%package devel +Summary: Development files for libvpx +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Development libraries and headers for developing software against +libvpx. + +%package utils +Summary: VP8 utilities and tools +Group: Development/Tools +Requires: %{name} = %{version}-%{release} + +%description utils +A selection of utilities and tools for VP8, including a sample encoder +and decoder. + +%prep +%setup -q +%patch0 -p1 -b .no-static-lib + +%build +%ifarch %{ix86} +%global vpxtarget x86-linux-gcc +%else +%ifarch x86_64 +%global vpxtarget x86_64-linux-gcc +%else +%global vpxtarget generic-gnu +%endif +%endif + +./configure --target=%{vpxtarget} --enable-pic --disable-install-srcs + +# Hack our optflags in. +sed -i "s|\"vpx_config.h\"|\"vpx_config.h\" %{optflags} -fPIC|g" libs-%{vpxtarget}.mk +sed -i "s|\"vpx_config.h\"|\"vpx_config.h\" %{optflags} -fPIC|g" examples-%{vpxtarget}.mk +sed -i "s|\"vpx_config.h\"|\"vpx_config.h\" %{optflags} -fPIC|g" docs-%{vpxtarget}.mk + +make %{?_smp_mflags} verbose=true target=libs + +# Really? You couldn't make this a shared library? Ugh. +# Oh well, I'll do it for you. +mkdir tmp +cd tmp +ar x ../libvpx_g.a +cd .. +gcc -fPIC -shared -pthread -lm -Wl,--no-undefined -Wl,-soname,libvpx.so.0 -Wl,--version-script,%{SOURCE2} -z noexecstack -o libvpx.so.0.0.0 tmp/*.o +rm -rf tmp + +# Temporarily dance the static libs out of the way +mv libvpx.a libNOTvpx.a +mv libvpx_g.a libNOTvpx_g.a + +# We need to do this so the examples can link against it. +ln -sf libvpx.so.0.0.0 libvpx.so + +make %{?_smp_mflags} verbose=true target=examples +make %{?_smp_mflags} verbose=true target=docs + +# Put them back so the install doesn't fail +mv libNOTvpx.a libvpx.a +mv libNOTvpx_g.a libvpx_g.a + +%install +make DIST_DIR=%{buildroot}%{_prefix} install + +# Install the pkg-config file +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ +install -m0644 %{SOURCE1} %{buildroot}%{_libdir}/pkgconfig/ +# Fill in the variables +sed -i "s|@PREFIX@|%{_prefix}|g" %{buildroot}%{_libdir}/pkgconfig/libvpx.pc +sed -i "s|@LIBDIR@|%{_libdir}|g" %{buildroot}%{_libdir}/pkgconfig/libvpx.pc +sed -i "s|@INCLUDEDIR@|%{_includedir}|g" %{buildroot}%{_libdir}/pkgconfig/libvpx.pc + +# Simpler to label the dir as %doc. +mv %{buildroot}/usr/docs doc/ + +mkdir -p %{buildroot}%{_includedir}/vpx/ +install -p libvpx.so.0.0.0 %{buildroot}%{_libdir} +pushd %{buildroot}%{_libdir} +ln -sf libvpx.so.0.0.0 libvpx.so +ln -sf libvpx.so.0.0.0 libvpx.so.0 +ln -sf libvpx.so.0.0.0 libvpx.so.0.0 +popd +pushd %{buildroot} +# Stuff we don't need. +rm -rf usr/build/ usr/md5sums.txt usr/lib*/*.a usr/CHANGELOG usr/README +# Rename a few examples +mv usr/bin/simple_decoder usr/bin/vp8_simple_decoder +mv usr/bin/simple_encoder usr/bin/vp8_simple_encoder +mv usr/bin/twopass_encoder usr/bin/vp8_twopass_encoder +# Move the headers into the subdir +mv usr/include/*.h usr/include/vpx/ +# Fix the binary permissions +chmod 755 usr/bin/* +popd + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc AUTHORS CHANGELOG LICENSE README +%{_libdir}/libvpx.so.* + +%files devel +%defattr(-,root,root,-) +# These are SDK docs, not really useful to an end-user. +%doc doc/ +%{_includedir}/vpx/ +%{_libdir}/pkgconfig/libvpx.pc +%{_libdir}/libvpx.so + +%files utils +%defattr(-,root,root,-) +%{_bindir}/* + +%changelog +* Thu May 20 2010 Tom "spot" Callaway 0.9.0-4 +- BuildRequires: yasm (we're optimized again) + +* Thu May 20 2010 Tom "spot" Callaway 0.9.0-3 +- add pkg-config file +- move headers into include/vpx/ +- enable optimization + +* Thu May 20 2010 Tom "spot" Callaway 0.9.0-2 +- fix permissions on binaries +- rename generic binaries to v8_* +- link shared library to -lm, -lpthread to resolve missing weak symbols + +* Wed May 19 2010 Tom "spot" Callaway 0.9.0-1 +- Initial package for Fedora diff --git a/libvpx.ver b/libvpx.ver new file mode 100644 index 0000000..d4b6ec2 --- /dev/null +++ b/libvpx.ver @@ -0,0 +1,56 @@ +{ global: +vpx_codec_build_config; +vpx_codec_control_; +vpx_codec_dec_init_ver; +vpx_codec_decode; +vpx_codec_destroy; +vpx_codec_enc_config_default; +vpx_codec_enc_config_set; +vpx_codec_enc_init_ver; +vpx_codec_encode; +vpx_codec_error; +vpx_codec_error_detail; +vpx_codec_err_to_string; +vpx_codec_get_caps; +vpx_codec_get_cx_data; +vpx_codec_get_frame; +vpx_codec_get_global_headers; +vpx_codec_get_mem_map; +vpx_codec_get_preview_frame; +vpx_codec_get_stream_info; +vpx_codec_iface_name; +vpx_codec_peek_stream_info; +vpx_codec_register_put_frame_cb; +vpx_codec_register_put_slice_cb; +vpx_codec_set_cx_data_buf; +vpx_codec_set_mem_map; +vpx_codec_version; +vpx_codec_version_extra_str; +vpx_codec_version_str; +vpx_codec_vp8_algo; +vpx_codec_vp8_cx_algo; +vpx_codec_vp8_dx_algo; +vpx_dec_control; +vpx_dec_decode; +vpx_dec_destroy; +vpx_dec_error; +vpx_dec_error_detail; +vpx_dec_err_to_string; +vpx_dec_get_caps; +vpx_dec_get_frame; +vpx_dec_get_mem_map; +vpx_dec_get_stream_info; +vpx_dec_iface_name; +vpx_dec_init_ver; +vpx_dec_peek_stream_info; +vpx_dec_register_put_frame_cb; +vpx_dec_register_put_slice_cb; +vpx_dec_set_mem_map; +vpx_dec_xma_init_ver; +vpx_enc_vp8_algo; +vpx_img_alloc; +vpx_img_flip; +vpx_img_free; +vpx_img_set_rect; +vpx_img_wrap; +local: *; }; diff --git a/sources b/sources index e69de29..f071551 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +9eb8e818d2f3263623c258fe66924082 libvpx-0.9.0.tar.bz2