Install Handbrake on Fedora 18
Unfortunately, there are no repos that contain Handbrake pre-built for Fedora. That's not always a bad thing, it just means we need to download and compile it on our machines. It's not as hard as it sounds! Here's how I did it:
We need to get any and all dependencies for Handbrake. I found these by checking the readme and a few other places on the web:
Lets get the development stuff first:
sudo yum groupinstall "Development Tools"
Now lets get all the other dependencies for Handbrake:
sudo yum install libass-devel libsamplerate-devel libogg-devel libtheora-devel libvorbis-devel yasm zlib-devel bzip2-devel fribidi-devel dbus-glib-devel libgudev1-devel webkitgtk-devel libnotify-devel gstreamer-devel gstreamer-plugins-base-devel libsamplerate-devel svn
Once we have all those installed, we can download a copy of Handbrake using SVN:
svn checkout svn://svn.handbrake.fr/HandBrake/trunk hb-trunk
OK. Now we have everything we need to begin compiling lets change to the proper directory and compile!
cd hb-trunk
./configure
cd build
gmake
make install
That's all there is to it! You should now have Handbrake installed and ready for use. Please post below if you come across any problems.
Worked perfectly, thanks.
Works here to, although it took ages to make on my system (955 Phenomn 2 with 8 gig).
Thanks.
localhost hb-trunk]# ./configure
-bash: ./configure: Permission denied
I've tried chmodding it to be executale
no joy
No joy here, failing on gmake 🙁 AFAICT it went ok until gmake with the exception of this "undefined symbol" error which I got a number of times when installing/updating the dependencies. When I tried to re-install the dependencies it said that they were all up to date and there was nothing to do,hence I moved on. Any help appreciated...
Paul
dependency error:
Updating : gtk2-2.24.19-1.fc18.i686 119/180
/usr/bin/gtk-query-immodules-2.0-32: symbol lookup error: /lib/libGL.so.1: undefined symbol: _glapi_tls_Dispatch
warning: %post(gtk2-2.24.19-1.fc18.i686) scriptlet failed, exit status 127
gmake error:
# source='clean-temp.c' object='clean-temp.o' libtool=no
/usr/bin/gcc -std=gnu99 -I. -I/home/poflynn/hb-trunk/build/contrib/include -I/home/poflynn/hb-trunk/build/contrib/include -c clean-temp.c
In file included from clean-temp.h:22:0,
from clean-temp.c:23:
./stdio.h:477:1: error: 'gets' undeclared here (not in a function)
gmake[4]: *** [clean-temp.o] Error 1
gmake[4]: Leaving directory `/home/poflynn/hb-trunk/build/contrib/m4/m4-1.4.16/lib'
gmake[3]: *** [all] Error 2
gmake[3]: Leaving directory `/home/poflynn/hb-trunk/build/contrib/m4/m4-1.4.16/lib'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/home/poflynn/hb-trunk/build/contrib/m4/m4-1.4.16'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/home/poflynn/hb-trunk/build/contrib/m4/m4-1.4.16'
gmake: *** [contrib/m4/.stamp.build] Error 2
poflynn@theworld build$ uname -a
Linux theworld.fdc 3.8.2-206.fc18.x86_64 #1 SMP Fri Mar 8 15:03:34 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
find: ar...(pass) /usr/bin/ar
find: cp...(pass) /usr/bin/cp
find: curl...(pass) /usr/bin/curl
find: gcc...(fail) not found
: name[0] = gcc
ERROR: unable to continue; configure stop.
yum install gcc
For those getting the following errors:
./stdio.h:456:1: error: 'gets' undeclared here (not in a function)
use the following command to get around this error:
sed -i -e '/gets is a security/d' ./build/contrib/m4/m4-1.4.16/lib/stdio.h
Corrected command:
sed -i -e ‘/gets is a security/d’ ./build/contrib/m4/m4-1.4.16/lib/stdio.in.h
How about:
[root@st410 build]# sed -i -e ‘/gets is a security/d’ ./build/contrib/m4/m4-1.4.16/lib/stdio.in.h
sed: -e expression #1, char 1: unknown command: `�'
?
If you copy-paste the command, you have to replace the quotes (those are not ASCII characters).
This command simply suppresses the 477th line of the
./build/contrib/m4/m4-1.4.16/lib/stdio.in.h
file which cause the error.More about the bug :
This fix the problem :
in file fix.path :
--- a/lib/stdio.in.h 2011-03-01 17:39:29.000000000 +0100
+++ b/lib/stdio.in.h 2012-07-05 22:35:32.348982786 +0200
@@ -162,7 +162,9 @@
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89. */
#undef gets
+#if HAVE_RAW_DECL_GETS
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
#if @GNULIB_FOPEN@
# if @REPLACE_FOPEN@
then
patch stdio.in.h < fix.path