makemkv is the best ripper I've found for DVDs and the only ripper I've found for Blu-Rays except for dumphd. It is very reliable. http://makemkv.com/ Here is an ebuild and patch: # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit multilib eutils MY_P="makemkv_v${PV}_beta_oss" MY_PB="makemkv_v${PV}_beta_bin" DESCRIPTION="MakeMKV OSS" HOMEPAGE="http://www.makemkv.org" SRC_URI="http://www.makemkv.com/download/makemkv_v${PV}_beta_oss.tar.gz http://www.makemkv.com/download/makemkv_v${PV}_beta_bin.tar.gz" LICENSE="makemke" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="" DEPEND="x11-libs/qt:4 dev-libs/openssl media-libs/mesa" src_unpack() { # check_license unpack ${A} epatch "${FILESDIR}/rand.patch" } src_compile() { cd "${MY_P}" emake -f makefile.linux || die "make failed" } src_install() { # install oss package cd "${MY_P}" dolib.so out/libdriveio.so.0 dolib.so out/libmakemkv.so.1 dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so.0.${PV} dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so.1.${PV} into /usr dobin out/makemkv # install bin package cd ../"${MY_PB}" into /usr if use x86; then dobin bin/i386/makemkvcon elif use amd64; then dobin bin/amd64/makemkvcon fi } --- makemkv_v1.4.6_beta_oss/libmakemkv/src/world.cpp 2009-08-03 01:39:28.000000000 -0700 +++ makemkv_v1.4.6_beta_oss/libmakemkv/src/world.cpp 2009-08-04 09:41:27.000000000 -0700 @@ -22,6 +22,7 @@ #include <libmkv/libmkv.h> #include <lgpl/osslabi.h> #include <lgpl/zlibabi.h> +#include <cstdlib> #ifdef LGPL_WORLD_HAVE_PRINTFS #include <stdio.h> Reproducible: Always
Please attach both the ebuild and the patch to this bug seperately.
Created attachment 200259 [details] makemkv ebuild
Created attachment 200260 [details, diff] makemkv patch
Thank you for this ebuild, you may also want to investigate putting your ebuild in the sunrise overlay which is located at http://www.gentoo.org/proj/en/sunrise/. When/if the ebuild is put into sunrise, please let us know on this bug.
Created attachment 202708 [details] fixed site url, qt4 deps, emake
Created attachment 205530 [details] new version
1.4.8 is out, ebuild for 1.4.7 works fine.
There is actually an icon included with the program: makemkv_v1.4.6_beta_oss/makemkvgui/src/img/xxx/mkv_icon.png
It would also be great to have this ebuild depend on individual qt ebuilds instead of the meta ebuild.
I've got the icon installing in a new ebuild, and I'm working on the correct qt deps. I'll post it when it's done.
Here is a new ebuild. It renames to 1.4.8, installs the icon, and fixes the qt dep. makemkv only depends on qt-gui.
Created attachment 208438 [details] updated ebuild
Created attachment 210612 [details] added desktop entry and icon, small fixes
>It would also be great to have this ebuild depend on individual qt ebuilds instead of the meta ebuild. Grant, read other comments and attachments sometime, qt4 depend was fixed two months before your message. Also your build still uses wrong url to homepage, does not support gcc chost, cflags and ldflags, uses unnecessary src_unpack, has spaces instead of tabulation. Please obsolete it.
Whoopsie.
1.4.9 released. Renaming works.
Created attachment 212010 [details] new version, old ebuild renamed :)
Created attachment 217022 [details] wrong file
Created attachment 217024 [details] new version, renamed ebuild
Created attachment 218289 [details] new version, renamed ebuild
Created attachment 222119 [details] new version, renamed ebuild
Since these guys have switched to a shareware model, I've personally lost interest in looking at it, and doubt it'll make it into the tree.
(In reply to comment #22) > Since these guys have switched to a shareware model, I've personally lost > interest in looking at it, and doubt it'll make it into the tree. > Apologies if that sounded overly gloom and doom. :) Feel free to CC me if things change, though.
Are you sure the Linux version is shareware? Could you clarify a bit. It won't make it into the tree because it's shareware, or because you've lost interest?
(In reply to comment #24) > Are you sure the Linux version is shareware? http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053 > Could you clarify a bit. It won't make it into the tree because it's > shareware, or because you've lost interest? A bit of both. I'm not necessarily opposed to it going into the tree, just me personally taking care of it. The build system could be cleaned up quite a bit as well.
Alright guys, I know it's not ideal, but I've uploaded an ebuild for 1.5.6 to the official multimedia overlay: http://gitorious.org/gentoo-multimedia/gentoo-multimedia Have fun, and thanks for the work.
Thanks Steve.
(In reply to comment #27) > Thanks Steve. > No problem. If you guys have any ebuild issues, just post em here
Created attachment 255731 [details] version bump
The ebuild isn't downloading the current version of makemkv and doesn't find the 1.5.8 (current is 1.6.2). During the compile time, there's a probleme of place of compile (compilator wants to be in a repository he can't cd...) I have ended the compile on myself without problem.
Version is now at 1.6.3.
1.6.3 works for me by simply renaming the 1.6.2 ebuild
1.6.4 is out now. Renaming the ebuild gives the following error. Downloading and compiling following the instruction on makemkv.com does the same. I haven't tested with any other version as they appear to be no longer available. mkdir -p out x86_64-pc-linux-gnu-gcc -march=core2 -O2 -pipe -Wl,-O1 -Wl,--as-needed -D_linux_ -oout/makemkv.full -Imakemkvgui/inc -Ilibmakemkv/inc -Isstring/inc -Ilibdriveio/inc \ makemkvgui/src/aboutbox.cpp makemkvgui/src/client.cpp makemkvgui/src/dirselectbox.cpp makemkvgui/src/logic.cpp makemkvgui/src/logtext.cpp makemkvgui/src/main.cpp makemkvgui/src/nativefiledialog.cpp makemkvgui/src/mainwnd.cpp makemkvgui/src/marshall.cpp makemkvgui/src/progress.cpp makemkvgui/src/scsiinfo.cpp makemkvgui/src/settingdlg.cpp makemkvgui/src/uisync.cpp makemkvgui/src/viteminfo.cpp makemkvgui/src/backupdlg.cpp makemkvgui/src/lstring.cpp makemkvgui/src/notify.cpp makemkvgui/src/str/en_utf16.cpp makemkvgui/src/api_posix.cpp makemkvgui/src/api_linux.cpp makemkvgui/src/logic_posix.cpp makemkvgui/src/notify_linux.cpp tmp/qt_rsrc.cpp tmp/moc_mainwnd.cpp tmp/moc_logtext.cpp tmp/moc_dirselectbox.cpp tmp/moc_aboutbox.cpp tmp/moc_settingdlg.cpp tmp/moc_backupdlg.cpp sstring/src/sstring.cpp libdriveio/src/srlist.cpp \ -DHAVE_BUILDINFO_H -Itmp \ -I/usr/include/qt4 -I/usr/lib/qt4/include -L/usr/lib/qt4 -L/usr/lib/qt4/lib -lc -lstdc++ -lQtGui -lQtCore \ -lpthread -lz -lrt objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libdriveio.so.0.full out/libdriveio.so.0 objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libmakemkv.so.1.full out/libmakemkv.so.1 /var/tmp/portage/media-video/makemkv-1.6.4/temp/ccezipcC.o: In function `notifyInit()': notify_linux.cpp:(.text+0x7d): undefined reference to `QDBusMessage::QDBusMessage()' notify_linux.cpp:(.text+0x102): undefined reference to `QDBusConnection::sessionBus()' notify_linux.cpp:(.text+0x13e): undefined reference to `QDBusInterface::QDBusInterface(QString const&, QString const&, QString const&, QDBusConnection const&, QObject*)' notify_linux.cpp:(.text+0x14d): undefined reference to `QDBusConnection::~QDBusConnection()' notify_linux.cpp:(.text+0x19b): undefined reference to `QDBusAbstractInterface::isValid() const' notify_linux.cpp:(.text+0x3c1): undefined reference to `QDBusAbstractInterface::call(QDBus::CallMode, QString const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&)' notify_linux.cpp:(.text+0x3cc): undefined reference to `QDBusMessage::operator=(QDBusMessage const&)' notify_linux.cpp:(.text+0x3d4): undefined reference to `QDBusMessage::~QDBusMessage()' notify_linux.cpp:(.text+0x43a): undefined reference to `QDBusMessage::type() const' notify_linux.cpp:(.text+0x450): undefined reference to `QDBusMessage::~QDBusMessage()' notify_linux.cpp:(.text+0x4df): undefined reference to `QDBusMessage::arguments() const' notify_linux.cpp:(.text+0x552): undefined reference to `QDBusMessage::~QDBusMessage()' notify_linux.cpp:(.text+0x580): undefined reference to `QDBusMessage::~QDBusMessage()' notify_linux.cpp:(.text+0x5d7): undefined reference to `QDBusConnection::~QDBusConnection()' /var/tmp/portage/media-video/makemkv-1.6.4/temp/ccezipcC.o: In function `notifyEvent(QMainWindow*, unsigned long, char const*, QString const&)': notify_linux.cpp:(.text+0x7b6): undefined reference to `QDBusAbstractInterface::call(QDBus::CallMode, QString const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&)' notify_linux.cpp:(.text+0x7c3): undefined reference to `QDBusMessage::~QDBusMessage()' collect2: ld returned 1 exit status distcc[7380] ERROR: compile makemkvgui/src/aboutbox.cpp on localhost failed make: *** [out/makemkv.full] Error 1 emake failed * ERROR: media-video/makemkv-1.6.4 failed (compile phase): * make failed * * Call stack: * ebuild.sh, line 56: Called src_compile * environment, line 2407: Called die * The specific snippet of code: * emake GCC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}" -f makefile.linux || die "make failed" * * If you need support, post the output of 'emerge --info =media-video/makemkv-1.6.4', * the complete build log and the output of 'emerge -pqv =media-video/makemkv-1.6.4'. * This ebuild is from an overlay named 'digimed': '/mnt/portage/local/' * The complete build log is located at '/var/log/portage/media-video:makemkv-1.6.4:20110209-110449.log'. * The ebuild environment file is located at '/var/tmp/portage/media-video/makemkv-1.6.4/temp/environment'. * S: '/var/tmp/portage/media-video/makemkv-1.6.4/work/makemkv-1.6.4' ============================================================================ % emerge --info Portage 2.2.0_alpha23 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.2, glibc-2.13-r0, 2.6.37-gentoo-1 x86_64) ================================================================= System uname: Linux-2.6.37-gentoo-1-x86_64-Intel-R-_Core-TM-2_CPU_6600_@_2.40GHz-with-gentoo-2.0.1 Timestamp of tree: Wed, 09 Feb 2011 07:15:01 +0000 distcc 3.1 x86_64-pc-linux-gnu [enabled] app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.1, 3.1.3 dev-util/cmake: 2.8.3-r1 sys-apps/baselayout: 2.0.1-r1 sys-apps/openrc: 0.7.0 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.21 sys-devel/gcc: 4.5.2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82 virtual/os-headers: 2.6.36.1 (sys-kernel/linux-headers) Repositories: gentoo multimedia Mythtv-Ebuilds kde kde-sunset sunrise digimed Installed sets: @kde4, @kvm, @lxf, @missingdeps, @system, @temp, @zenus-deps ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=core2 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /etc/env.d /usr/share/config /usr/share/openvpn/easy-rsa" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=core2 -O2 -pipe" DISTDIR="/mnt/portage/distfiles" EMERGE_DEFAULT_OPTS="--alphabetical --jobs --load-average 5" FEATURES="assume-digests binpkg-logs buildpkg distcc distlocks fixlafiles fixpackages metadata-transfer news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="ftp://ftp.heanet.ie/pub/gentoo/ ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/" LANG="en_GB" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en_GB" MAKEOPTS="-j3 -l5" PKGDIR="/mnt/portage/packages/zaphod" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/var/portage" PORTDIR_OVERLAY="/mnt/portage/layman/multimedia /mnt/portage/mythtv/Gentoo /mnt/portage/layman/kde /mnt/portage/layman/kde-sunset /mnt/portage/layman/sunrise /mnt/portage/local" SYNC="rsync://marvin/portage" USE="X a52 aac aalib acl acpi alsa amd64 apache2 audiofile berkdb bluetooth branding bzip2 cairo cddb cdr cli consolekit cracklib crypt css cups curl cxx dbus directfb dts dv dvb dvd dvdr ebook encode exif fam ffmpeg flac foomaticdb gdbm gdu gif gimp gnutls gpg gphoto2 gpm gtk hal iconv id3 ieee1394 imagemagick imap jabber java jbig jpeg jpeg2k kde kipi libnotify libwww lm_sensors lzma mad mailwrapper matroska mmx mmxext mng modules mp3 mp4 mpeg mplayer mudflap multilib musicbrainz mysql ncurses nptl nptlonly nsplugin ntfs nvidia offensive ogg ogm opengl openmp oss pango pcre pda pdf png policykit ppds pppd python qt3support qt4 quicktime rdesktop readline reiserfs samba scanner sdl semantic-desktop session slp snmp spell sse sse2 ssl ssse3 startup-notification svg sysfs tcpd theora threads tiff truetype udev unicode usb v4l v4l2 vnc vorbis wav webkit x264 xcb xcomposite xfs xinerama xml xmp xorg xscreensaver xulrunner xv xvid xvmc zlib zsh-completion zvbi" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon nikon" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" FOO2ZJS_DEVICES="hp1020 hp1022" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse aiptek" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB" LIRC_DEVICES="devinput mceusb" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" SANE_BACKENDS="genesys" USERLAND="GNU" VIDEO_CARDS="vesa nv nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Have you tried this: http://www.makemkv.com/forum2/viewtopic.php?f=3&t=2566 We just need a simple patch.
Created attachment 261963 [details] New ebuild that patches makefile
Created attachment 261965 [details, diff] makefile patch
makemkv-1.6.5 is out but it fails to compile if I rename, even after removing the patch.
(In reply to comment #37) > makemkv-1.6.5 is out but it fails to compile if I rename, even after removing > the patch. > Seems like the makefile.linux doesn't like the GCC variable being overridden by the make invocation of the ebuild, as it looses some defines. I didn't delve into this, but just worked around it but providing the missing defines in the src_compile() section of the ebuild: src_compile() { cd "${MY_P}" emake GCC="$(tc-getCC) ${CFLAGS} ${LDFLAGS} -Os -D_GNU_SOURCE -D_linux_" -f makefile.linux || die "make failed" } This isn't a fix. I believe the makemkv makefile needs some attention.
makemkv 1.6.6 compiles without any patching. tested on ~amd64 platform see attachment.
Created attachment 268333 [details] 1.6.6 ebuild 1.6.4 bug was fixed upstream it looks like as all i did was remove the epatch function and it compiled on ~amd64
Created attachment 270257 [details] 1.6.7 ebuild New version comes new ebuild. added checks for qt-dbus as it is needed for compiling.
Created attachment 271639 [details] 1.6.8 Ebuild Same as 1.6.7 just renamed
Created attachment 274899 [details] version bump to 1.6.9
(In reply to comment #43) > Created attachment 274899 [details] > version bump to 1.6.9 Bumped in multimedia overlay, thanks guys
1.6.10 is available for download. Renaming works for me.
Created attachment 276511 [details] Version bump to 1.6.10 renamed ebuild for the lazy, and of course tested it ;)
Created attachment 279803 [details] Version bump to 1.6.12 Update to version 1.6.12, verified to work
Steve, could you bump it in the multimedia overlay?
(In reply to comment #48) > Steve, could you bump it in the multimedia overlay? Alright, bumped
Thank you Steve!
makemkv-1.6.13 is out.
1.6.14 is in the overlay.
(In reply to comment #52) > 1.6.14 is in the overlay. !!! Digest verification failed: !!! /var/lib/layman/multimedia/media-video/makemkv/ChangeLog !!! Reason: Filesize does not match recorded size !!! Got: 782 !!! Expected: 652
1.6.15 is out.
Hi guys, 1.6.16 is out with many improvements.
Alright, removed the ebuild from the multimedia tree, and put it in the portage tree. Closing this bug since it's in CVS. Open a new bug with any other issues, as normal, from now on. :) Thanks for everyone's help with the ebuilds!