From a1ed3743ec5bdf4bdc72edfc79b9fb6d4b0fbe1d Mon Sep 17 00:00:00 2001 From: Thorsten Leemhuis Date: Sun, 3 Aug 2008 17:53:20 +0000 Subject: [PATCH] initial import from livna --- .gitignore | 1 + sources | 1 + x264-rpm.patch | 156 +++++++++++++++++++++++++++ x264-snapshot.sh | 24 +++++ x264.desktop | 10 ++ x264.spec | 275 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 467 insertions(+) create mode 100644 x264-rpm.patch create mode 100755 x264-snapshot.sh create mode 100644 x264.desktop create mode 100644 x264.spec diff --git a/.gitignore b/.gitignore index e69de29..9a54dae 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +x264-20080613.tar.bz2 diff --git a/sources b/sources index e69de29..6b0f0e2 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +265f24d6f91d5ba0b448ed63c59d03fb x264-20080613.tar.bz2 diff --git a/x264-rpm.patch b/x264-rpm.patch new file mode 100644 index 0000000..3a158ab --- /dev/null +++ b/x264-rpm.patch @@ -0,0 +1,156 @@ +diff -up x264-20080420/Makefile.r x264-20080420/Makefile +--- x264-20080420/Makefile.r 2008-04-20 00:21:48.000000000 +0200 ++++ x264-20080420/Makefile 2008-05-04 21:39:38.000000000 +0200 +@@ -69,7 +69,7 @@ DEP = depend + + .PHONY: all default fprofiled clean distclean install install-gtk uninstall dox test testclean + +-default: $(DEP) x264$(EXE) ++default: $(DEP) x264$(EXE) x264_gtk_encode$(EXE) + + libx264.a: .depend $(OBJS) $(OBJASM) + ar rc libx264.a $(OBJS) $(OBJASM) +@@ -77,15 +77,16 @@ libx264.a: .depend $(OBJS) $(OBJASM) + + $(SONAME): .depend $(OBJS) $(OBJASM) + $(CC) -shared -o $@ $(OBJS) $(OBJASM) $(SOFLAGS) $(LDFLAGS) ++ ln -s $(SONAME) libx264.so + +-x264$(EXE): $(OBJCLI) libx264.a +- $(CC) -o $@ $+ $(LDFLAGS) ++x264$(EXE): $(OBJCLI) $(SONAME) ++ $(CC) -o $@ $+ $(LDFLAGS) -lx264 -L. + +-libx264gtk.a: muxers.o libx264.a ++x264_gtk_encode$(EXE): muxers.o $(SONAME) + $(MAKE) -C gtk + +-checkasm: tools/checkasm.o libx264.a +- $(CC) -o $@ $+ $(LDFLAGS) ++checkasm: tools/checkasm.o $(SONAME) ++ $(CC) -o $@ $+ $(LDFLAGS) -lx264 -L. + + %.o: %.asm + $(AS) $(ASFLAGS) -o $@ $< +@@ -152,10 +153,8 @@ install: x264$(EXE) $(SONAME) + install -d $(DESTDIR)$(bindir) $(DESTDIR)$(includedir) + install -d $(DESTDIR)$(libdir) $(DESTDIR)$(libdir)/pkgconfig + install -m 644 x264.h $(DESTDIR)$(includedir) +- install -m 644 libx264.a $(DESTDIR)$(libdir) + install -m 644 x264.pc $(DESTDIR)$(libdir)/pkgconfig + install x264$(EXE) $(DESTDIR)$(bindir) +- ranlib $(DESTDIR)$(libdir)/libx264.a + ifeq ($(SYS),MINGW) + $(if $(SONAME), install -m 755 $(SONAME) $(DESTDIR)$(bindir)) + else +@@ -164,7 +163,7 @@ else + endif + $(if $(IMPLIBNAME), install -m 644 $(IMPLIBNAME) $(DESTDIR)$(libdir)) + +-install-gtk: libx264gtk.a ++install-gtk: x264_gtk_encode$(EXE) + $(MAKE) -C gtk install + + uninstall: +diff -up x264-20080420/gtk/Makefile.r x264-20080420/gtk/Makefile +--- x264-20080420/gtk/Makefile.r 2008-04-20 00:21:48.000000000 +0200 ++++ x264-20080420/gtk/Makefile 2008-05-04 21:34:42.000000000 +0200 +@@ -46,14 +46,14 @@ SOURCES_ALL = $(OBJECTS_ALL:%.o=%.c) + + X264GTK_PC = x264gtk.pc + +-EXTERNAL_DEPS= ../muxers.o ../matroska.o ../libx264.a ++EXTERNAL_DEPS= ../muxers.o ../matroska.o $(SONAME) + + + all: $(ENCODE_BIN) $(TEST_BIN) $(MO_FILES) $(X264GTK_PC) + + # Already provides iconv/intl + CPPFLAGS = -g `pkg-config --cflags gtk+-2.0 gthread-2.0` -I.. -DX264_DATA_DIR=\"${datadir}\" +-LDFLAGS += `pkg-config --libs gtk+-2.0 gthread-2.0` ../libx264.a ++LDFLAGS += `pkg-config --libs gtk+-2.0 gthread-2.0` -L.. -lx264 + + + # gettext rules +@@ -86,11 +86,6 @@ x264_icon.h: x264.ico + + + # Linking rule +-libx264gtk.a: $(OBJECTS_LIB) +- @echo " L: $(@F)" +- @ar rc libx264gtk.a $(OBJECTS_LIB) +- @ranlib libx264gtk.a +- + $(SONAMEGTK): $(OBJECTS_LIB) + @echo " L: $(@F)" + @$(CC) -shared -o $@ $(OBJECTS_LIB) -Wl,-soname,$(SONAMEGTK) $(LDFLAGS) +@@ -102,7 +97,7 @@ $(TEST_BIN): $(OBJECTS_LIB) $(OBJECTS_TE + @$(CC) -o $(TEST_BIN) $(OBJECTS_LIB) $(OBJECTS_TEST) $(LDFLAGS) $(ICONV_LIB) + + # Program : x264_gtk_encode +-$(ENCODE_BIN): x264_icon.h libx264gtk.a $(SONAMEGTK) $(OBJECTS_ENCODE) $(EXTERNAL_DEPS) $(X264GTK_O) ++$(ENCODE_BIN): x264_icon.h $(SONAMEGTK) $(OBJECTS_ENCODE) $(EXTERNAL_DEPS) $(X264GTK_O) + @echo " B: $(@F)" + @$(CC) -o $(ENCODE_BIN) $(OBJECTS_LIB) $(OBJECTS_ENCODE) $(EXTERNAL_DEPS) $(LDFLAGS) $(X264GTK_O) + +@@ -110,17 +105,17 @@ $(ENCODE_BIN): x264_icon.h libx264gtk.a + $(X264GTK_PC): + @echo " S: $(X264GTK_PC)" + @rm -f $(X264GTK_PC) +- @echo "prefix=$(DESTDIR)${prefix}" > $(X264GTK_PC) +- @echo "exec_prefix=$(DESTDIR)${exec_prefix}" >> $(X264GTK_PC) +- @echo "libdir=$(DESTDIR)${libdir}" >> $(X264GTK_PC) +- @echo "includedir=$(DESTDIR)${includedir}" >> $(X264GTK_PC) ++ @echo "prefix=${prefix}" > $(X264GTK_PC) ++ @echo "exec_prefix=${exec_prefix}" >> $(X264GTK_PC) ++ @echo "libdir=${libdir}" >> $(X264GTK_PC) ++ @echo "includedir=${includedir}" >> $(X264GTK_PC) + @echo "" >> $(X264GTK_PC) + @echo "Name: Gtk+ interface for X264" >> $(X264GTK_PC) + @echo "Description: Gtk+ interface to configure X264" >> $(X264GTK_PC) + @echo "Requires: x264" >> $(X264GTK_PC) + @echo "Version: 0.1" >> $(X264GTK_PC) +- @echo "Libs: -L$(DESTDIR)$(libdir) -lx264gtk" >> $(X264GTK_PC) +- @echo "Cflags: -I$(DESTDIR)$(includedir)" >> $(X264GTK_PC) ++ @echo "Libs: -L$(libdir) -lx264gtk" >> $(X264GTK_PC) ++ @echo "Cflags: -I$(includedir)" >> $(X264GTK_PC) + + # Clean rule + clean: +@@ -140,8 +135,6 @@ install: $(ENCODE_BIN) + @install -m 644 x264_gtk_enum.h "$(DESTDIR)$(includedir)" + @echo " D: $(DESTDIR)$(libdir)" + @install -d "$(DESTDIR)$(libdir)" +- @echo " I: $(DESTDIR)$(libdir)/libx264gtk.a" +- @install -m 644 libx264gtk.a "$(DESTDIR)$(libdir)" + @echo " I: $(DESTDIR)$(libdir)/libx264gtk.so" + @$(if $(SONAMEGTK), ln -sf $(SONAMEGTK) $(DESTDIR)$(libdir)/libx264gtk.so) + @$(if $(SONAMEGTK), install -m 755 $(SONAMEGTK) $(DESTDIR)$(libdir)) +diff -up x264-20080420/configure.r x264-20080420/configure +--- x264-20080420/configure.r 2008-04-20 00:21:48.000000000 +0200 ++++ x264-20080420/configure 2008-05-04 21:35:24.000000000 +0200 +@@ -235,6 +235,7 @@ esac + case $host_cpu in + i*86) + ARCH="X86" ++ LDFLAGS="$LDFLAGS -m32" + AS="yasm" + ASFLAGS="-O2" + if [ "$SYS" = MACOSX ]; then +@@ -372,7 +373,7 @@ if test "$pthread" = "yes" ; then + LDFLAGS="$LDFLAGS $libpthread" + fi + +-MP4_LDFLAGS="-lgpac_static" ++MP4_LDFLAGS="-lgpac" + if [ $SYS = MINGW ]; then + MP4_LDFLAGS="$MP4_LDFLAGS -lwinmm" + fi +@@ -477,7 +478,6 @@ if [ "$shared" = "yes" ]; then + fi + + if [ "$gtk" = "yes" ]; then +- echo 'default: libx264gtk.a' >> config.mak + echo 'install: install-gtk' >> config.mak + fi + diff --git a/x264-snapshot.sh b/x264-snapshot.sh new file mode 100755 index 0000000..804aa3b --- /dev/null +++ b/x264-snapshot.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +tmp=$(mktemp -d) + +trap cleanup EXIT +cleanup() { + set +e + [ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp" +} + +unset CDPATH +pwd=$(pwd) +git=$(date +%Y%m%d) + +pushd "$tmp" +git clone git://git.videolan.org/x264.git x264-$git +pushd x264-$git +./version.sh . +find . -type d -name .git -print0 | xargs -0r rm -rf +popd +tar jcf "$pwd"/x264-$git.tar.bz2 x264-$git +popd >/dev/null diff --git a/x264.desktop b/x264.desktop new file mode 100644 index 0000000..034b8ac --- /dev/null +++ b/x264.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Gtk+ interface for X264 +GenericName=Video encoder +Comment=Gtk+ interface to configure X264 +Exec=x264_gtk_encode +Terminal=false +Icon=x264.png +Type=Application +Encoding=UTF-8 +Categories=Video;AudioVideoEditing;GTK; diff --git a/x264.spec b/x264.spec new file mode 100644 index 0000000..a101a9d --- /dev/null +++ b/x264.spec @@ -0,0 +1,275 @@ +%define snapshot 20080613 + +Summary: H264/AVC video streams encoder +Name: x264 +Version: 0.0.0 +Release: 0.15.%{snapshot}%{?dist} +License: GPLv2+ +Group: System Environment/Libraries +URL: http://developers.videolan.org/x264.html +Source0: http://rpm.greysector.net/livna/%{name}-%{snapshot}.tar.bz2 +Source1: x264-snapshot.sh +Source2: %{name}.desktop +Patch0: %{name}-rpm.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n) +BuildRequires: desktop-file-utils +# version.sh requires git +BuildRequires: git-core +BuildRequires: gtk2-devel +BuildRequires: gettext +BuildRequires: ImageMagick +%ifarch %{ix86} +BuildRequires: nasm +%endif +%ifarch x86_64 +BuildRequires: yasm +%endif +%{?_with_gpac:BuildRequires: gpac-devel} + +%description +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the frontend. + +%package libs +Summary: Library for encoding H264/AVC video streams +Group: Development/Libraries +Obsoletes: x264 < 0.0.0-0.13.2008420 + +%description libs +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +%package devel +Summary: Development files for the x264 library +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: pkgconfig + +%description devel +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the development files. + +%package gui +Summary: GUI for x264 encoder +Group: Applications/Multimedia +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +Obsoletes: %{name}-gtk < %{version}-%{release} +Provides: %{name}-gtk = %{version}-%{release} + +%description gui +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the GTK GUI. + +%package gui-devel +Summary: Development files for the x264 encoder GUI +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-gui = %{version}-%{release} +Requires: pkgconfig +Obsoletes: %{name}-gtk-devel < %{version}-%{release} +Provides: %{name}-gtk-devel = %{version}-%{release} + +%description gui-devel +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the GUI development files. + +%prep +%setup -q -n %{name}-%{snapshot} +%patch0 -p1 -b .r +# AUTHORS file is in iso-8859-1 +iconv -f iso-8859-1 -t utf-8 -o AUTHORS.utf8 AUTHORS +mv -f AUTHORS.utf8 AUTHORS +# configure hardcodes X11 lib path +%{__perl} -pi -e 's|/usr/X11R6/lib |%{_libdir} |g' configure +%{__perl} -pi -e 's|^MACHINE=.*|MACHINE=%{_build}|' configure +convert gtk/x264.ico x264icon.png + +%build +./configure \ + --prefix=%{_prefix} \ + --exec-prefix=%{_exec_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --extra-cflags="$RPM_OPT_FLAGS" \ + %{?_with_gpac:--enable-mp4-output} \ + %{?_with_visualize:--enable-visualize} \ + --enable-pthread \ + --enable-debug \ + --enable-shared \ + --enable-gtk \ + --enable-pic + +%{__make} %{?_smp_mflags} + +%install +%{__rm} -rf %{buildroot} +%{__make} DESTDIR=%{buildroot} install + +desktop-file-install --vendor livna \ + --dir $RPM_BUILD_ROOT%{_datadir}/applications \ + --mode 644 \ + %{SOURCE2} + +%{__install} -Dpm 644 x264icon.png \ + %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png + +%find_lang %{name}_gtk + +%clean +%{__rm} -rf %{buildroot} + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +%post gui +/sbin/ldconfig +touch --no-create %{_datadir}/icons/hicolor || : +if [ -x %{_bindir}/gtk-update-icon-cache ]; then + %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : +fi + +%postun gui +/sbin/ldconfig +touch --no-create %{_datadir}/icons/hicolor || : +if [ -x %{_bindir}/gtk-update-icon-cache ]; then + %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : +fi + +%files +%defattr(644, root, root, 0755) +%doc AUTHORS COPYING +%attr(755,root,root) %{_bindir}/x264 + +%files libs +%defattr(644, root, root, 0755) +%{_libdir}/libx264.so.* + +%files devel +%defattr(644, root, root, 0755) +%doc doc/ratecontrol.txt doc/vui.txt +%{_includedir}/x264.h +%{_libdir}/libx264.so +%{_libdir}/pkgconfig/%{name}.pc + +%files gui -f %{name}_gtk.lang +%defattr(644, root, root, 0755) +%attr(755,root,root) %{_bindir}/x264_gtk_encode +%{_libdir}/libx264gtk.so.* +%{_datadir}/x264/ +%{_datadir}/applications/*%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/x264.png + +%files gui-devel +%defattr(644, root, root, 0755) +%{_includedir}/x264_gtk*.h +%{_libdir}/libx264gtk.so +%{_libdir}/pkgconfig/%{name}gtk.pc + +%changelog +* Sun Aug 03 2008 Thorsten Leemhuis 0.0.0-0.14.20080613 +- 20080613 snapshot (.so >= 59 is required by current mencoder) + +* Mon May 05 2008 Dominik Mierzejewski 0.0.0-0.13.20080420 +- 20080420 snapshot +- split libs into a separate package +- svn -> git +- drop obsolete execstack patch +- fixed summaries and descriptions + +* Wed Feb 27 2008 Dominik Mierzejewski 0.0.0-0.12.20080227 +- 20080227 snapshot +- fix build with gpac + +* Tue Nov 13 2007 Hans de Goede 0.0.0-0.11.20070819 +- Merge freshrpms spec into livna spec for rpmfusion: +- Change version from 0 to 0.0.0 so that it is equal to the freshrpms versions, + otherwise we would be older according to rpm version compare. +- Add Provides and Obsoletes x264-gtk to x264-gui for upgrade path from + freshrpms +- Fix icon cache update scripts + +* Sun Sep 30 2007 Hans de Goede 0-0.10.20070819 +- Fix use of execstack on i386, closes livna bug #1659 + +* Sun Aug 19 2007 Dominik Mierzejewski 0-0.9.20070819 +- 20070819 snapshot, closes bug #1560 + +* Thu Nov 09 2006 Dominik Mierzejewski 0-0.8.20061028 +- use PIC on all platforms, fixes bug #1243 + +* Sun Oct 29 2006 Dominik Mierzejewski 0-0.7.20061028 +- fix desktop entry categories for devel + +* Sun Oct 29 2006 Ville Skyttä - 0-0.6.20061028 +- fix BRs +- handle menu icon properly + +* Sat Oct 28 2006 Dominik Mierzejewski 0-0.5.20061028 +- fix bad patch chunk +- fix 32bit build on x86_64 + +* Sat Oct 28 2006 Ville Skyttä - 0-0.4.20061028 +- Don't let ./configure to guess arch, pass it ourselves. +- Drop X-Livna desktop entry category. + +* Sat Oct 28 2006 Dominik Mierzejewski 0-0.3.20061028 +- added GUI (based on kwizart's idea) +- latest snapshot +- added some docs to -devel + +* Sun Oct 01 2006 Dominik Mierzejewski 0-0.2.20061001 +- add snapshot generator script +- fix make install +- make nasm/yasm BRs arch-dependent +- configure is not autoconf-based, call it directly + +* Sat Sep 30 2006 Dominik Mierzejewski 0-0.1.569 +- Updated to latest SVN trunk +- specfile cleanups + +* Mon Sep 04 2006 Dominik Mierzejewski 0-0.1.558 +- Updated to latest SVN trunk +- FE compliance + +* Sun Mar 12 2006 Dominik Mierzejewski 0-0.1.467 +- Updated to latest SVN trunk +- Build shared library +- mp4 output requires gpac + +* Mon Jan 02 2006 Dominik Mierzejewski 0-0.1.394 +- Updated to latest SVN trunk +- Change versioning scheme + +* Sun Nov 27 2005 Dominik Mierzejewski 0.0.375-1 +- Updated to latest SVN trunk +- Added pkgconfig file to -devel + +* Tue Oct 4 2005 Matthias Saou 0.0.315-1 +- Update to svn 315. +- Disable vizualize since otherwise programs trying to link without -lX11 will + fail (cinelerra in this particular case). + +* Mon Aug 15 2005 Matthias Saou 0.0.285-1 +- Update to svn 285. +- Add yasm build requirement (needed on x86_64). +- Replace X11 lib with lib/lib64 to fix x86_64 build. + +* Tue Aug 2 2005 Matthias Saou 0.0.281-1 +- Update to svn 281. + +* Mon Jul 11 2005 Matthias Saou 0.0.273-1 +- Initial RPM release.