# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="2" inherit eutils python fdo-mime DESCRIPTION="OpenShot Video Editor is a free, open-source, non-linear video editor, based on Python, GTK, and MLT." HOMEPAGE="http://www.openshotvideo.com" #MAIN_URI="http://launchpad.net/openshot/build-wizard/create-a-build-wizard/+download" MAIN_URI="http://launchpad.net/~openshot.developers/+archive/ppa/+files" SRC_URI="${MAIN_URI}/openshot_${PV}-0ubuntu1~ppa1k.tar.gz -> \ openshot-${PV}.tar.gz mirror://gentoo/mlt-0.4.4.tar.gz" # This almost seems oxymoron, heh RESTRICT="mirror" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="dvgrab faac faad ieee1394 jack jack-rack kino ladspa quicktime" # Notes on depends: # app-arch/deb2targz is for converting the OpenShot program's .deb package # dev-lang/swig is for compiling the MLT Python bindings # media-libs/mlt is so we don't have to depend on OpenShot's rather # large (~22M) .deb dependencies package (we only use 1 file from it) # Everything else is required by OpenShot or is an optional/USE feature DEPEND="app-arch/deb2targz dev-lang/swig dev-libs/libxml2 dev-python/pygoocanvas dev-python/pyxdg gnome-base/librsvg media-libs/celt[-ogg] =media-libs/mlt-0.4.4[dv,ffmpeg,frei0r,libsamplerate,melt,sdl] media-video/ffmpeg[encode,sdl,theora] media-plugins/frei0r-plugins media-libs/libdv[sdl] media-libs/libsamplerate media-libs/libtheora[encode] media-libs/libvorbis media-sound/sox[encode,ffmpeg,libsamplerate] media-libs/libsdl ieee1394? ( sys-libs/libavc1394 media-libs/libdc1394 sys-libs/libraw1394 ) quicktime? ( media-libs/libquicktime ) dvgrab? ( media-video/dvgrab ) faac? ( media-libs/faac ) faad? ( media-libs/faad2 ) jack? ( media-sound/jack-audio-connection-kit ) jack-rack? ( media-sound/jack-rack ) kino? ( media-video/kino ) ladspa? ( media-libs/ladspa-sdk ) lame? ( media-sound/lame ) x264? ( media-libs/x264 )" RDEPEND="${DEPEND}" src_unpack() { # Unpack the main .deb package first, along with its friends tar zxf ${DISTDIR}/openshot-${PV}.tar.gz # Unpack the MLT source package tar zxf ${DISTDIR}/mlt-0.4.4.tar.gz } src_compile() { ebegin "Building MLT Python bindings" # Export the Python environtment or we get lovely Python.h errors export PYTHON_INCLUDE=`python -c "import sys;print \"%s/include/python%d.%d\"%(sys.prefix,sys.version_info[0],sys.version_info[1])"` # First we need to symlink to mlt.i ln -sf ${WORKDIR}/mlt-0.4.4/src/swig/mlt.i \ ${WORKDIR}/mlt-0.4.4/src/swig/python/mlt.i >/dev/null 2>&1 \ || die "Symlinking of the mlt.i file failed!" # Now we invoke swig swig -c++ -I${WORKDIR}/mlt-0.4.4/src/mlt++ \ -I${WORKDIR}/mlt-0.4.4/src -python \ ${WORKDIR}/mlt-0.4.4/src/swig/mlt.i >/dev/null 2>&1 \ || die "Failed to invoke swig!" # Compile the wrapper g++ -fPIC -D_GNU_SOURCE -c -rdynamic -pthread \ -I${WORKDIR}/mlt-0.4.4/src -I$PYTHON_INCLUDE \ ${WORKDIR}/mlt-0.4.4/src/swig/mlt_wrap.cxx >/dev/null 2>&1 \ || die "Failed compiling the wrapper!" # Create the module gcc -shared ${WORKDIR}/mlt_wrap.o \ -L${WORKDIR}/mlt-0.4.4/src/mlt++ -lmlt++ \ -o ${WORKDIR}/mlt-0.4.4/src/swig/python/_mlt.so >/dev/null 2>&1 \ || die "Bindings module compile failed!" einfo "Bindings installed successfully" } src_install() { # Install the main executable and melt exeinto /usr/bin doexe ${WORKDIR}/openshot/bin/openshot # Install OpenShot links and images insinto /usr/share/applications doins ${WORKDIR}/openshot/xdg/openshot.desktop insinto /usr/share/pixmaps doins ${WORKDIR}/openshot/xdg/openshot.png insinto /usr/share/mime/packages doins ${WORKDIR}/openshot/xdg/openshot.xml insinto /usr/lib/mime/packages doins ${WORKDIR}/openshot/xdg/openshot # Install documentation doman ${WORKDIR}/openshot/docs/openshot.1 # Copy over the rest of OpenShot's files insinto /usr/share/openshot doins -r ${WORKDIR}/openshot/openshot/* # Install our MLT Python bindings python_version insinto /usr/$(get_libdir)/python${PYVER}/site-packages doins ${WORKDIR}/mlt_wrap.o doins ${WORKDIR}/mlt-0.4.4/src/swig/mlt.py exeinto /usr/$(get_libdir)/python${PYVER}/site-packages doexe ${WORKDIR}/mlt-0.4.4/src/swig/python/_mlt.so } pkg_postinst() { # Recreate permissions for executables # Now this is really ugly... but sadly there's no way to avoid it yet local INSTDIR=/usr/share/openshot # Fix file permissions chmod +x ${INSTDIR}/titles/* chmod +x ${INSTDIR}/windows/*.py chmod +x ${INSTDIR}/windows/glade/*.glade chmod +x ${INSTDIR}/classes/*.py # Refresh shared libraries ldconfig # Update our mime database to relect new changes fdo-mime_mime_database_update fdo-mime_desktop_database_update elog elog "The import and export features of this program rely" elog "heavily on its dependencies' USE flags such as" elog "media-libs/mlt and media-video/ffmpeg. If you find you" elog "can't export or import a certain media format, consider" elog "reviewing and modifying these USE flags accordingly." elog elog elog " Please report any bugs with the ebuild to" elog " http://bugs.gentoo.org/283673" elog } pkg_postrm() { # Clean-up our now un-needed MLT python bindings python_mod_cleanup # Update our mime database to reflect new changes fdo-mime_mime_database_update fdo-mime_desktop_database_update }