LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Forums > Other *NIX Forums > Other *NIX
User Name
Password
Other *NIX This forum is for the discussion of any UNIX platform that does not have its own forum. Examples would include HP-UX, IRIX, Darwin, Tru64 and OS X.

Notices


Reply
  Search this Thread
Old 08-13-2012, 04:25 PM   #1
nokangaroo
Member
 
Registered: Nov 2009
Posts: 141

Rep: Reputation: 25
Building bombono-dvd in Mac OS X Snow Leopard


I tried to build bombono with gentoo prefix which did not work, but this did:

1. Use the source, Luke:
http://downloads.sourceforge.net/bom...-1.2.1.tar.bz2

2. Install dependencies (all available from MacPorts, url.h from ffmpeg.org, boost from boost.org):
gtk2 @2.24.11_0+x11 [X11 version; the no_x11 version broke mlt, and therefore kdenlive]
gtkmm
scons
mjpegtools
libdvdread
dvdauthor
dvdrw-tools
twolame
libxmlxx2
ffmpeg (tested: ffmpeg-0.6.3; menus and transcoding will work. The Macports ffmpeg-devel will only allow DVDs without menus)
enca
boost-1.49.0 from boost.org (installed to /opt/boost; the newer Macports version of boost will not work, and needs uninstalled with sudo port -f uninstall boost)
url.h (from ffmpeg.org) goes into src/mgui

3. Modified files:
bombono-dvd/SConstruct: Line 153 and lines 156-161: Commented out (getconf LFS_CFLAGS does not work)
bombono-dvd/src/mbase/project/archieve.cpp: Lines 181-183 commented out because I don't know what to make of them; with these the build always hangs at src/mbase/project/archieve.cpp with the following error (Always the same error, no matter what I do):
src/mbase/project/archieve.cpp: In function ‘void Project::OpenFirstChild(Project::Archieve&)’:
src/mbase/project/archieve.cpp:182: error: ‘create_wrapper’ is not a member of ‘xmlpp::Node

bombono-dvd/src/mbase/project/menu.h: Lines 63-64 "const uint" changed to "const unsigned int"
bombono-dvd/src/mbase/project/archieve.cpp: Line 28: #include <libxml2/libxml/tree.h>
bombono-dvd/src/mbase/project/tech.h: Line 28: #include <glibmm-2.4/include/glibmmconfig.h>
bombono-dvd/src/mbase/project/_extlibs_.h: Line 89: #include <glibmm-2.4/glibmm/convert.h>
Line 91: #include <libxml++-2.6/libxml++/libxml++.h>
Line 88: #include <glibmm-2.4/glibmm.h>

bombono-dvd/src/mgui/author/gb_devices.c: lines 31-33: commented out (bombono-dvd-1.2.1-glib.patch)
bombono-dvd/src/mgui/ffviewer.cpp: line 41: #include "url.h" (url.h needs to be copied into src/mgui)
bombono-dvd/src/mgui/url.h: line 28:#include<libavformat/avio.h>
line 29: #include <libavformat/version.h>
line 31: #include <libavutil/dict.h>
line 32: #include <libavutil/log.h>

4. sudo ln -s /opt/local/include/libintl.h /usr/include/libintl.h (still necessary despite the include path; scons won't find it otherwise)
sudo ln -s /opt/local/bin/mkisofs /usr/bin/genisoimage (See also Edit below)

Follow Instructions in bombono-dvd/README. During compiling I get a lot of "warning: this is the location of the previous definition", which probably means that the code needs some (or a lot of) rewriting for the Mac.

scons build command:
scons INCLUDE=/opt/boost/include:/opt/local/include:/usr/include LIBPATH=/opt/boost/lib:/opt/local/lib:/usr/lib DVDREAD_INCLUDE=/opt/local/include/dvdread DVDREAD_LIBPATH=/opt/local/lib PREFIX=/opt/bombono

sudo scons PREFIX=/opt/bombono install

5. "Error: terminate called after throwing an instance of 'Gdk::PixbufError'" was due to the .DS_Store files in /opt/bombono.
Solution: sudo find /opt/bombono -name .DS_Store -delete

So far I've built a short test dvd, and it works. Further testing will take time, because I don't really need a DVD authoring program; its just about building interesting software.


Edit: To properly open this application, save the following script as an Automator application as /Applications/bombono.app:

Code:
if [ "$1" ]; then
/opt/bombono/bin/bombono-dvd "$1" &
else
/opt/bombono/bin/bombono-dvd &
fi
Choose Pass input "as arguments". Note the ampersands - without them the application will keep running and consuming CPU power.

If you link this application to the Desktop you will get the equivalent of a .desktop file; you can drag .bmd files onto it and open them with bombono, and you can choose bombono.app in the "Open with" dialog and open your .bmd files by double-clicking them.



Edit: Still no replies? I'd have thought at least one of you guys out there would have tried this and run into trouble (I just did)

The test DVD I built had no menus (I hate DVD menus; they waste time). So when I added a menu my bombono barfed with: "ffmpeg failure: stripped ffmpeg version is detected; please install full version (with mpeg2 video encoder)" But it seems that with ffmpeg-0.6.3 installed to prefix=/usr (the Macports ffmpeg-devel needs uninstalled) the menus will work (at present I have ffmpeg in /opt/ffmpeg with a link to /usr/bin because I rebuilt against yet another version of ffmpeg; I need to clean up)

The configuration of ffmpeg is --prefix=/opt/ffmpeg --arch=x86_64 --enable-shared --enable-static --enable-yasm --enable-runtime-cpudetect --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-gpl (prefix should probably be /usr in the final build)

Some more links are necessary:

Code:
sudo ln -s /opt/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg  #Though maybe not after cleaning up
sudo ln -s /opt/local/bin/spumux /usr/bin/spumux
sudo ln -s /opt/local/bin/dvdauthor /usr/bin/dvdauthor

Last edited by nokangaroo; 08-17-2012 at 11:53 PM. Reason: Rebuilt against a different ffmpeg version
 
Old 08-18-2012, 05:11 PM   #2
nokangaroo
Member
 
Registered: Nov 2009
Posts: 141

Original Poster
Rep: Reputation: 25
Edit (For some reason I can't edit my post): I was able to reproduce this on my other Mac with my first bombono build (described above in 1-4) and ffmpeg-0.6.6, which is still available. Configuration: --prefix=/opt/ffmpeg --arch=x86_64 --enable-shared --enable-static --enable-yasm --enable-runtime-cpudetect --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-gpl.

So for the present this will work, but the code definitely needs to be ported, which is beyond me. And it won't help that most of the commentaries in the source are in Russian

Administrators: Is there a limit on the number of edits for a post? I can edit my reply but not my original post. I will post the whole thing again to clean it up, or I will shut up entirely if asked to do so. Sorry for my lack of scientific rigor, but I'm not a professional software engineer.

As promised, a cleaner build:

1. Boost turns out to be unnecessary. If bombono fails to start with "terminate called after throwing an instance of 'Glib::FileError'" this is due to wrong permissions in /opt/bombono. Solution: sudo chmod -R ug=rwX,o=rX /opt/bombono (I am relying on my build log that I started a couple of months ago, and it said install boost. The failure to build may have had other causes, I have updated Macports since).

2. Build ffmpeg-0.6.6, which is still available. Configuration: --prefix=/usr/local --arch=x86_64 --enable-shared --enable-static --enable-yasm --enable-runtime-cpudetect --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-gpl (I have an older version of libdvdread in /usr/local/lib but it does not seem to interfere)

3.
scons build command:
scons INCLUDE=/opt/local/include:/usr/include:/usr/local/include LIBPATH=/opt/local/lib:/usr/lib:/usr/local/lib DVDREAD_INCLUDE=/opt/local/include/dvdread DVDREAD_LIBPATH=/opt/local/lib PREFIX=/opt/bombono

sudo scons PREFIX=/opt/bombono install

If you want to use the Macports ffmpeg-devel you will have to adjust your $PATH. Add this to your .bash_profile:

# Set path for Macports and fink:
export PATH=$PATH:/opt/local/bin:/opt/local/sbin
export MANPATH=/usr/share/man:/opt/local/share/man:/sw/share/man:/sw/lib/perl5/5.10.0/man:/usr/X11R6/man
export INFOPATH=/opt/local/share/info:/sw/share/info:/sw/info

# Setting path for fink (modify /sw/bin/init.sh by replacing prepend_path with append_path where appropriate if you don't want your path to start with /sw)
test -r /sw/bin/init.sh && . /sw/bin/init.sh

Last edited by nokangaroo; 08-20-2012 at 03:05 PM.
 
Old 09-03-2012, 04:07 PM   #3
nokangaroo
Member
 
Registered: Nov 2009
Posts: 141

Original Poster
Rep: Reputation: 25
Building bombono with quartz (Not really recommended):

1. Replace gtk with no_x11 version:
<Disclaimer>Don't try this without a working backup of your MacPorts install! And if your box goes up in flames I'm not responsible</Disclaimer>

Edit /opt/local/etc/macports/variants.conf:
add +no_x11 +quartz

sudo port -f uninstall gtk2 pango cairo mlt py27-gtk mjpegtools libsdl gedit gtk-chtheme (deactivate is not enough; port will attempt to reinstall them. Depending on what is installed you may have to uninstall more; this is not a recipe. If you get errors, just port -f uninstall the obstacles as you go)
sudo port install gtk2 +no_x11 +quartz (port -f install should not be needed here. Broken ports will be rebuilt automatically. Be patient, and don't forget to breathe.)
sudo port install mjpegtools +no_x11

If you are too lazy to recompile bombono, and a reckless hacker (I recommend rebuilding, as this hack doesn't work well):
sudo ln -s /opt/local/lib/libgdk-quartz-2.0.dylib /opt/local/lib/libgdk-x11-2.0.0.dylib
sudo ln -s /opt/local/lib/libgtk-quartz-2.0.dylib /opt/local/lib/libgtk-x11-2.0.0.dylib



2. Recompiling bombono for quartz (Remove the above links first if you created them):

This involved another change in the source:
bombono-dvd/src/mgui/_extlibs_.h line 46: #include <gtkmm-2.4/gtkmm.h> // no clue why it worked before

And I edited bombono-dvd/config.opts:

Code:
20,21c20,21
< BOOST_INCLUDE = '/opt/boost/include/boost' # should be irrelevant - USE_EXT_BOOST=False
< BOOST_LIBPATH = '/opt/boost/lib'
---
> BOOST_INCLUDE = '/opt/local/include/boost'
> BOOST_LIBPATH = '/opt/local/lib'
42c42
< gtkmm_minus2_dot4_dict = {'LIBS': ['gtkmm-2.4', 'atkmm-1.6', 'gdkmm-2.4', 'giomm-2.4', 'pangomm-1.4', 'gtk-quartz-2.0', 'glibmm-2.4', 'cairomm-1.0', 'sigc-2.0', 'gdk-quartz-2.0', 'atk-1.0', 'pangocairo-1.0', 'Xext', 'Xrender', 'Xinerama', 'Xi', 'Xrandr', 'Xcursor', 'Xcomposite', 'Xdamage', 'gdk_pixbuf-2.0', 'pangoft2-1.0', 'gio-2.0', 'Xfixes', 'cairo', 'pango-1.0', 'm', 'freetype', 'fontconfig', 'gobject-2.0', 'glib-2.0', 'intl'], 'CPPPATH': ['/opt/local/include/gtkmm-2.4', '/opt/local/lib/gtkmm-2.4/include', '/opt/local/include/atkmm-1.6', '/opt/local/include/giomm-2.4', '/opt/local/lib/giomm-2.4/include', '/opt/local/include/pangomm-1.4', '/opt/local/lib/pangomm-1.4/include', '/opt/local/include/gtk-2.0', '/opt/local/include/gtk-unix-print-2.0', '/opt/local/include/gdkmm-2.4', '/opt/local/lib/gdkmm-2.4/include', '/opt/local/include/atk-1.0', '/opt/local/include/glibmm-2.4', '/opt/local/lib/glibmm-2.4/include', '/opt/local/include/glib-2.0', '/opt/local/lib/glib-2.0/include', '/opt/local/include', '/opt/local/include/sigc++-2.0', '/opt/local/lib/sigc++-2.0/include', '/opt/local/include/cairomm-1.0', '/opt/local/lib/cairomm-1.0/include', '/opt/local/include/pango-1.0', '/opt/local/include/cairo', '/opt/local/include/pixman-1', '/opt/local/include/freetype2', '/opt/local/include/libpng14', '/opt/local/lib/gtk-2.0/include', '/opt/local/include/gdk-pixbuf-2.0', '/opt/local/include/gio-unix-2.0/'], 'RPATH': ['/opt/local/lib'], 'LIBPATH': ['/opt/local/lib']}
---
> gtkmm_minus2_dot4_dict = {'LIBS': ['gtkmm-2.4', 'atkmm-1.6', 'gdkmm-2.4', 'giomm-2.4', 'pangomm-1.4', 'gtk-x11-2.0', 'glibmm-2.4', 'cairomm-1.0', 'sigc-2.0', 'gdk-x11-2.0', 'atk-1.0', 'pangocairo-1.0', 'Xext', 'Xrender', 'Xinerama', 'Xi', 'Xrandr', 'Xcursor', 'Xcomposite', 'Xdamage', 'gdk_pixbuf-2.0', 'pangoft2-1.0', 'gio-2.0', 'Xfixes', 'cairo', 'X11', 'pango-1.0', 'm', 'freetype', 'fontconfig', 'gobject-2.0', 'glib-2.0', 'intl'], 'CPPPATH': ['/opt/local/include/gtkmm-2.4', '/opt/local/lib/gtkmm-2.4/include', '/opt/local/include/atkmm-1.6', '/opt/local/include/giomm-2.4', '/opt/local/lib/giomm-2.4/include', '/opt/local/include/pangomm-1.4', '/opt/local/lib/pangomm-1.4/include', '/opt/local/include/gtk-2.0', '/opt/local/include/gtk-unix-print-2.0', '/opt/local/include/gdkmm-2.4', '/opt/local/lib/gdkmm-2.4/include', '/opt/local/include/atk-1.0', '/opt/local/include/glibmm-2.4', '/opt/local/lib/glibmm-2.4/include', '/opt/local/include/glib-2.0', '/opt/local/lib/glib-2.0/include', '/opt/local/include', '/opt/local/include/sigc++-2.0', '/opt/local/lib/sigc++-2.0/include', '/opt/local/include/cairomm-1.0', '/opt/local/lib/cairomm-1.0/include', '/opt/local/include/pango-1.0', '/opt/local/include/cairo', '/opt/local/include/pixman-1', '/opt/local/include/freetype2', '/opt/local/include/libpng14', '/opt/local/lib/gtk-2.0/include', '/opt/local/include/gdk-pixbuf-2.0', '/opt/local/include/gio-unix-2.0/'], 'RPATH': ['/opt/local/lib'], 'LIBPATH': ['/opt/local/lib']}
45c45
< libavformat_dict = {'LIBS': ['avformat'], 'CPPPATH': ['/opt/ffmpeg/include'], 'RPATH': ['/opt/ffmpeg/lib'], 'LIBPATH': ['/opt/ffmpeg/lib']}
---
> libavformat_dict = {'LIBS': ['avformat'], 'CPPPATH': ['/opt/local/include'], 'RPATH': ['/opt/local/lib'], 'LIBPATH': ['/opt/local/lib']}
48c48
< libavcodec_dict = {'LIBS': ['avcodec'], 'CPPPATH': ['/opt/ffmpeg/include'], 'RPATH': ['/opt/ffmpeg/lib'], 'LIBPATH': ['/opt/ffmpeg/lib']}
---
> libavcodec_dict = {'LIBS': ['avcodec'], 'CPPPATH': ['/opt/local/include'], 'RPATH': ['/opt/local/lib'], 'LIBPATH': ['/opt/local/lib']}
51c51
< libswscale_dict = {'LIBS': ['swscale'], 'CPPPATH': ['/opt/ffmpeg/include'], 'RPATH': ['/opt/ffmpeg/lib'], 'LIBPATH': ['/opt/ffmpeg/lib']}
---
> libswscale_dict = {'LIBS': ['swscale'], 'CPPPATH': ['/opt/local/include'], 'RPATH': ['/opt/local/lib'], 'LIBPATH': ['/opt/local/lib']}
54c54
< libavutil_dict = {'LIBS': ['avutil'], 'CPPPATH': ['/opt/ffmpeg/include'], 'RPATH': ['/opt/ffmpeg/lib'], 'LIBPATH': ['/opt/ffmpeg/lib']}
---
> libavutil_dict = {'LIBS': ['avutil'], 'CPPPATH': ['/opt/local/include'], 'RPATH': ['/opt/local/lib'], 'LIBPATH': ['/opt/local/lib']}
Build command: scons INCLUDE=/opt/local/include:/usr/include LIBPATH=/opt/local/lib:/usr/lib DVDREAD_INCLUDE=/opt/local/include/dvdread DVDREAD_LIBPATH=/opt/local/lib PREFIX=/opt/bombono

sudo scons install


ffmpeg version is 0.6.3, but it should also work with 0.6.6.



P.S. I have since found out that bombono (the x11 version) actually works better in Mac OS than in ubuntu. I tried menus with still images in ubuntu precise, and they were badly pixely (others seem to have this problem too; a kind of solution seems to be to always use motion menus, even with still images). But the still images are much better in Mac OS.

The quartz version of bombono (or gtk2) has a bug with the context menus: you need to keep the mouse button pressed until the mouse is over the context menu item. And you have to quit with Ctrl-Q; Command-Q won't work. Apart from that, it seems to work. But I recommend staying with the X11 version.

There also is a Mac OS binary of gtk-osx at
http://sourceforge.net/projects/gtk-osx/

Might be worth a try.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
How to Install Mac OS X Snow Leopard in VirtualBox on Linux 9876543210 Other *NIX 5 11-15-2010 03:26 PM
Running Mac OS X Snow Leopard 10.6.3 in VirtualBox Slckwre The Gargantuan Linux - Software 2 07-06-2010 03:31 PM
[SOLVED] Permissions between Mac OS X Snow Leopard and Linux Ubuntu 9.10 riganta Linux - Desktop 11 03-17-2010 06:35 PM
LXer: Snow Leopard on a Mac without a Mac motherboard LXer Syndicated Linux News 1 01-12-2010 01:28 PM
Need Help Installing Puppy on VMWare Fusion 2 for Mac OS X Snow Leopard! asilentmurmur Puppy 1 09-30-2009 09:06 PM

LinuxQuestions.org > Forums > Other *NIX Forums > Other *NIX

All times are GMT -5. The time now is 02:36 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration