[packman] [PM] handbrake 0.9.8-1.26 (openSUSE 12.2/x86_64)

David Haller dnh at opensuse.org
Sat Apr 6 13:52:20 CEST 2013


On Sat, 06 Apr 2013, Stefan Botter wrote:
>On Friday, April 05, 2013 11:15:35 PM David Haller wrote:
>> Done. Building (partly finished, not copied yet). Expect 0.9.8-2.1
>> soonish in the Repo.
>Great! Exactly what I had in mind.
>I will simplify the package a little bit, based on what I did so far - 
>as long as I have a stable internet connetcion, it has been a rocky 12 
>hours now with Kabel Deutschlad :(

Keep in mind though: you cannot get rid of harfbuzz{,-devel}, as
that's pulled in via openSuSE's pango{,-devel} package (and via that
by gtk{2,3?}{,-devel}). So, if harfbuzz is pulled in _anyway_, there's
probably no real advantage trying to get rid of it for libass[1].

You probably could get rid of the -I/usr/include/harfbuzz in the
GTK/PANGO/CPP/CFLAGS ... ('sed'ding GHB_CFLAGS because of e.g. [2] and
probably some more stuff) to avoid the hb.h clash from
-I/usr/include/harfbuzz. But IMO not worth the effort.

As handbrake's headers are all internal, there's IMO only one sane
way, which is the one I used, be it via patch or from the .spec.

Well, maybe it'd be more practical to do the patching from the
.spec instead of by a patch. Here's what I used:

==== put after %setup (possibly after other %patch*es) in %prep section ====
mv -i libhb/hb.h libhb/handbrake.h
mv -i gtk/src/hb-backend.h gtk/src/handbrake-backend.h
find . -name '*.[ch]' -exec grep -l 'include.*"hb.h"' {} + | \
  xargs perl -pi -e 's/include\s*"hb.h"/include "handbrake.h"/'
find . -name '*.[ch]' -exec grep -l 'include.*"hb-backend.h"' {} + | \
  xargs perl -pi -e 's/include\s*"hb-backend.h"/include "handbrake-backend.h"/'

BTW: the handbrake developers know about the problem, it's cropping up
on basically all other distributions too, like Gentoo, Fedora, Debian
and derivatives ...

I'd be glad if you CC me on followups / bugs etc., as I do not read
the packman ML regularly (unless I spot a topic flying by in the
procmail log ;) And feel free to ask for help.


PS: ever experimented to get handbrake use the system/packman libs
    instead of its own? I fear at least the ffmpeg API is too unstable
    for that, but other libs (e.g. font*) should be stable enough ...
    Thoughts? PM (auf deutsch) is ok (ignorieren kann ich immer noch).
    Oh, and thanks for accepting my "changes-only" sr :)

PPS: that whole crap is a good example to give public headers
    longer and speaking names and/or paths than "hb.h". And/or always
    use only the standard includes (and a project include) and include
    stuff relative to those. c.f. <linux/*.h>, <asm/*.h>,
    <harfbuzz/hb.h>, "libhb/hb.h"...
    Versioned -I is ok. c.f. 'ls /usr/include/gtk-*/' with
    '-I/usr/include/gtk-2.0', and, lo, and behold:
        $ pkg-config --cflags gtk+-2.0
        -pthread -I/usr/include/gtk-2.0 [...]
    That's by someone who thought a bit (that '+' in the pkg-config
    name is annoying though).

--- HandBrake-0.9.8/contrib/libass/module.defs~ 2012-06-08 23:39:58.000000000 +0200
+++ HandBrake-0.9.8/contrib/libass/module.defs  2013-04-05 23:56:36.000000000 +0200
@@ -7,7 +7,7 @@
 # Disable as many external dependencies as I can get away with
 # and tell configure where to find our version of freetype
-    --disable-png --disable-enca \
+    --disable-png --disable-enca --disable-harfbuzz \
     FREETYPE_LIBS="-L$(call fn.ABSOLUTE,$(CONTRIB.build/))lib -lfreetype" \
     FREETYPE_CFLAGS="-I$(call fn.ABSOLUTE,$(CONTRIB.build/))include/freetype2" \
     FONTCONFIG_LIBS="-L$(call fn.ABSOLUTE,$(CONTRIB.build/))lib -lfontconfig" \

[2] # chroot /data/build/openSUSE_12.3-x86_64-root/
    grusum:/> pkg-config --cflags gtk+-2.0
    -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include
    -I/usr/include/atk-1.0 -I/usr/include/cairo
    -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0
    -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
    -I/usr/include/pixman-1 -I/usr/include/freetype2
    -I/usr/include/libpng15 -I/usr/include/harfbuzz

Kiss me twice.  I'm schizophrenic.
                               -- from the BSD fortune file

More information about the Packman mailing list