diff options
| -rw-r--r-- | abs/extra/handbrake/PKGBUILD | 46 | ||||
| -rw-r--r-- | abs/extra/handbrake/gtk2.20_fixes.patch | 248 | ||||
| -rw-r--r-- | abs/extra/handbrake/handbrake.install | 15 | 
3 files changed, 309 insertions, 0 deletions
| diff --git a/abs/extra/handbrake/PKGBUILD b/abs/extra/handbrake/PKGBUILD new file mode 100644 index 0000000..7946bd5 --- /dev/null +++ b/abs/extra/handbrake/PKGBUILD @@ -0,0 +1,46 @@ +# $Id: PKGBUILD 84760 2010-07-04 06:05:09Z eric $ +# Contributor: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Sebastien Piccand <sebcactus gmail com> + +pkgbase=handbrake +pkgname=('handbrake' 'handbrake-cli') +pkgver=0.9.4 +pkgrel=3 +arch=('i686' 'x86_64') +url="http://handbrake.fr/" +license=('GPL') +depends=('bzip2' 'hal' 'libnotify' 'libwebkit') +makedepends=('intltool' 'python' 'yasm') +source=(http://saintdevelopment.com/mirror/${pkgname}/HandBrake-${pkgver}.tar.bz2 +	gtk2.20_fixes.patch) +md5sums=('69f88b2e602550615da75947f914d7e6' 'e0296baaed129dceaf0d29c8284dc9fe') +sha1sums=('91329a83315b7eae0b2b3731a8bf0f2de2a6eb4d' '17b39144d9883b1f63d9b9ff2f6770b35bbdb16a') + +build() { +  cd "${srcdir}/HandBrake-${pkgver}" + +  #this patch is cherry picked from svn. remove it when updating to a new version +  patch -Np0 -i ${srcdir}/gtk2.20_fixes.patch + +  ./configure --prefix=/usr --force +  cd build +  make +} + +package_handbrake() { +  pkgdesc="Multiplatform, multithreaded DVD to MPEG-4/H264/Theora converter" +  install=${pkgname}.install + +  cd "${srcdir}/HandBrake-${pkgver}/build" +  make DESTDIR="${pkgdir}" install +  rm "${pkgdir}/usr/bin/HandBrakeCLI" +} + +package_handbrake-cli() { +  pkgdesc="Multiplatform, multithreaded DVD to MPEG-4/H264/Theora converter (CLI version)" +  depends=('bzip2' 'gcc-libs' 'zlib') +  conflict=('handbrake<=0.9.4-2') + +  cd "${srcdir}/HandBrake-${pkgver}/build" +  install -D -m 755 HandBrakeCLI "${pkgdir}/usr/bin/HandBrakeCLI" +} diff --git a/abs/extra/handbrake/gtk2.20_fixes.patch b/abs/extra/handbrake/gtk2.20_fixes.patch new file mode 100644 index 0000000..63b0947 --- /dev/null +++ b/abs/extra/handbrake/gtk2.20_fixes.patch @@ -0,0 +1,248 @@ +Index: gtk/src/settings.c +=================================================================== +--- gtk/src/settings.c	(revision 3134) ++++ gtk/src/settings.c	(revision 3135) +@@ -179,17 +179,14 @@ + // Map widget names to setting keys + // Widgets that map to settings have names + // of this format: s_<setting key> +-static const gchar* +-get_setting_key(GtkWidget *widget) ++const gchar* ++ghb_get_setting_key(GtkWidget *widget) + { + 	const gchar *name; + 	 + 	g_debug("get_setting_key ()\n"); + 	if (widget == NULL) return NULL; +-	if (GTK_IS_ACTION(widget)) +-		name = gtk_action_get_name(GTK_ACTION(widget)); +-	else +-		name = gtk_widget_get_name(widget); ++	name = gtk_buildable_get_name(GTK_BUILDABLE(widget)); + 		 + 	if (name == NULL) + 	{ +@@ -214,10 +211,7 @@ + 	} +  + 	type = GTK_WIDGET_TYPE(widget); +-	if (GTK_IS_ACTION(widget)) +-		name = gtk_action_get_name(GTK_ACTION(widget)); +-	else +-		name = gtk_widget_get_name(widget); ++	name = ghb_get_setting_key(widget); + 	g_debug("ghb_widget_value widget (%s)\n", name); + 	if (type == GTK_TYPE_ENTRY) + 	{ +@@ -442,7 +436,7 @@ + 	if (widget == NULL) return; + 	g_debug("ghb_widget_to_setting"); + 	// Find corresponding setting +-	key = get_setting_key(widget); ++	key = ghb_get_setting_key(widget); + 	if (key == NULL) return; + 	value = ghb_widget_value(widget); + 	if (value != NULL) +Index: gtk/src/settings.h +=================================================================== +--- gtk/src/settings.h	(revision 3134) ++++ gtk/src/settings.h	(revision 3135) +@@ -108,5 +108,6 @@ + void ghb_widget_to_setting(GValue *settings, GtkWidget *widget); + int ghb_ui_update( + 	signal_user_data_t *ud, const gchar *name, const GValue *value); ++const gchar* ghb_get_setting_key(GtkWidget *widget); +  + #endif // _SETTINGS_H_ +Index: gtk/src/preview.c +=================================================================== +--- gtk/src/preview.c	(revision 3134) ++++ gtk/src/preview.c	(revision 3135) +@@ -877,7 +877,7 @@ + 	ghb_widget_to_setting (ud->settings, xwidget); + 	ghb_preview_set_visible(ud); + 	ghb_check_dependency(ud, xwidget, NULL); +-	const gchar *name = gtk_widget_get_name(xwidget); ++	const gchar *name = ghb_get_setting_key(xwidget); + 	ghb_pref_save(ud->settings, name); + } +  +@@ -934,7 +934,7 @@ + 	g_debug("fullscreen_clicked_cb()"); + 	ghb_widget_to_setting (ud->settings, toggle); + 	ghb_check_dependency(ud, toggle, NULL); +-	const gchar *name = gtk_widget_get_name(toggle); ++	const gchar *name = ghb_get_setting_key(toggle); + 	ghb_pref_save(ud->settings, name); +  + 	window = GTK_WINDOW(GHB_WIDGET (ud->builder, "preview_window")); +@@ -1030,7 +1030,7 @@ + 	ghb_live_reset(ud); + 	ghb_widget_to_setting (ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); + } +  +Index: gtk/src/audiohandler.c +=================================================================== +--- gtk/src/audiohandler.c	(revision 3134) ++++ gtk/src/audiohandler.c	(revision 3135) +@@ -478,7 +478,7 @@ + G_MODULE_EXPORT void + subtitle_changed_cb(GtkWidget *widget, signal_user_data_t *ud) + { +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	g_debug("subtitle_changed_cb () %s", name); + 	ghb_widget_to_setting(ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +Index: gtk/src/x264handler.c +=================================================================== +--- gtk/src/x264handler.c	(revision 3134) ++++ gtk/src/x264handler.c	(revision 3135) +@@ -523,7 +523,7 @@ + x264_opt_update(signal_user_data_t *ud, GtkWidget *widget) + { + 	gint jj; +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	gchar **opt_syns = NULL; + 	const gchar *def_val = NULL; + 	gint type; +Index: gtk/src/callbacks.c +=================================================================== +--- gtk/src/callbacks.c	(revision 3134) ++++ gtk/src/callbacks.c	(revision 3135) +@@ -199,7 +199,7 @@ + 		type = GTK_WIDGET_TYPE(widget); + 		if (type == GTK_TYPE_COMBO_BOX || type == GTK_TYPE_COMBO_BOX_ENTRY) + 			if (gtk_combo_box_get_active(GTK_COMBO_BOX(widget)) < 0) return; +-		name = gtk_widget_get_name(widget); ++		name = ghb_get_setting_key(widget); + 	} + 	else + 		name = alt_name; +@@ -1054,7 +1054,7 @@ + 	gchar *sourcename; +  + 	sourcename = ghb_settings_get_string(ud->settings, "source"); +-	filename = gtk_action_get_name(action); ++	filename = gtk_buildable_get_name(GTK_BUILDABLE(action)); + 	ghb_do_scan(ud, filename, 0, TRUE); + 	if (strcmp(sourcename, filename) != 0) + 	{ +@@ -1694,7 +1694,7 @@ + G_MODULE_EXPORT void + target_size_changed_cb(GtkWidget *widget, signal_user_data_t *ud) + { +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	g_debug("target_size_changed_cb () %s", name); + 	ghb_widget_to_setting(ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +@@ -1713,7 +1713,7 @@ + start_point_changed_cb(GtkWidget *widget, signal_user_data_t *ud) + { + 	gint start, end; +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); +  + 	g_debug("start_point_changed_cb () %s", name); + 	ghb_widget_to_setting(ud->settings, widget); +@@ -1765,7 +1765,7 @@ + end_point_changed_cb(GtkWidget *widget, signal_user_data_t *ud) + { + 	gint start, end; +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); +  + 	g_debug("end_point_changed_cb () %s", name); + 	ghb_widget_to_setting(ud->settings, widget); +@@ -3588,7 +3588,7 @@ + 	g_debug("pref_changed_cb"); + 	ghb_widget_to_setting (ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); + } +  +@@ -3598,7 +3598,7 @@ + 	g_debug("use_m4v_changed_cb"); + 	ghb_widget_to_setting (ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); + 	ghb_update_destination_extension(ud); + } +@@ -3609,7 +3609,7 @@ + 	g_debug("show_status_cb"); + 	ghb_widget_to_setting (ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); +  + 	GtkStatusIcon *si; +@@ -3626,7 +3626,7 @@ + 	ghb_widget_to_setting (ud->settings, widget); + 	ghb_check_dependency(ud, widget, NULL); +  +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); +  + 	gdouble vqmin, vqmax, step, page; +@@ -3643,7 +3643,7 @@ + { + 	g_debug("tweaks_changed_cb"); + 	ghb_widget_to_setting (ud->settings, widget); +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); + } +  +@@ -3652,7 +3652,7 @@ + { + 	g_debug("hbfd_feature_changed_cb"); + 	ghb_widget_to_setting (ud->settings, widget); +-	const gchar *name = gtk_widget_get_name(widget); ++	const gchar *name = ghb_get_setting_key(widget); + 	ghb_pref_save(ud->settings, name); +  + 	gboolean hbfd = ghb_settings_get_boolean(ud->settings, "hbfd_feature"); +@@ -4559,7 +4559,7 @@ + 		GtkResponseType response; + 		gchar *tweak = NULL; +  +-		name = gtk_widget_get_name(widget); ++		name = ghb_get_setting_key(widget); + 		if (g_str_has_prefix(name, "tweak_")) + 		{ + 			tweak_name = g_strdup(name); +Index: gtk/src/main.c +=================================================================== +--- gtk/src/main.c	(revision 3134) ++++ gtk/src/main.c	(revision 3135) +@@ -152,7 +152,7 @@ +     g_return_if_fail(handler_name != NULL); +     g_return_if_fail(signal_name != NULL); +  +-	//const gchar *name = gtk_widget_get_name((GtkWidget*)object); ++	//const gchar *name = ghb_get_setting_key((GtkWidget*)object); + 	//g_message("\n\nname %s", name); + 	g_debug("handler_name %s", handler_name); + 	g_debug("signal_name %s", signal_name); +@@ -192,7 +192,7 @@ +     font_desc = pango_font_description_from_string(font); +     if (font_desc == NULL) exit(1); +     gtk_widget_modify_font(widget, font_desc); +-    name = gtk_widget_get_name(widget); ++    name = ghb_get_setting_key(widget); +     g_debug("changing font for widget %s\n", name); +     if (GTK_IS_CONTAINER(widget)) +     { diff --git a/abs/extra/handbrake/handbrake.install b/abs/extra/handbrake/handbrake.install new file mode 100644 index 0000000..9a06fb3 --- /dev/null +++ b/abs/extra/handbrake/handbrake.install @@ -0,0 +1,15 @@ +post_install() { +  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { +  post_install $1 + +  if [ "$(vercmp $2 0.9.4-3)" -lt 0 ]; then +    echo "==> The handbrake CLI binary is now in a separate package: handbrake-cli" +  fi +} + +post_remove() { +  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} | 
