[Pkg-xfce-commits] r6173 - in goodies/trunk/xfburn/debian: . patches
Lionel Le Folgoc
mrpouit-guest at alioth.debian.org
Wed Oct 26 08:42:23 UTC 2011
Author: mrpouit-guest
Date: 2011-10-26 20:42:22 +0000 (Wed, 26 Oct 2011)
New Revision: 6173
Added:
goodies/trunk/xfburn/debian/patches/
goodies/trunk/xfburn/debian/patches/series
goodies/trunk/xfburn/debian/patches/xfburn-gio.patch
goodies/trunk/xfburn/debian/patches/xfburn-ui.patch
Modified:
goodies/trunk/xfburn/debian/changelog
goodies/trunk/xfburn/debian/control
goodies/trunk/xfburn/debian/rules
Log:
* debian/patches:
- xfburn-gio.patch: port from thunar-vfs/hal to gio/udev
- xfburn-ui.patch: port to libxfce4ui.
* debian/control:
- b-dep on libxfce4ui-1-dev instead of libxfcegui4-dev
- add new b-dep on libgudev-1.0-dev [linux-any]
- b-dep on xfce4-dev-tools, automake, autoconf and libtool.
* debian/rules:
- run xdt-autogen before ./configure script
- clean up autogenerated file after build.
Modified: goodies/trunk/xfburn/debian/changelog
===================================================================
--- goodies/trunk/xfburn/debian/changelog 2011-10-26 06:56:16 UTC (rev 6172)
+++ goodies/trunk/xfburn/debian/changelog 2011-10-26 20:42:22 UTC (rev 6173)
@@ -1,3 +1,18 @@
+xfburn (0.4.3-4) UNRELEASED; urgency=low
+
+ * debian/patches:
+ - xfburn-gio.patch: port from thunar-vfs/hal to gio/udev
+ - xfburn-ui.patch: port to libxfce4ui.
+ * debian/control:
+ - b-dep on libxfce4ui-1-dev instead of libxfcegui4-dev
+ - add new b-dep on libgudev-1.0-dev [linux-any]
+ - b-dep on xfce4-dev-tools, automake, autoconf and libtool.
+ * debian/rules:
+ - run xdt-autogen before ./configure script
+ - clean up autogenerated file after build.
+
+ -- Lionel Le Folgoc <mrpouit at gmail.com> Wed, 26 Oct 2011 21:52:43 +0200
+
xfburn (0.4.3-3) unstable; urgency=low
* Upload to unstable.
Modified: goodies/trunk/xfburn/debian/control
===================================================================
--- goodies/trunk/xfburn/debian/control 2011-10-26 06:56:16 UTC (rev 6172)
+++ goodies/trunk/xfburn/debian/control 2011-10-26 20:42:22 UTC (rev 6173)
@@ -4,9 +4,10 @@
Maintainer: Debian Xfce Maintainers <pkg-xfce-devel at lists.alioth.debian.org>
Uploaders: Yves-Alexis Perez <corsac at debian.org>,
Lionel Le Folgoc <mrpouit at gmail.com>
-Build-Depends: debhelper (>= 7.0.50~), libxfcegui4-dev (>= 4.8.0),
+Build-Depends: debhelper (>= 7.0.50~), libxfce4ui-1-dev (>= 4.8.0),
libexo-1-dev (>= 0.6.0), libburn-dev, libisofs-dev, libdbus-glib-1-dev,
libgstreamer0.10-dev, intltool, libgstreamer-plugins-base0.10-dev,
+ libgudev-1.0-dev [linux-any], xfce4-dev-tools, automake, autoconf, libtool,
hardening-includes
Standards-Version: 3.9.2
Vcs-Svn: svn://svn.debian.org/pkg-xfce/goodies/trunk/xfburn/
Added: goodies/trunk/xfburn/debian/patches/series
===================================================================
--- goodies/trunk/xfburn/debian/patches/series (rev 0)
+++ goodies/trunk/xfburn/debian/patches/series 2011-10-26 20:42:22 UTC (rev 6173)
@@ -0,0 +1,2 @@
+xfburn-gio.patch
+xfburn-ui.patch
Added: goodies/trunk/xfburn/debian/patches/xfburn-gio.patch
===================================================================
--- goodies/trunk/xfburn/debian/patches/xfburn-gio.patch (rev 0)
+++ goodies/trunk/xfburn/debian/patches/xfburn-gio.patch 2011-10-26 20:42:22 UTC (rev 6173)
@@ -0,0 +1,2089 @@
+Description: port to gio/udev
+Origin: other, https://bugzilla.xfce.org/attachment.cgi?id=3528
+Bug: https://bugzilla.xfce.org/show_bug.cgi?id=7355
+
+diff -urN xfburn-0.4.3/config.h.in xfburn-0.4.3-gio/config.h.in
+--- xfburn-0.4.3/config.h.in 2010-02-13 07:43:21.000000000 +0100
++++ xfburn-0.4.3-gio/config.h.in 2011-02-25 12:37:14.000000000 +0100
+@@ -15,9 +15,6 @@
+ /* Define to 1 if you have the `bind_textdomain_codeset' function. */
+ #undef HAVE_BIND_TEXTDOMAIN_CODESET
+
+-/* Define if dbus-glib-1 >= 0.34 present */
+-#undef HAVE_DBUS
+-
+ /* Define to 1 if you have the `dcgettext' function. */
+ #undef HAVE_DCGETTEXT
+
+@@ -30,8 +27,8 @@
+ /* Define if gstreamer-0.10 >= 0.10.2 present */
+ #undef HAVE_GST
+
+-/* Define if hal-storage >= 0.5.7 present */
+-#undef HAVE_HAL
++/* Define if gudev-1.0 >= 145 present */
++#undef HAVE_GUDEV
+
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+@@ -39,9 +36,6 @@
+ /* Define if your <locale.h> file defines LC_MESSAGES. */
+ #undef HAVE_LC_MESSAGES
+
+-/* Define if LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL present */
+-#undef HAVE_LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL
+-
+ /* Define to 1 if you have the <locale.h> header file. */
+ #undef HAVE_LOCALE_H
+
+@@ -66,9 +60,6 @@
+ /* Define to 1 if you have the <sys/types.h> header file. */
+ #undef HAVE_SYS_TYPES_H
+
+-/* Define if thunar-vfs-1 >= 0.3.0 present */
+-#undef HAVE_THUNAR_VFS
+-
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+
+diff -urN xfburn-0.4.3/configure.in xfburn-0.4.3-gio/configure.in
+--- xfburn-0.4.3/configure.in 2011-02-26 20:28:16.058013554 +0100
++++ xfburn-0.4.3-gio/configure.in 2011-02-26 14:00:33.391792242 +0100
+@@ -40,45 +40,13 @@
+ XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.10.0])
+ XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0])
+ XDT_CHECK_PACKAGE([EXO], [exo-0.3], [0.3.4], [], [XDT_CHECK_PACKAGE([EXO], [exo-1], [0.3.100])])
+-XDT_CHECK_OPTIONAL_PACKAGE([THUNAR_VFS], [thunar-vfs-1], [0.3.0], [thunar-vfs],
+- AC_HELP_STRING([--disable-thunar-vfs],
+- [Disable the use of Thunar's VFS layer to show mime type and icons in file browser]))
+-AM_CONDITIONAL([HAVE_THUNAR_VFS], [test "x$THUNAR_VFS_FOUND" = "xyes"])
+-
+-dnl **********************************
+-dnl *** Optional support for D-BUS ***
+-dnl **********************************
+-dnl (taken from thunar-0.8.0)
+-XDT_CHECK_OPTIONAL_PACKAGE([DBUS], [dbus-glib-1],
+- [0.34], [dbus], [D-BUS support])
++XDT_CHECK_PACKAGE([LIBGIO], [gio-2.0], [2.22.0])
++XDT_CHECK_PACKAGE([LIBGIOUNIX], [gio-unix-2.0], [2.16.0])
+
+ dnl ********************************
+-dnl *** Check for HAL (optional) ***
++dnl *** Check for gudev (optional) ***
+ dnl ********************************
+-dnl (taken from libexo's configure.in.in rev.26877)
+-XDT_CHECK_OPTIONAL_PACKAGE([HAL], [hal-storage], [0.5.7], [hal], [HAL support], [yes])
+-if test x"$HAL_FOUND" = x"yes"; then
+- dnl # substituted into exo-hal-0.3.pc
+- HAL_STORAGE_DEPENDENCY="hal-storage"
+-
+- dnl # Check if LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL is declared
+- save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS $HAL_CFLAGS"
+- AC_MSG_CHECKING([whether LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL is declared])
+- AC_COMPILE_IFELSE(AC_LANG_SOURCE(
+- [#include <libhal-storage.h>
+- int main (int argc, char **argv) { return LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL; }
+- ]),
+- [
+- AC_DEFINE([HAVE_LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL], [1], [Define if LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL present])
+- AC_MSG_RESULT([yes])
+- ],
+- [
+- AC_MSG_RESULT([no])
+- ])
+- CFLAGS="$save_CFLAGS"
+-fi
+-AC_SUBST([HAL_STORAGE_DEPENDENCY])
++XDT_CHECK_OPTIONAL_PACKAGE([GUDEV], [gudev-1.0], [145], [gudev], [UDEV glib support], [yes])
+
+ dnl **************************************
+ dnl *** Optional support for gstreamer ***
+diff -urN xfburn-0.4.3/xfburn/Makefile.am xfburn-0.4.3-gio/xfburn/Makefile.am
+--- xfburn-0.4.3/xfburn/Makefile.am 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-gio/xfburn/Makefile.am 2011-02-26 20:30:48.595013531 +0100
+@@ -28,7 +28,7 @@
+ xfburn-composition.h \
+ xfburn-compositions-notebook.h \
+ xfburn-create-iso-progress-dialog.h \
+- xfburn-hal-manager.h \
++ xfburn-udev-manager.h \
+ xfburn-device-box.h \
+ xfburn-device.h \
+ xfburn-device-list.h \
+@@ -69,7 +69,7 @@
+ xfburn-composition.c \
+ xfburn-compositions-notebook.c \
+ xfburn-settings.c \
+- xfburn-hal-manager.c \
++ xfburn-udev-manager.c \
+ xfburn-device-box.c \
+ xfburn-device.c \
+ xfburn-device-list.c \
+@@ -97,7 +97,11 @@
+ $(LIBISOFS_CFLAGS) \
+ $(LIBXFCEGUI4_CFLAGS) \
+ $(EXO_CFLAGS) \
+- $(THUNAR_VFS_CFLAGS) \
++ $(GIO_CFLAGS) \
++ $(GIO_UNIX_CFLAGS) \
++ $(GLIB_CFLAGS) \
++ $(GTHREAD_CFLAGS) \
++ $(GTK_CFLAGS) \
+ $(GST_CFLAGS) \
+ $(GST_PBUTILS_CFLAGS)
+
+@@ -108,17 +112,20 @@
+ $(LIBISOFS_LIBS) \
+ $(LIBXFCEGUI4_LIBS) \
+ $(EXO_LIBS) \
+- $(THUNAR_VFS_LIBS) \
++ $(GIO_LIBS) \
++ $(GIO_UNIX_LIBS) \
++ $(GLIB_LIBS) \
++ $(GTHREAD_LIBS) \
++ $(GTK_LIBS) \
+ $(GST_LIBS) \
+ $(GST_PBUTILS_LIBS)
+
+-if HAVE_HAL
++if HAVE_GUDEV
+ xfburn_CFLAGS += \
+- $(HAL_CFLAGS)
++ $(GUDEV_CFLAGS)
+
+ xfburn_LDADD += \
+- $(HAL_LIBS)
+- $(HAL_DBUS_LIBS)
++ $(GUDEV_LIBS)
+
+ endif
+
+diff -urN xfburn-0.4.3/xfburn/xfburn-audio-composition.c xfburn-0.4.3-gio/xfburn/xfburn-audio-composition.c
+--- xfburn-0.4.3/xfburn/xfburn-audio-composition.c 2009-12-04 08:47:20.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-audio-composition.c 2011-02-26 12:19:40.420961797 +0100
+@@ -34,9 +34,7 @@
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfcegui4/libxfcegui4.h>
+
+-#ifdef HAVE_THUNAR_VFS
+-#include <thunar-vfs/thunar-vfs.h>
+-#endif
++#include <gio/gio.h>
+
+ #include <exo/exo.h>
+
+@@ -1712,26 +1710,6 @@
+ for (i=0; files[i] != NULL && files[i][0] != '\0'; i++) {
+ gchar *full_path;
+
+-#ifdef HAVE_THUNAR_VFS
+- ThunarVfsPath *vfs_path;
+- GError *vfs_error = NULL;
+-
+- vfs_path = thunar_vfs_path_new (files[i], &vfs_error);
+-
+- if (vfs_error) {
+- g_warning ("Failed to create vfs path for '%s': %s", files[i], vfs_error->message);
+- g_error_free (vfs_error);
+- continue;
+- }
+-
+- if (thunar_vfs_path_get_scheme (vfs_path) != THUNAR_VFS_PATH_SCHEME_FILE)
+- continue;
+- full_path = thunar_vfs_path_dup_string (vfs_path);
+-
+- thunar_vfs_path_unref (vfs_path);
+-
+-#else /* no thunar-vfs */
+-
+ if (g_str_has_prefix (files[i], "file://"))
+ full_path = g_build_filename (&files[i][7], NULL);
+ else if (g_str_has_prefix (files[i], "file:"))
+@@ -1741,7 +1719,8 @@
+
+ if (full_path[strlen (full_path) - 1] == '\r')
+ full_path[strlen (full_path) - 1] = '\0';
+-#endif
++
++ DBG ("Adding path '%s'", full_path);
+
+ /* remember path to add it later in another thread */
+ priv->full_paths_to_add = g_list_append (priv->full_paths_to_add, full_path);
+@@ -1786,29 +1765,46 @@
+ }
+ }
+ else if (sd->target == gdk_atom_intern ("text/uri-list", FALSE)) {
+-#ifdef HAVE_THUNAR_VFS
+ GList *vfs_paths = NULL;
+ GList *vfs_path;
+- GError *error = NULL;
++ GList *lp;
+ gchar *full_path;
++ gchar **uris;
++ gsize n;
+ gboolean ret = FALSE;
+
+- vfs_paths = thunar_vfs_path_list_from_string ((gchar *) sd->data, &error);
++ uris = g_uri_list_extract_uris ((gchar *) sd->data);
++
++ for (n = 0; uris != NULL && uris[n] != NULL; ++n)
++ vfs_paths = g_list_append (vfs_paths, g_file_new_for_uri (uris[n]));
++
++ g_strfreev (uris);
+
+ if (G_LIKELY (vfs_paths != NULL)) {
+ ThreadAddFilesDragParams *params;
+ priv->full_paths_to_add = NULL;
+ for (vfs_path = vfs_paths; vfs_path != NULL; vfs_path = g_list_next (vfs_path)) {
+- ThunarVfsPath *path = THUNAR_VFS_PATH (vfs_path->data);
+- if (thunar_vfs_path_get_scheme (path) != THUNAR_VFS_PATH_SCHEME_FILE)
++ GFile *path = vfs_path->data;
++ if (path == NULL)
+ continue;
+- full_path = thunar_vfs_path_dup_string (path);
++ /* unable to handle non-local files */
++ if (G_UNLIKELY (!g_file_has_uri_scheme (path, "file"))) {
++ g_object_unref (path);
++ continue;
++ }
++ full_path = g_file_get_path (path);
++ /* if there is no local path, use the URI (which always works) */
++ if (full_path == NULL)
++ full_path = g_file_get_uri (path);
++ /* release the location */
+ g_debug ("adding uri path: %s", full_path);
+-
+ priv->full_paths_to_add = g_list_prepend (priv->full_paths_to_add, full_path);
+ ret = TRUE;
+ }
+- thunar_vfs_path_list_free (vfs_paths);
++
++ for (lp = vfs_paths; lp != NULL; lp = lp->next)
++ g_object_unref (lp->data);
++ g_list_free (vfs_paths);
+
+ priv->full_paths_to_add = g_list_reverse (priv->full_paths_to_add);
+ priv->path_where_insert = path_where_insert;
+@@ -1831,18 +1827,10 @@
+ cb_adding_done (XFBURN_ADDING_PROGRESS (priv->progress), composition);
+ }
+ } else {
+- if (G_UNLIKELY (error != NULL))
+- g_warning ("text/uri-list drag failed because '%s'", error->message);
+- else
+- g_warning("There were no files in the uri list!");
++ g_warning("There were no files in the uri list!");
+ gtk_drag_finish (dc, FALSE, FALSE, t);
+ xfburn_default_cursor (priv->content);
+ }
+-#else
+- g_warning ("Receiving this type of drag and drop requires thunar-vfs support, sorry!");
+- gtk_drag_finish (dc, FALSE, FALSE, t);
+- xfburn_default_cursor (priv->content);
+-#endif
+ }
+ else {
+ g_warning ("Trying to receive an unsupported drag target, this should not happen.");
+diff -urN xfburn-0.4.3/xfburn/xfburn-blank-dialog.c xfburn-0.4.3-gio/xfburn/xfburn-blank-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-blank-dialog.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-gio/xfburn/xfburn-blank-dialog.c 2011-02-25 13:32:08.965731130 +0100
+@@ -30,7 +30,7 @@
+ #include "xfburn-device-box.h"
+ #include "xfburn-device-list.h"
+ #include "xfburn-stock.h"
+-#include "xfburn-hal-manager.h"
++#include "xfburn-udev-manager.h"
+ #include "xfburn-main.h"
+
+ #include "xfburn-blank-dialog.h"
+@@ -465,10 +465,10 @@
+
+ g_free (params);
+
+-#ifdef HAVE_HAL
++#ifdef HAVE_GUDEV
+ gdk_threads_enter ();
+ DBG ("blanking done!");
+- xfburn_hal_manager_send_volume_changed ();
++ xfburn_udev_manager_send_volume_changed ();
+ gdk_threads_leave ();
+ #endif
+ }
+diff -urN xfburn-0.4.3/xfburn/xfburn-data-composition.c xfburn-0.4.3-gio/xfburn/xfburn-data-composition.c
+--- xfburn-0.4.3/xfburn/xfburn-data-composition.c 2009-12-04 08:46:43.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-data-composition.c 2011-02-26 12:30:35.847961806 +0100
+@@ -37,9 +37,7 @@
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfcegui4/libxfcegui4.h>
+
+-#ifdef HAVE_THUNAR_VFS
+-#include <thunar-vfs/thunar-vfs.h>
+-#endif
++#include <gio/gio.h>
+
+ #include <exo/exo.h>
+
+@@ -288,9 +286,7 @@
+
+ GtkTargetEntry gte_src[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, DATA_COMPOSITION_DND_TARGET_INSIDE } };
+ GtkTargetEntry gte_dest[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, DATA_COMPOSITION_DND_TARGET_INSIDE },
+-#ifdef HAVE_THUNAR_VFS
+ { "text/uri-list", 0, DATA_COMPOSITION_DND_TARGET_TEXT_URI_LIST },
+-#endif
+ { "text/plain;charset=utf-8", 0, DATA_COMPOSITION_DND_TARGET_TEXT_PLAIN },
+ };
+
+@@ -1188,14 +1184,14 @@
+ }
+ /* new file */
+ else if (S_ISREG (s.st_mode) || S_ISCHR(s.st_mode) || S_ISBLK(s.st_mode) || S_ISLNK (s.st_mode)) {
+-#ifdef HAVE_THUNAR_VFS
+ GdkScreen *screen;
+ GtkIconTheme *icon_theme;
+- ThunarVfsMimeDatabase *mime_database = NULL;
+- ThunarVfsMimeInfo *mime_info = NULL;
+- const gchar *mime_icon_name = NULL;
+- GdkPixbuf *mime_icon = NULL;
++ GdkPixbuf *mime_icon_pixbuf = NULL;
+ gint x,y;
++ GFile *file = NULL;
++ GFileInfo *info = NULL;
++ GIcon *mime_icon = NULL;
++ GtkIconInfo *icon_info = NULL;
+
+ if (s.st_size > MAXIMUM_ISO_FILE_SIZE) {
+ gdk_threads_enter ();
+@@ -1208,45 +1204,38 @@
+ gdk_threads_enter ();
+ screen = gtk_widget_get_screen (GTK_WIDGET (dc));
+ icon_theme = gtk_icon_theme_get_for_screen (screen);
+-
+- mime_database = thunar_vfs_mime_database_get_default ();
+- mime_info = thunar_vfs_mime_database_get_info_for_file (mime_database, path, NULL);
+-
+ gtk_icon_size_lookup (GTK_ICON_SIZE_SMALL_TOOLBAR, &x, &y);
+- mime_icon_name = thunar_vfs_mime_info_lookup_icon_name (mime_info, icon_theme);
+- mime_icon = gtk_icon_theme_load_icon (icon_theme, mime_icon_name, x, 0, NULL);
+-#endif
+-
++
++ file = g_file_new_for_path(path);
++ info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, NULL);
++ mime_icon = g_content_type_get_icon (g_file_info_get_content_type (info));
++ if (mime_icon != NULL) {
++ icon_info = gtk_icon_theme_lookup_by_gicon (icon_theme, mime_icon, x, GTK_ICON_LOOKUP_USE_BUILTIN);
++ if (icon_info != NULL) {
++ mime_icon_pixbuf = gtk_icon_info_load_icon (icon_info, NULL);
++ gtk_icon_info_free (icon_info);
++ }
++ }
++
+ gtk_tree_store_append (GTK_TREE_STORE (model), iter, parent);
+
+ humansize = xfburn_humanreadable_filesize (s.st_size);
+
+-#ifdef HAVE_THUNAR_VFS
+ gtk_tree_store_set (GTK_TREE_STORE (model), iter,
+- DATA_COMPOSITION_COLUMN_ICON, (G_IS_OBJECT (mime_icon) ? mime_icon : icon_file),
++ DATA_COMPOSITION_COLUMN_ICON, (G_IS_OBJECT (mime_icon_pixbuf) ? mime_icon_pixbuf : icon_file),
+ DATA_COMPOSITION_COLUMN_CONTENT, name,
+ DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
+ DATA_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size,
+ DATA_COMPOSITION_COLUMN_PATH, path,
+ DATA_COMPOSITION_COLUMN_TYPE, DATA_COMPOSITION_TYPE_FILE, -1);
+-#else
+- gtk_tree_store_set (GTK_TREE_STORE (model), iter,
+- DATA_COMPOSITION_COLUMN_ICON, icon_file,
+- DATA_COMPOSITION_COLUMN_CONTENT, name,
+- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
+- DATA_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size,
+- DATA_COMPOSITION_COLUMN_PATH, path,
+- DATA_COMPOSITION_COLUMN_TYPE, DATA_COMPOSITION_TYPE_FILE, -1);
+-#endif
+
+ xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), s.st_size);
+-#ifdef HAVE_THUNAR_VFS
++
+ if (G_LIKELY (G_IS_OBJECT (mime_icon)))
+ g_object_unref (mime_icon);
+- thunar_vfs_mime_info_unref (mime_info);
+- g_object_unref (mime_database);
++ if (G_LIKELY (G_IS_OBJECT (file)))
++ g_object_unref(file);
+ gdk_threads_leave ();
+-#endif
+ }
+ g_free (humansize);
+ g_free (parent);
+@@ -1673,26 +1662,6 @@
+ for (i=0; files[i] != NULL && files[i][0] != '\0'; i++) {
+ gchar *full_path;
+
+-#ifdef HAVE_THUNAR_VFS
+- ThunarVfsPath *vfs_path;
+- GError *vfs_error = NULL;
+-
+- vfs_path = thunar_vfs_path_new (files[i], &vfs_error);
+-
+- if (vfs_error) {
+- g_warning ("Failed to create vfs path for '%s': %s", files[i], vfs_error->message);
+- g_error_free (vfs_error);
+- continue;
+- }
+-
+- if (thunar_vfs_path_get_scheme (vfs_path) != THUNAR_VFS_PATH_SCHEME_FILE)
+- continue;
+- full_path = thunar_vfs_path_dup_string (vfs_path);
+-
+- thunar_vfs_path_unref (vfs_path);
+-
+-#else /* no thunar-vfs */
+-
+ if (g_str_has_prefix (files[i], "file://"))
+ full_path = g_build_filename (&files[i][7], NULL);
+ else if (g_str_has_prefix (files[i], "file:"))
+@@ -1702,8 +1671,7 @@
+
+ if (full_path[strlen (full_path) - 1] == '\r')
+ full_path[strlen (full_path) - 1] = '\0';
+-#endif
+-
++
+ DBG ("Adding path '%s'", full_path);
+
+ /* remember path to add it later in another thread */
+@@ -1731,26 +1699,44 @@
+ gtk_drag_finish (dc, TRUE, FALSE, t);
+ }
+ else if (sd->target == gdk_atom_intern ("text/uri-list", FALSE)) {
+-#ifdef HAVE_THUNAR_VFS
+ GList *vfs_paths = NULL;
+ GList *vfs_path;
+- GError *error = NULL;
++ GList *lp;
+ gchar *full_path;
++ gchar **uris;
++ gsize n;
+
+- vfs_paths = thunar_vfs_path_list_from_string ((gchar *) sd->data, &error);
++ uris = g_uri_list_extract_uris ((gchar *) sd->data);
++
++ for (n = 0; uris != NULL && uris[n] != NULL; ++n)
++ vfs_paths = g_list_append (vfs_paths, g_file_new_for_uri (uris[n]));
++
++ g_strfreev (uris);
+
+ if (G_LIKELY (vfs_paths != NULL)) {
+ ThreadAddFilesDragParams *params;
+ priv->full_paths_to_add = NULL;
+ for (vfs_path = vfs_paths; vfs_path != NULL; vfs_path = g_list_next (vfs_path)) {
+- ThunarVfsPath *path = THUNAR_VFS_PATH (vfs_path->data);
+- if (thunar_vfs_path_get_scheme (path) != THUNAR_VFS_PATH_SCHEME_FILE)
++ GFile *path = vfs_path->data;
++ if (path == NULL)
+ continue;
+- full_path = thunar_vfs_path_dup_string (path);
++ /* unable to handle non-local files */
++ if (G_UNLIKELY (!g_file_has_uri_scheme (path, "file"))) {
++ g_object_unref (path);
++ continue;
++ }
++ full_path = g_file_get_path (path);
++ /* if there is no local path, use the URI (which always works) */
++ if (full_path == NULL)
++ full_path = g_file_get_uri (path);
++ /* release the location */
+ g_debug ("adding uri path: %s", full_path);
+ priv->full_paths_to_add = g_list_prepend (priv->full_paths_to_add, full_path);
+ }
+- thunar_vfs_path_list_free (vfs_paths);
++
++ for (lp = vfs_paths; lp != NULL; lp = lp->next)
++ g_object_unref (lp->data);
++ g_list_free (vfs_paths);
+
+ priv->full_paths_to_add = g_list_reverse (priv->full_paths_to_add);
+ /* FIXME: path_where_insert is always NULL here */
+@@ -1769,18 +1755,10 @@
+
+ gtk_drag_finish (dc, TRUE, FALSE, t);
+ } else {
+- if (G_UNLIKELY (error != NULL))
+- g_warning ("text/uri-list drag failed because '%s'", error->message);
+- else
+- g_warning("There were no files in the uri list!");
++ g_warning("There were no files in the uri list!");
+ gtk_drag_finish (dc, FALSE, FALSE, t);
+ xfburn_default_cursor (priv->content);
+ }
+-#else
+- g_warning ("Receiving this type of drag and drop requires thunar-vfs support, sorry!");
+- gtk_drag_finish (dc, FALSE, FALSE, t);
+- xfburn_default_cursor (priv->content);
+-#endif
+ }
+ else {
+ g_warning ("Trying to receive an unsupported drag target, this should not happen.");
+diff -urN xfburn-0.4.3/xfburn/xfburn-device-box.c xfburn-0.4.3-gio/xfburn/xfburn-device-box.c
+--- xfburn-0.4.3/xfburn/xfburn-device-box.c 2009-10-30 01:48:01.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-device-box.c 2011-02-26 01:25:20.948825389 +0100
+@@ -25,10 +25,6 @@
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfcegui4/libxfcegui4.h>
+
+-#ifdef HAVE_THUNAR_VFS
+-#include <thunar-vfs/thunar-vfs.h>
+-#endif
+-
+ #include "xfburn-device-list.h"
+ #include "xfburn-device-box.h"
+ #include "xfburn-settings.h"
+diff -urN xfburn-0.4.3/xfburn/xfburn-device.c xfburn-0.4.3-gio/xfburn/xfburn-device.c
+--- xfburn-0.4.3/xfburn/xfburn-device.c 2010-01-29 05:46:24.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-device.c 2011-02-25 13:33:19.306731128 +0100
+@@ -25,7 +25,7 @@
+ #include <unistd.h>
+
+ #include "xfburn-device.h"
+-#include "xfburn-hal-manager.h"
++#include "xfburn-udev-manager.h"
+
+ /*- globals -*/
+
+@@ -430,8 +430,8 @@
+ gchar drive_addr[BURN_DRIVE_ADR_LEN];
+ int i;
+ const int max_checks = 4;
+-#ifdef HAVE_HAL
+- XfburnHalManager *halman = xfburn_hal_manager_get_global ();
++#ifdef HAVE_GUDEV
++ XfburnUdevManager *udevman = xfburn_udev_manager_get_global ();
+ #endif
+
+ ret = burn_drive_convert_fs_adr (priv->addr, drive_addr);
+@@ -448,8 +448,8 @@
+ if (ret > 0)
+ break;
+ else if (i < max_checks) {
+-#ifdef HAVE_HAL
+- if (!xfburn_hal_manager_check_ask_umount (halman, device))
++#ifdef HAVE_GUDEV
++ if (!xfburn_udev_manager_check_ask_umount (udevman, device))
+ usleep(i*100001);
+ #else
+ usleep(i*100001);
+diff -urN xfburn-0.4.3/xfburn/xfburn-device-list.c xfburn-0.4.3-gio/xfburn/xfburn-device-list.c
+--- xfburn-0.4.3/xfburn/xfburn-device-list.c 2009-11-12 04:27:40.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-device-list.c 2011-02-26 01:25:32.553825389 +0100
+@@ -34,7 +34,7 @@
+ #include <libburn.h>
+
+ #include "xfburn-global.h"
+-#include "xfburn-hal-manager.h"
++#include "xfburn-udev-manager.h"
+ #include "xfburn-utils.h"
+
+ #include "xfburn-device-list.h"
+@@ -50,7 +50,7 @@
+ gint num_burners;
+ XfburnDevice *curr_device;
+
+-#ifdef HAVE_HAL
++#ifdef HAVE_GUDEV
+ gulong volume_changed_handlerid;
+ #endif
+ };
+@@ -58,8 +58,8 @@
+ void get_libburn_device_list (XfburnDeviceList *devlist);
+ static void cb_combo_device_changed (GtkComboBox *combo, XfburnDeviceList *devlist);
+ static void cb_refresh_clicked (GtkButton *button, XfburnDeviceList *devlist);
+-#ifdef HAVE_HAL
+-static void cb_volumes_changed (XfburnHalManager *halman, XfburnDeviceList *devlist);
++#ifdef HAVE_GUDEV
++static void cb_volumes_changed (XfburnUdevManager *udevman, XfburnDeviceList *devlist);
+ #endif
+ static XfburnDevice * get_selected_device (GtkComboBox *combo_device);
+ static void refresh (XfburnDeviceList *devlist);
+@@ -219,64 +219,23 @@
+ //klass->volume_changed = cb_volume_changed
+ }
+
+-#if 0
+ static void
+ xfburn_device_list_init (XfburnDeviceList *self)
+ {
+ XfburnDeviceListPrivate *priv = GET_PRIVATE (self);
+
+-#ifdef HAVE_HAL
+- XfburnHalManager *halman = xfburn_hal_manager_get_global ();
++#ifdef HAVE_GUDEV
++ XfburnUdevManager *udevman = xfburn_udev_manager_get_global ();
+ #endif
+
+ DBG ("Constructing device list");
+ xfburn_console_libburn_messages ();
+
+-#ifdef HAVE_HAL
+- /* FIXME: hal_manager currently only returns burners, not readers */
+- priv->num_drives = priv->num_burners = xfburn_hal_manager_get_devices (halman, &priv->devices);
+- if (priv->num_burners < 1) {
+- /* if some error occurred while checking hal properties,
+- or hal for some reason did not find a device, then just
+- fall back on libburn */
+- g_message ("HAL said there are %d burners, checking libburn if it can detect any", priv->num_burners);
+-
+- get_libburn_device_list (self);
+- }
+-
+- priv->volume_changed_handlerid = g_signal_connect (G_OBJECT (xfburn_hal_manager_get_global ()), "volume-changed", G_CALLBACK (cb_volumes_changed), self);
+-
+-#else
+- get_libburn_device_list (self);
+-#endif
+-}
+-#endif
+-
+-static void
+-xfburn_device_list_init (XfburnDeviceList *self)
+-{
+- XfburnDeviceListPrivate *priv = GET_PRIVATE (self);
+-
+-#ifdef HAVE_HAL
+- XfburnHalManager *halman = xfburn_hal_manager_get_global ();
+-#endif
+-
+- DBG ("Constructing device list");
+- xfburn_console_libburn_messages ();
+-
+-#ifdef HAVE_HAL
+- /* FIXME: hal_manager currently only returns burners, not readers */
+- priv->num_drives = priv->num_burners = xfburn_hal_manager_get_devices (halman, &priv->devices);
+- if (priv->num_burners < 1) {
+- /* if some error occurred while checking hal properties,
+- or hal for some reason did not find a device, then just
+- fall back on libburn */
+- g_message ("HAL said there are %d burners, checking libburn if it can detect any", priv->num_burners);
+-
+- get_libburn_device_list (self);
+- }
+- priv->volume_changed_handlerid = g_signal_connect (G_OBJECT (xfburn_hal_manager_get_global ()), "volume-changed", G_CALLBACK (cb_volumes_changed), self);
+-
++#ifdef HAVE_GUDEV
++ priv->devices = xfburn_udev_manager_get_devices (udevman, &priv->num_drives, &priv->num_burners);
++ if (priv->num_drives > 0 && priv->num_burners < 1)
++ g_warning ("There are %d drives in your system, but none are capable of burning", priv->num_drives);
++ priv->volume_changed_handlerid = g_signal_connect (G_OBJECT (xfburn_udev_manager_get_global ()), "volume-changed", G_CALLBACK (cb_volumes_changed), self);
+ #else
+ get_libburn_device_list (self);
+ #endif
+@@ -383,11 +342,11 @@
+ g_signal_emit (G_OBJECT (devlist), signals[VOLUME_CHANGE_END], 0, TRUE, device);
+ }
+
+-#ifdef HAVE_HAL
++#ifdef HAVE_GUDEV
+ static void
+-cb_volumes_changed (XfburnHalManager *halman, XfburnDeviceList *devlist)
++cb_volumes_changed (XfburnUdevManager *udevman, XfburnDeviceList *devlist)
+ {
+- DBG ("Hal volume changed");
++ DBG ("Udev volume changed");
+ refresh (devlist);
+ }
+ #endif
+diff -urN xfburn-0.4.3/xfburn/xfburn-directory-browser.c xfburn-0.4.3-gio/xfburn/xfburn-directory-browser.c
+--- xfburn-0.4.3/xfburn/xfburn-directory-browser.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-gio/xfburn/xfburn-directory-browser.c 2011-02-26 12:34:45.588961810 +0100
+@@ -28,9 +28,7 @@
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfcegui4/libxfcegui4.h>
+
+-#ifdef HAVE_THUNAR_VFS
+-#include <thunar-vfs/thunar-vfs.h>
+-#endif
++#include <gio/gio.h>
+
+ #include <exo/exo.h>
+
+@@ -315,44 +313,35 @@
+ }
+ else if ((s.st_mode & S_IFREG)) {
+ GtkTreeIter iter;
+-#ifdef HAVE_THUNAR_VFS
+- ThunarVfsMimeDatabase *mime_database = NULL;
+- ThunarVfsMimeInfo *mime_info = NULL;
+- const gchar *mime_icon_name = NULL;
+- GdkPixbuf *mime_icon = NULL;
+- const gchar *mime_str = NULL;
+-#endif
+-
++ GFileInfo *mime_info = NULL;
++ GIcon *mime_icon = NULL;
++ GdkPixbuf *mime_icon_pixbuf = NULL;
++ const gchar *mime_str = NULL;
++ GFile *file = NULL;
++ const gchar *content_type = NULL;
++
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+-
+-#ifdef HAVE_THUNAR_VFS
+- mime_database = thunar_vfs_mime_database_get_default ();
+- mime_info = thunar_vfs_mime_database_get_info_for_file (mime_database, path_utf8, NULL);
+-
+- mime_icon_name = thunar_vfs_mime_info_lookup_icon_name (mime_info, icon_theme);
+- mime_icon = gtk_icon_theme_load_icon (icon_theme, mime_icon_name, x, 0, NULL);
+-
+- mime_str = thunar_vfs_mime_info_get_comment (mime_info);
+-
+- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+- DIRECTORY_BROWSER_COLUMN_ICON, (G_IS_OBJECT (mime_icon) ? mime_icon : icon_file),
++
++ file = g_file_new_for_path(path_utf8);
++ mime_info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, NULL);
++ content_type = g_file_info_get_content_type (mime_info);
++ mime_str = g_content_type_get_description (content_type);
++ mime_icon = g_content_type_get_icon (content_type);
++ if (mime_icon != NULL) {
++ GtkIconInfo *icon_info = gtk_icon_theme_lookup_by_gicon (icon_theme, mime_icon, x, GTK_ICON_LOOKUP_USE_BUILTIN);
++ if (icon_info != NULL) {
++ mime_icon_pixbuf = gtk_icon_info_load_icon (icon_info, NULL);
++ gtk_icon_info_free (icon_info);
++ }
++ g_object_unref (mime_icon);
++ }
++ gtk_list_store_set (GTK_LIST_STORE (model), &iter,
++ DIRECTORY_BROWSER_COLUMN_ICON, (G_IS_OBJECT (mime_icon_pixbuf) ? mime_icon_pixbuf : icon_file),
+ DIRECTORY_BROWSER_COLUMN_FILE, dir_entry,
+ DIRECTORY_BROWSER_COLUMN_HUMANSIZE, humansize,
+ DIRECTORY_BROWSER_COLUMN_SIZE, (guint64) s.st_size,
+ DIRECTORY_BROWSER_COLUMN_TYPE, mime_str, DIRECTORY_BROWSER_COLUMN_PATH, path_utf8, -1);
+-
+- if (G_LIKELY (G_IS_OBJECT (mime_icon)))
+- g_object_unref (mime_icon);
+- thunar_vfs_mime_info_unref (mime_info);
+- g_object_unref (mime_database);
+-#else
+- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+- DIRECTORY_BROWSER_COLUMN_ICON, icon_file,
+- DIRECTORY_BROWSER_COLUMN_FILE, dir_entry,
+- DIRECTORY_BROWSER_COLUMN_HUMANSIZE, humansize,
+- DIRECTORY_BROWSER_COLUMN_SIZE, (guint64) s.st_size,
+- DIRECTORY_BROWSER_COLUMN_TYPE, _("File"), DIRECTORY_BROWSER_COLUMN_PATH, path_utf8, -1);
+-#endif
++ g_object_unref(file);
+ }
+ g_free (humansize);
+ g_free (path_utf8);
+diff -urN xfburn-0.4.3/xfburn/xfburn-hal-manager.c xfburn-0.4.3-gio/xfburn/xfburn-hal-manager.c
+--- xfburn-0.4.3/xfburn/xfburn-hal-manager.c 2010-01-29 05:46:24.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-hal-manager.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,555 +0,0 @@
+-/*
+- * Copyright (c) 2005-2006 Jean-François Wauthy (pollux at xfce.org)
+- * Copyright (c) 2008 David Mohr (dmohr at mcbf.net)
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif /* !HAVE_CONFIG_H */
+-
+-#ifdef HAVE_HAL
+-
+-#ifdef HAVE_STRING_H
+-#include <string.h>
+-#endif
+-
+-#include <libhal-storage.h>
+-
+-#include <errno.h>
+-
+-#include <libxfce4util/libxfce4util.h>
+-#ifdef HAVE_THUNAR_VFS
+-# include <thunar-vfs/thunar-vfs.h>
+-#endif
+-#include <libxfcegui4/libxfcegui4.h>
+-
+-#include "xfburn-global.h"
+-#include "xfburn-progress-dialog.h"
+-#include "xfburn-device-list.h"
+-
+-#include "xfburn-hal-manager.h"
+-
+-static void xfburn_hal_manager_class_init (XfburnHalManagerClass * klass);
+-static void xfburn_hal_manager_init (XfburnHalManager * obj);
+-static void xfburn_hal_manager_finalize (GObject * object);
+-
+-static GObject * xfburn_hal_manager_new (void);
+-
+-static void hal_finalize (LibHalContext *hal_context);
+-static void cb_device_added (LibHalContext *ctx, const char *udi);
+-static void cb_device_removed (LibHalContext *ctx, const char *udi);
+-static void cb_prop_modified (LibHalContext *ctx, const char *udi, const char *key,
+- dbus_bool_t is_removed, dbus_bool_t is_added);
+-
+-#define XFBURN_HAL_MANAGER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_HAL_MANAGER, XfburnHalManagerPrivate))
+-
+-enum {
+- VOLUME_CHANGED,
+- LAST_SIGNAL,
+-};
+-
+-typedef struct {
+- LibHalContext *hal_context;
+- DBusConnection *dbus_connection;
+- gchar *error;
+-
+-#ifdef HAVE_THUNAR_VFS
+- ThunarVfsVolumeManager *thunar_volman;
+-#endif
+-} XfburnHalManagerPrivate;
+-
+-static XfburnHalManager *instance = NULL;
+-
+-/*********************/
+-/* class declaration */
+-/*********************/
+-static XfburnProgressDialogClass *parent_class = NULL;
+-static guint signals[LAST_SIGNAL];
+-
+-GType
+-xfburn_hal_manager_get_type (void)
+-{
+- static GType type = 0;
+-
+- if (type == 0) {
+- static const GTypeInfo our_info = {
+- sizeof (XfburnHalManagerClass),
+- NULL,
+- NULL,
+- (GClassInitFunc) xfburn_hal_manager_class_init,
+- NULL,
+- NULL,
+- sizeof (XfburnHalManager),
+- 0,
+- (GInstanceInitFunc) xfburn_hal_manager_init,
+- NULL
+- };
+-
+- type = g_type_register_static (G_TYPE_OBJECT, "XfburnHalManager", &our_info, 0);
+- }
+-
+- return type;
+-}
+-
+-static void
+-xfburn_hal_manager_class_init (XfburnHalManagerClass * klass)
+-{
+- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+-
+- g_type_class_add_private (klass, sizeof (XfburnHalManagerPrivate));
+-
+- parent_class = g_type_class_peek_parent (klass);
+-
+- object_class->finalize = xfburn_hal_manager_finalize;
+-
+- signals[VOLUME_CHANGED] = g_signal_new ("volume-changed", XFBURN_TYPE_HAL_MANAGER, G_SIGNAL_ACTION,
+- G_STRUCT_OFFSET (XfburnHalManagerClass, volume_changed),
+- NULL, NULL, g_cclosure_marshal_VOID__VOID,
+- G_TYPE_NONE, 0);
+-}
+-
+-static void
+-xfburn_hal_manager_init (XfburnHalManager * obj)
+-{
+- XfburnHalManagerPrivate *priv = XFBURN_HAL_MANAGER_GET_PRIVATE (obj);
+- LibHalContext *hal_context = NULL;
+- DBusError derror;
+- //GError *error = NULL;
+-
+- DBusConnection *dbus_connection;
+- priv->error = NULL;
+-
+- //if (instance != NULL)
+- // g_error ("The HAL context was already there when trying to create a hal-manager!");
+-
+- /* dbus & hal init code taken from exo */
+- /* initialize D-Bus error */
+- dbus_error_init (&derror);
+-
+- /* try to connect to the system bus */
+- dbus_connection = dbus_bus_get (DBUS_BUS_SYSTEM, &derror);
+- if (G_LIKELY (dbus_connection != NULL)) {
+- /* try to allocate a new HAL context */
+- hal_context = libhal_ctx_new ();
+- if (G_LIKELY (hal_context != NULL)) {
+- /* setup the D-Bus connection for the HAL context */
+- if (libhal_ctx_set_dbus_connection (hal_context, dbus_connection)) {
+-
+- /* try to initialize the HAL context */
+- libhal_ctx_init (hal_context, &derror);
+- } else {
+- dbus_set_error_const (&derror, DBUS_ERROR_NO_MEMORY, g_strerror (ENOMEM));
+- }
+- } else {
+- /* record the allocation failure of the context */
+- dbus_set_error_const (&derror, DBUS_ERROR_NO_MEMORY, g_strerror (ENOMEM));
+- }
+- }
+-
+- /* check if we failed */
+- if (dbus_error_is_set (&derror)) {
+- /* check if a HAL context was allocated */
+- if (G_UNLIKELY (hal_context != NULL)) {
+- /* drop the allocated HAL context */
+- hal_finalize (hal_context);
+- hal_context = NULL;
+- priv->error = "HAL";
+- } else {
+- priv->error = "DBus";
+- }
+- dbus_error_free (&derror);
+- } else {
+- if (!libhal_ctx_set_device_added (hal_context, cb_device_added))
+- g_warning ("Could not setup HAL callback for device_added");
+-
+- if (!libhal_ctx_set_device_removed (hal_context, cb_device_removed))
+- g_warning ("Could not setup HAL callback for device_removed");
+-
+- if (!libhal_ctx_set_device_property_modified (hal_context, cb_prop_modified))
+- g_warning ("Could not setup HAL callback for prop_modified");
+- }
+-
+- priv->hal_context = hal_context;
+- priv->dbus_connection = dbus_connection;
+-
+-#ifdef HAVE_THUNAR_VFS
+- /* FIXME: for some weird reason the hal callbacks don't actually work,
+- * unless we also fetch an instance of thunar_vfs_volman. Why??
+- * Not terrible though, because we'll need to use it eventually anyways */
+- priv->thunar_volman = thunar_vfs_volume_manager_get_default ();
+- if (priv->thunar_volman != NULL) {
+- //g_signal_connect (G_OBJECT (priv->thunar_volman), "volumes-added", G_CALLBACK (cb_volumes_changed), box);
+- //g_signal_connect (G_OBJECT (priv->thunar_volman), "volumes-removed", G_CALLBACK (cb_volumes_changed), box);
+- } else {
+- g_warning ("Error trying to access thunar-vfs-volume-manager!");
+- }
+- /*
+- */
+-#endif
+-}
+-
+-static void
+-xfburn_hal_manager_finalize (GObject * object)
+-{
+- XfburnHalManagerPrivate *priv = XFBURN_HAL_MANAGER_GET_PRIVATE (object);
+-
+-#ifdef HAVE_THUNAR_VFS
+- g_object_unref (priv->thunar_volman);
+-#endif
+-
+- hal_finalize (priv->hal_context);
+-
+- G_OBJECT_CLASS (parent_class)->finalize (object);
+- instance = NULL;
+-}
+-
+-/* */
+-/* internals */
+-/* */
+-static void
+-hal_finalize (LibHalContext *hal_context)
+-{
+- DBusError derror;
+-
+- dbus_error_init (&derror);
+- libhal_ctx_shutdown (hal_context, &derror);
+- if (dbus_error_is_set (&derror)) {
+- DBG ("Error shutting hal down!");
+- }
+- dbus_error_free (&derror);
+- libhal_ctx_free (hal_context);
+-}
+-
+-static void cb_device_added (LibHalContext *ctx, const char *udi)
+-{
+- DBG ("HAL: device added");
+- g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
+-}
+-
+-static void cb_device_removed (LibHalContext *ctx, const char *udi)
+-{
+- DBG ("HAL: device removed");
+- g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
+-}
+-
+-static void cb_prop_modified (LibHalContext *ctx, const char *udi,
+- const char *key, dbus_bool_t is_removed, dbus_bool_t is_added)
+-{
+- /* Lets ignore this for now,
+- * way too many of these get triggered when a disc is
+- * inserted or removed!
+- DBG ("HAL: property modified");
+- g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
+- */
+-}
+-
+-static GObject *
+-xfburn_hal_manager_new (void)
+-{
+- if (G_UNLIKELY (instance != NULL))
+- g_error ("Trying to create a second instance of hal manager!");
+- return g_object_new (XFBURN_TYPE_HAL_MANAGER, NULL);
+-}
+-
+-/* */
+-/* public */
+-/* */
+-
+-gchar *
+-xfburn_hal_manager_create_global (void)
+-{
+- XfburnHalManagerPrivate *priv;
+-
+- instance = XFBURN_HAL_MANAGER (xfburn_hal_manager_new ());
+-
+- priv = XFBURN_HAL_MANAGER_GET_PRIVATE (instance);
+-
+- if (priv->error) {
+- gchar *error_msg, *ret;
+-
+- error_msg = g_strdup (priv->error);
+- xfburn_hal_manager_shutdown ();
+- ret = g_strdup_printf ("Failed to initialize %s!", error_msg);
+- g_free (error_msg);
+- return ret;
+- } else
+- return NULL;
+-}
+-
+-XfburnHalManager *
+-xfburn_hal_manager_get_global (void)
+-{
+- if (G_UNLIKELY (instance == NULL))
+- g_error ("There is no instance of a hal manager!");
+- return instance;
+-}
+-
+-void
+-xfburn_hal_manager_shutdown (void)
+-{
+- if (G_UNLIKELY (instance == NULL))
+- g_error ("There is no instance of a hal manager!");
+- g_object_unref (instance);
+- instance = NULL;
+-}
+-
+-void
+-xfburn_hal_manager_send_volume_changed (void)
+-{
+- //gdk_threads_enter ();
+- g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
+- //gdk_threads_leave ();
+-}
+-
+-int
+-xfburn_hal_manager_get_devices (XfburnHalManager *halman, GList **device_list)
+-{
+- XfburnHalManagerPrivate *priv = XFBURN_HAL_MANAGER_GET_PRIVATE (halman);
+- char **all_devices, **devices;
+- int num;
+- DBusError error;
+- int n_devices = 0;
+-
+- dbus_error_init (&error);
+-
+- all_devices = libhal_get_all_devices (priv->hal_context, &num, &error);
+-
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Could not get list of devices from HAL: %s", error.message);
+- return -1;
+- }
+-
+- for (devices = all_devices; *devices != NULL; devices++) {
+- dbus_bool_t exists;
+- char **cap_list, **caps;
+- gboolean optical_drive = FALSE;
+-
+- exists = libhal_device_property_exists (priv->hal_context, *devices, "info.capabilities", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error checking HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- return -1;
+- }
+-
+- if (!exists)
+- continue;
+-
+- cap_list = libhal_device_get_property_strlist (priv->hal_context, *devices, "info.capabilities", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- return -1;
+- }
+-
+- for (caps = cap_list; *caps != NULL; caps++) {
+- if (strcmp (*caps, "storage.cdrom") == 0) {
+- exists = libhal_device_property_exists (priv->hal_context, *devices, "storage.cdrom.write_speed", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error checking HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- return -1;
+- }
+-
+- if (!exists)
+- break;
+-
+- optical_drive = TRUE;
+- }
+- }
+- libhal_free_string_array (cap_list);
+-
+- if (optical_drive) {
+- XfburnDevice *device;
+- char *str, *str_vendor;
+- const gchar *name;
+- gchar *addr = NULL;
+- gboolean dvdr = FALSE, dvdplusr = FALSE;
+-
+- device = xfburn_device_new ();
+-
+- /*
+- libhal_device_print (priv->hal_context, *devices, &error);
+- printf ("\n");
+-
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error printing HAL device %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- return -1;
+- }
+- */
+-
+- /* xfburn_device sets accessible = false by default */
+-
+- str_vendor = libhal_device_get_property_string (priv->hal_context, *devices, "storage.vendor", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+- str = libhal_device_get_property_string (priv->hal_context, *devices, "storage.model", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+- name = xfburn_device_set_name (device, str_vendor, str);
+- libhal_free_string (str_vendor);
+- libhal_free_string (str);
+-
+- addr = libhal_device_get_property_string (priv->hal_context, *devices, "block.device", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+-#ifdef DEBUG_NULL_DEVICE
+- g_object_set (G_OBJECT (device), "address", "stdio:/dev/null", NULL);
+-#else
+- g_object_set (G_OBJECT (device), "address", addr, NULL);
+-#endif
+-
+- g_object_set (G_OBJECT (device), "cdr", libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.cdr", &error), NULL);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+- g_object_set (G_OBJECT (device), "cdrw", libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.cdrw", &error), NULL);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+- dvdr = libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.dvdr", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+- dvdplusr = libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.dvdplusr", &error);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+- g_object_set (G_OBJECT (device), "dvdr", dvdr | dvdplusr, NULL);
+-
+- g_object_set (G_OBJECT (device), "dvdram", libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.dvdram", &error), NULL);
+- if (dbus_error_is_set (&error)) {
+- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
+- dbus_error_free (&error);
+- goto not_a_device;
+- }
+-
+- if (!xfburn_device_can_burn (device)) {
+- g_message ("Ignoring reader '%s' at '%s'", name, addr);
+- goto not_a_device;
+- }
+-
+- DBG ("Found writer '%s' at '%s'", name, addr);
+- *device_list = g_list_append (*device_list, device);
+- n_devices++;
+- goto is_a_device;
+-
+-not_a_device:
+- g_object_unref (device);
+-is_a_device:
+- libhal_free_string (addr);
+- }
+- }
+-
+- libhal_free_string_array (all_devices);
+-
+- return n_devices;
+-}
+-
+-/* @Return TRUE if the drive is now accessible, FALSE if not.
+- */
+-gboolean
+-xfburn_hal_manager_check_ask_umount (XfburnHalManager *halman, XfburnDevice *device)
+-{
+- XfburnHalManagerPrivate *priv = XFBURN_HAL_MANAGER_GET_PRIVATE (halman);
+- LibHalVolume *vol;
+-#ifdef HAVE_THUNAR_VFS
+- const char *mp;
+- ThunarVfsInfo *th_info;
+- ThunarVfsVolume *th_vol;
+- ThunarVfsPath *th_path;
+-#endif
+- gboolean unmounted = FALSE;
+- gchar *addr;
+-
+- g_object_get (G_OBJECT (device), "address", &addr, NULL);
+- vol = libhal_volume_from_device_file (priv->hal_context, addr);
+- if (vol == NULL) {
+- /* if we can't get a volume, then we're assuming that there is no disc in the drive */
+- return TRUE;
+- }
+-
+- if (!libhal_volume_is_mounted (vol))
+- return TRUE;
+-
+-#ifdef HAVE_THUNAR_VFS
+- mp = libhal_volume_get_mount_point (vol);
+- DBG ("%s is mounted at %s", addr, mp);
+-
+-
+- th_path = thunar_vfs_path_new (mp, NULL);
+- if (!th_path) {
+- g_warning ("Error getting thunar path for %s!", mp);
+- return FALSE;
+- }
+-
+- th_info = thunar_vfs_info_new_for_path (th_path, NULL);
+- thunar_vfs_path_unref (th_path);
+- if (!th_info) {
+- g_warning ("Error getting thunar info for %s!", mp);
+- return FALSE;
+- }
+-
+- th_vol = thunar_vfs_volume_manager_get_volume_by_info (priv->thunar_volman, th_info);
+- thunar_vfs_info_unref (th_info);
+-
+- if (!th_vol) {
+- g_warning ("Error getting thunar volume for %s!", mp);
+- return FALSE;
+- }
+-
+- if (!thunar_vfs_volume_is_mounted (th_vol)) {
+- return FALSE;
+- }
+-
+- /* FIXME: ask if we should unmount? */
+- unmounted = thunar_vfs_volume_unmount (th_vol, NULL, NULL);
+- if (unmounted)
+- g_message ("Unmounted %s", mp);
+- else {
+- xfce_err ("Failed to unmount %s. Drive cannot be used for burning.", mp);
+- DBG ("Failed to unmount %s", mp);
+- }
+-
+-#endif
+- return unmounted;
+-}
+-
+-#endif /* HAVE_HAL */
+diff -urN xfburn-0.4.3/xfburn/xfburn-hal-manager.h xfburn-0.4.3-gio/xfburn/xfburn-hal-manager.h
+--- xfburn-0.4.3/xfburn/xfburn-hal-manager.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-gio/xfburn/xfburn-hal-manager.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,68 +0,0 @@
+-/*
+- * Copyright (c) 2005-2006 Jean-François Wauthy (pollux at xfce.org)
+- * Copyright (c) 2008 David Mohr (david at mcbf.net)
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+- */
+-
+-#ifndef __XFBURN_HAL_MANAGER_H__
+-#define __XFBURN_HAL_MANAGER_H__
+-
+-#ifdef HAVE_HAL
+-
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif /* !HAVE_CONFIG_H */
+-
+-#include <gtk/gtk.h>
+-
+-#include "xfburn-progress-dialog.h"
+-#include "xfburn-device-list.h"
+-
+-G_BEGIN_DECLS
+-
+-#define XFBURN_TYPE_HAL_MANAGER (xfburn_hal_manager_get_type ())
+-#define XFBURN_HAL_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_HAL_MANAGER, XfburnHalManager))
+-#define XFBURN_HAL_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_HAL_MANAGER, XfburnHalManagerClass))
+-#define XFBURN_IS_HAL_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_HAL_MANAGER))
+-#define XFBURN_IS_HAL_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_HAL_MANAGER))
+-#define XFBURN_HAL_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_HAL_MANAGER, XfburnHalManagerClass))
+-
+-typedef struct
+-{
+- GObject parent;
+-} XfburnHalManager;
+-
+-typedef struct
+-{
+- XfburnProgressDialogClass parent_class;
+-
+- void (*volume_changed) (XfburnHalManager *halman);
+-} XfburnHalManagerClass;
+-
+-GType xfburn_hal_manager_get_type (void);
+-//GObject *xfburn_hal_manager_new (); /* use _create_global / _get_instance instead */
+-gchar *xfburn_hal_manager_create_global (void);
+-XfburnHalManager * xfburn_hal_manager_get_global (void);
+-void xfburn_hal_manager_shutdown (void);
+-void xfburn_hal_manager_send_volume_changed (void);
+-int xfburn_hal_manager_get_devices (XfburnHalManager *halman, GList **devices);
+-gboolean xfburn_hal_manager_check_ask_umount (XfburnHalManager *halman, XfburnDevice *device);
+-
+-G_END_DECLS
+-
+-#endif /* HAVE_HAL */
+-
+-#endif /* XFBURN_HAL_MANAGER_H */
+diff -urN xfburn-0.4.3/xfburn/xfburn-main.c xfburn-0.4.3-gio/xfburn/xfburn-main.c
+--- xfburn-0.4.3/xfburn/xfburn-main.c 2009-10-31 23:15:01.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-main.c 2011-02-25 13:42:54.043731129 +0100
+@@ -31,10 +31,6 @@
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfcegui4/libxfcegui4.h>
+
+-#ifdef HAVE_THUNAR_VFS
+-#include <thunar-vfs/thunar-vfs.h>
+-#endif
+-
+ #ifdef HAVE_GST
+ #include <gst/gst.h>
+ #endif
+@@ -48,7 +44,7 @@
+ #include "xfburn-burn-image-dialog.h"
+ #include "xfburn-main-window.h"
+ #include "xfburn-blank-dialog.h"
+-#include "xfburn-hal-manager.h"
++#include "xfburn-udev-manager.h"
+ #include "xfburn-transcoder-basic.h"
+ #include "xfburn-transcoder-gst.h"
+
+@@ -189,7 +185,7 @@
+ GtkWidget *mainwin;
+ gint n_burners;
+ GError *error = NULL;
+-#ifdef HAVE_HAL
++#ifdef HAVE_GUDEV
+ gchar *error_msg;
+ #endif
+ XfburnTranscoder *transcoder;
+@@ -275,25 +271,15 @@
+
+ xfburn_settings_init ();
+
+-#ifdef HAVE_THUNAR_VFS
+- thunar_vfs_init ();
+- g_message ("Using Thunar-VFS %d.%d.%d", THUNAR_VFS_MAJOR_VERSION, THUNAR_VFS_MINOR_VERSION, THUNAR_VFS_MICRO_VERSION);
+-#else
+- g_message ("Thunar-VFS not available, using default implementation");
+-#endif
+-
+-#ifdef HAVE_HAL
+- error_msg = xfburn_hal_manager_create_global ();
++#ifdef HAVE_GUDEV
++ error_msg = xfburn_udev_manager_create_global ();
+ if (error_msg) {
+ xfce_err (error_msg);
+-#ifdef HAVE_THUNAR_VFS
+- thunar_vfs_shutdown ();
+-#endif
+ gdk_threads_leave ();
+ burn_finish ();
+ return EXIT_FAILURE;
+ } else {
+- g_message ("Using HAL");
++ g_message ("Using UDEV");
+ }
+ #endif
+
+@@ -413,14 +399,10 @@
+ g_object_unref (devlist);
+ g_object_unref (transcoder);
+
+-#ifdef HAVE_HAL
+- xfburn_hal_manager_shutdown ();
++#ifdef HAVE_GUDEV
++ xfburn_udev_manager_shutdown ();
+ #endif
+
+-#ifdef HAVE_THUNAR_VFS
+- thunar_vfs_shutdown ();
+-#endif
+-
+ xfburn_settings_flush ();
+ xfburn_settings_free ();
+
+diff -urN xfburn-0.4.3/xfburn/xfburn-udev-manager.c xfburn-0.4.3-gio/xfburn/xfburn-udev-manager.c
+--- xfburn-0.4.3/xfburn/xfburn-udev-manager.c 1970-01-01 01:00:00.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-udev-manager.c 2011-02-26 13:57:59.623792240 +0100
+@@ -0,0 +1,527 @@
++/*
++ * Copyright (c) 2005-2006 Jean-François Wauthy (pollux at xfce.org)
++ * Copyright (c) 2008 David Mohr (dmohr at mcbf.net)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif /* !HAVE_CONFIG_H */
++
++#ifdef HAVE_GUDEV
++
++#ifdef HAVE_STRING_H
++#include <string.h>
++#endif
++
++#include <gio/gio.h>
++#include <gudev/gudev.h>
++
++#include <errno.h>
++
++#include <libxfce4util/libxfce4util.h>
++#include <libxfcegui4/libxfcegui4.h>
++
++#include "xfburn-global.h"
++#include "xfburn-progress-dialog.h"
++#include "xfburn-device-list.h"
++
++#include "xfburn-udev-manager.h"
++
++static void xfburn_udev_manager_class_init (XfburnUdevManagerClass * klass);
++static void xfburn_udev_manager_init (XfburnUdevManager * obj);
++static void xfburn_udev_manager_finalize (GObject * object);
++
++static GObject * xfburn_udev_manager_new (void);
++
++static void cb_device_monitor_uevent(GUdevClient *client, const gchar *action, GUdevDevice *udevice, XfburnUdevManager *obj);
++
++#define XFBURN_UDEV_MANAGER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManagerPrivate))
++
++enum {
++ VOLUME_CHANGED,
++ LAST_SIGNAL,
++};
++
++typedef struct {
++ GUdevClient *client;
++ GVolumeMonitor *volume_monitor;
++ gchar *error;
++} XfburnUdevManagerPrivate;
++
++typedef struct {
++ GMainLoop *loop;
++ GCancellable *cancel;
++ guint timeout_id;
++ gboolean result;
++ GError *error;
++} XfburnUdevManagerGioOperation;
++
++static XfburnUdevManager *instance = NULL;
++
++/*********************/
++/* class declaration */
++/*********************/
++static XfburnProgressDialogClass *parent_class = NULL;
++static guint signals[LAST_SIGNAL];
++
++GType
++xfburn_udev_manager_get_type (void)
++{
++ static GType type = 0;
++
++ if (type == 0) {
++ static const GTypeInfo our_info = {
++ sizeof (XfburnUdevManagerClass),
++ NULL,
++ NULL,
++ (GClassInitFunc) xfburn_udev_manager_class_init,
++ NULL,
++ NULL,
++ sizeof (XfburnUdevManager),
++ 0,
++ (GInstanceInitFunc) xfburn_udev_manager_init,
++ NULL
++ };
++
++ type = g_type_register_static (G_TYPE_OBJECT, "XfburnUdevManager", &our_info, 0);
++ }
++
++ return type;
++}
++
++static void
++xfburn_udev_manager_class_init (XfburnUdevManagerClass * klass)
++{
++ GObjectClass *object_class = G_OBJECT_CLASS (klass);
++
++ g_type_class_add_private (klass, sizeof (XfburnUdevManagerPrivate));
++
++ parent_class = g_type_class_peek_parent (klass);
++
++ object_class->finalize = xfburn_udev_manager_finalize;
++
++ signals[VOLUME_CHANGED] = g_signal_new ("volume-changed", XFBURN_TYPE_UDEV_MANAGER, G_SIGNAL_ACTION,
++ G_STRUCT_OFFSET (XfburnUdevManagerClass, volume_changed),
++ NULL, NULL, g_cclosure_marshal_VOID__VOID,
++ G_TYPE_NONE, 0);
++}
++
++static void
++xfburn_udev_manager_init (XfburnUdevManager * obj)
++{
++ XfburnUdevManagerPrivate *priv = XFBURN_UDEV_MANAGER_GET_PRIVATE (obj);
++ const gchar* const subsystems[] = { "block", NULL };
++
++ priv->error = NULL;
++ priv->volume_monitor = NULL;
++ priv->client = g_udev_client_new (subsystems);
++ if (G_LIKELY (priv->client != NULL)) {
++ g_signal_connect (G_OBJECT (priv->client), "uevent",
++ G_CALLBACK (cb_device_monitor_uevent), obj);
++
++ priv->volume_monitor = g_volume_monitor_get();
++ if (priv->volume_monitor != NULL) {
++ //g_signal_connect (G_OBJECT (priv->volume_monitor), "volume-added", G_CALLBACK (cb_volumes_changed), box);
++ //g_signal_connect (G_OBJECT (priv->volume_monitor), "volume-removed", G_CALLBACK (cb_volumes_changed), box);
++ } else {
++ g_warning ("Error trying to access g_volume_monitor!");
++ }
++ }
++}
++
++static void
++xfburn_udev_manager_finalize (GObject * object)
++{
++ XfburnUdevManagerPrivate *priv = XFBURN_UDEV_MANAGER_GET_PRIVATE (object);
++
++ g_object_unref (priv->volume_monitor);
++ g_object_unref (priv->client);
++
++ G_OBJECT_CLASS (parent_class)->finalize (object);
++ instance = NULL;
++}
++
++static void cb_device_monitor_uevent(GUdevClient *client,
++ const gchar *action,
++ GUdevDevice *udevice,
++ XfburnUdevManager *obj)
++{
++ DBG ("UDEV: device uevent: %s", action);
++
++ if (g_str_equal (action, "remove") || g_str_equal (action, "add"))
++ g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
++
++ /* Lets ignore this for now,
++ * way too many of these get triggered when a disc is
++ * inserted or removed!
++ DBG ("HAL: property modified");
++ g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
++ */
++}
++
++static GObject *
++xfburn_udev_manager_new (void)
++{
++ if (G_UNLIKELY (instance != NULL))
++ g_error ("Trying to create a second instance of udev manager!");
++ return g_object_new (XFBURN_TYPE_UDEV_MANAGER, NULL);
++}
++
++/* */
++/* public */
++/* */
++
++gchar *
++xfburn_udev_manager_create_global (void)
++{
++ XfburnUdevManagerPrivate *priv;
++
++ instance = XFBURN_UDEV_MANAGER (xfburn_udev_manager_new ());
++
++ priv = XFBURN_UDEV_MANAGER_GET_PRIVATE (instance);
++
++ if (priv->error) {
++ gchar *error_msg, *ret;
++
++ error_msg = g_strdup (priv->error);
++ xfburn_udev_manager_shutdown ();
++ ret = g_strdup_printf ("Failed to initialize %s!", error_msg);
++ g_free (error_msg);
++ return ret;
++ } else
++ return NULL;
++}
++
++XfburnUdevManager *
++xfburn_udev_manager_get_global (void)
++{
++ if (G_UNLIKELY (instance == NULL))
++ g_error ("There is no instance of a udev manager!");
++ return instance;
++}
++
++void
++xfburn_udev_manager_shutdown (void)
++{
++ if (G_UNLIKELY (instance == NULL))
++ g_error ("There is no instance of a udev manager!");
++ g_object_unref (instance);
++ instance = NULL;
++}
++
++void
++xfburn_udev_manager_send_volume_changed (void)
++{
++ //gdk_threads_enter ();
++ g_signal_emit (instance, signals[VOLUME_CHANGED], 0);
++ //gdk_threads_leave ();
++}
++
++GList *
++xfburn_udev_manager_get_devices (XfburnUdevManager *udevman, gint *drives, gint *burners)
++{
++ XfburnUdevManagerPrivate *priv = XFBURN_UDEV_MANAGER_GET_PRIVATE (udevman);
++ GList *devices, *l;
++ GList *device_list = NULL;
++
++ (*drives) = 0;
++ (*burners) = 0;
++
++ if (priv->client == NULL)
++ return NULL;
++
++ devices = g_udev_client_query_by_subsystem (priv->client, "block");
++ for (l = devices; l != NULL; l = l->next) {
++ const gchar *id_type = g_udev_device_get_property (l->data, "ID_TYPE");
++ if (g_strcmp0 (id_type, "cd") == 0) {
++ gboolean cdr = g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_CD_R");
++ gboolean cdrw = g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_CD_RW");
++ gboolean dvdr = g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_R")
++ || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_RW")
++ || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_PLUS_R")
++ || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_PLUS_RW")
++ || g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_PLUS_R_DL");
++ gboolean dvdram = g_udev_device_get_property_as_boolean(l->data, "ID_CDROM_DVD_RAM");
++
++ (*drives)++;
++
++ if (cdr || dvdr || dvdram) {
++ XfburnDevice *device;
++ const gchar *addr, *name, *str_model, *str_vendor;
++
++ device = xfburn_device_new ();
++
++ /* vendor */
++ str_vendor = g_udev_device_get_sysfs_attr(l->data, "device/vendor");
++ if (str_vendor == NULL)
++ str_vendor = g_udev_device_get_property (l->data, "ID_VENDOR_FROM_DATABASE");
++ if (str_vendor == NULL)
++ str_vendor = g_udev_device_get_property (l->data, "ID_VENDOR");
++ if (str_vendor == NULL)
++ str_vendor = g_udev_device_get_sysfs_attr (l->data, "manufacturer");
++
++ /* model */
++ str_model = g_udev_device_get_sysfs_attr(l->data, "device/model");
++ if (str_model == NULL)
++ str_model = g_udev_device_get_property (l->data, "ID_MODEL_FROM_DATABASE");
++ if (str_model == NULL)
++ str_model = g_udev_device_get_property (l->data, "ID_MODEL");
++ if (str_model == NULL)
++ str_model = g_udev_device_get_sysfs_attr (l->data, "product");
++
++ name = xfburn_device_set_name (device, str_vendor, str_model);
++
++ addr = g_udev_device_get_device_file(l->data);
++#ifdef DEBUG_NULL_DEVICE
++ g_object_set (G_OBJECT (device), "address", "stdio:/dev/null", NULL);
++#else
++ g_object_set (G_OBJECT (device), "address", addr, NULL);
++#endif
++
++ g_object_set (G_OBJECT (device), "cdr", cdr, NULL);
++ g_object_set (G_OBJECT (device), "cdrw", cdrw, NULL);
++ g_object_set (G_OBJECT (device), "dvdr", dvdr, NULL);
++ g_object_set (G_OBJECT (device), "dvdram", dvdram, NULL);
++
++ if (!xfburn_device_can_burn (device)) {
++ g_message ("Ignoring reader '%s' at '%s'", name, addr);
++ g_object_unref (device);
++ } else {
++ (*burners)++;
++ device_list = g_list_append (device_list, device);
++ DBG ("Found writer '%s' at '%s'", name, addr);
++ }
++ }
++ }
++ g_object_unref (l->data);
++ }
++ g_list_free (devices);
++ return device_list;
++}
++
++static void
++xfburn_udev_manager_gio_operation_end (gpointer callback_data)
++{
++ XfburnUdevManagerGioOperation *operation = callback_data;
++
++ if (!operation->loop)
++ return;
++ if (!g_main_loop_is_running (operation->loop))
++ return;
++ g_main_loop_quit (operation->loop);
++}
++
++static void
++cb_device_umounted (GMount *mount,
++ XfburnUdevManagerGioOperation *operation)
++{
++ xfburn_udev_manager_gio_operation_end (operation);
++ operation->result = TRUE;
++}
++
++static void
++cb_device_umount_finish (GObject *source,
++ GAsyncResult *result,
++ gpointer user_data)
++{
++ XfburnUdevManagerGioOperation *op = user_data;
++
++ if (!op->loop)
++ return;
++
++ op->result = g_mount_unmount_with_operation_finish (G_MOUNT (source),
++ result,
++ &op->error);
++
++ g_debug("Umount operation completed (result = %d)", op->result);
++
++ if (op->error) {
++ if (op->error->code == G_IO_ERROR_NOT_MOUNTED) {
++ /* That can happen sometimes */
++ g_error_free (op->error);
++ op->error = NULL;
++ op->result = TRUE;
++ }
++ /* Since there was an error. The "unmounted" signal won't be
++ * emitted by GVolumeMonitor and therefore we'd get stuck if
++ * we didn't get out of the loop. */
++ xfburn_udev_manager_gio_operation_end (op);
++ } else if (!op->result) {
++ xfburn_udev_manager_gio_operation_end (op);
++ }
++}
++
++static void
++cb_gio_operation_cancelled (GCancellable *cancel,
++ XfburnUdevManagerGioOperation *operation)
++{
++ operation->result = FALSE;
++ g_cancellable_cancel (operation->cancel);
++ if (operation->loop && g_main_loop_is_running (operation->loop))
++ g_main_loop_quit (operation->loop);
++}
++
++static gboolean
++cb_gio_operation_timeout (gpointer callback_data)
++{
++ XfburnUdevManagerGioOperation *operation = callback_data;
++
++ g_warning ("Volume/Disc operation timed out");
++
++ xfburn_udev_manager_gio_operation_end (operation);
++ operation->timeout_id = 0;
++ operation->result = FALSE;
++ return FALSE;
++}
++
++/* @Return TRUE if the drive is now accessible, FALSE if not.
++ */
++gboolean
++xfburn_udev_manager_check_ask_umount (XfburnUdevManager *udevman, XfburnDevice *device)
++{
++ XfburnUdevManagerPrivate *priv = XFBURN_UDEV_MANAGER_GET_PRIVATE (udevman);
++ gboolean unmounted = FALSE;
++ gchar *device_file;
++ GList *mounts;
++ GMount *mount = NULL;
++ GList *i;
++ gchar *mp;
++
++ if (priv->volume_monitor == NULL)
++ return FALSE;
++
++ mounts = g_volume_monitor_get_mounts (priv->volume_monitor);
++
++ g_object_get (G_OBJECT (device), "address", &device_file, NULL);
++ for (i = mounts; i != NULL; i = i->next) {
++ GVolume *v;
++
++ mount = G_MOUNT (i->data);
++ v = g_mount_get_volume (mount);
++ if (v != NULL) {
++ char *devname = NULL;
++ gboolean match;
++
++ devname = g_volume_get_identifier (v, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
++ match = g_str_equal (devname, device_file);
++
++ g_free (devname);
++ g_object_unref (v);
++
++ if (match)
++ break;
++ }
++ g_object_unref (mount);
++ mount = NULL;
++ }
++ g_list_free (mounts);
++
++ if (mount == NULL)
++ return TRUE;
++
++ if (g_mount_can_unmount (mount)) {
++ /* FIXME: ask if we should unmount? */
++ gulong umount_sig;
++ XfburnUdevManagerGioOperation *op;
++
++ op = g_new0 (XfburnUdevManagerGioOperation, 1);
++ op->cancel = g_cancellable_new();
++
++ umount_sig = g_signal_connect_after (mount,
++ "unmounted",
++ G_CALLBACK (cb_device_umounted),
++ op);
++
++ /* NOTE: we own a reference to mount
++ * object so no need to ref it even more */
++ g_mount_unmount_with_operation (mount,
++ G_MOUNT_UNMOUNT_NONE,
++ NULL,
++ op->cancel,
++ cb_device_umount_finish,
++ op);
++ DBG("Waiting for end of async operation");
++ g_cancellable_reset (op->cancel);
++ g_signal_connect (op->cancel,
++ "cancelled",
++ G_CALLBACK (cb_gio_operation_cancelled),
++ op);
++
++ /* put a timeout (15 sec) */
++ op->timeout_id = g_timeout_add_seconds (15,
++ cb_gio_operation_timeout,
++ op);
++
++ op->loop = g_main_loop_new (NULL, FALSE);
++
++ GDK_THREADS_LEAVE ();
++ g_main_loop_run (op->loop);
++ GDK_THREADS_ENTER ();
++
++ g_main_loop_unref (op->loop);
++ op->loop = NULL;
++
++ if (op->timeout_id) {
++ g_source_remove (op->timeout_id);
++ op->timeout_id = 0;
++ }
++
++ if (op->error) {
++ g_warning ("Medium op finished with an error: %s", op->error->message);
++
++ if (op->error->code == G_IO_ERROR_FAILED_HANDLED) {
++ DBG("Error already handled and displayed by GIO");
++
++ /* means we shouldn't display any error message since
++ * that was already done */
++ g_error_free (op->error);
++ op->error = NULL;
++ } else
++ g_error_free (op->error);
++
++ op->error = NULL;
++ }
++
++ unmounted = op->result;
++
++ if (op->cancel) {
++ g_cancellable_cancel (op->cancel);
++ g_object_unref (op->cancel);
++ }
++ if (op->timeout_id) {
++ g_source_remove (op->timeout_id);
++ }
++ if (op->loop && g_main_loop_is_running (op->loop))
++ g_main_loop_quit (op->loop);
++ g_signal_handler_disconnect (mount, umount_sig);
++ }
++
++ mp = g_mount_get_name(mount);
++ if (unmounted)
++ g_message ("Unmounted '%s'", mp);
++ else {
++ xfce_err ("Failed to unmount '%s'. Drive cannot be used for burning.", mp);
++ DBG ("Failed to unmount '%s'", mp);
++ }
++
++ g_free(mp);
++ g_object_unref (mount);
++
++ return unmounted;
++}
++
++#endif /* HAVE_GUDEV */
+diff -urN xfburn-0.4.3/xfburn/xfburn-udev-manager.h xfburn-0.4.3-gio/xfburn/xfburn-udev-manager.h
+--- xfburn-0.4.3/xfburn/xfburn-udev-manager.h 1970-01-01 01:00:00.000000000 +0100
++++ xfburn-0.4.3-gio/xfburn/xfburn-udev-manager.h 2011-02-25 14:24:15.407374630 +0100
+@@ -0,0 +1,68 @@
++/*
++ * Copyright (c) 2005-2006 Jean-François Wauthy (pollux at xfce.org)
++ * Copyright (c) 2008 David Mohr (david at mcbf.net)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++#ifndef __XFBURN_UDEV_MANAGER_H__
++#define __XFBURN_UDEV_MANAGER_H__
++
++#ifdef HAVE_GUDEV
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif /* !HAVE_CONFIG_H */
++
++#include <gtk/gtk.h>
++
++#include "xfburn-progress-dialog.h"
++#include "xfburn-device-list.h"
++
++G_BEGIN_DECLS
++
++#define XFBURN_TYPE_UDEV_MANAGER (xfburn_udev_manager_get_type ())
++#define XFBURN_UDEV_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManager))
++#define XFBURN_UDEV_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManagerClass))
++#define XFBURN_IS_UDEV_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_UDEV_MANAGER))
++#define XFBURN_IS_UDEV_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_UDEV_MANAGER))
++#define XFBURN_UDEV_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManagerClass))
++
++typedef struct
++{
++ GObject parent;
++} XfburnUdevManager;
++
++typedef struct
++{
++ XfburnProgressDialogClass parent_class;
++
++ void (*volume_changed) (XfburnUdevManager *udevman);
++} XfburnUdevManagerClass;
++
++GType xfburn_udev_manager_get_type (void);
++//GObject *xfburn_udev_manager_new (); /* use _create_global / _get_instance instead */
++gchar *xfburn_udev_manager_create_global (void);
++XfburnUdevManager * xfburn_udev_manager_get_global (void);
++void xfburn_udev_manager_shutdown (void);
++void xfburn_udev_manager_send_volume_changed (void);
++GList *xfburn_udev_manager_get_devices (XfburnUdevManager *udevman, gint *drives, gint *burners);
++gboolean xfburn_udev_manager_check_ask_umount (XfburnUdevManager *udevman, XfburnDevice *device);
++
++G_END_DECLS
++
++#endif /* HAVE_GUDEV */
++
++#endif /* XFBURN_UDEV_MANAGER_H */
Added: goodies/trunk/xfburn/debian/patches/xfburn-ui.patch
===================================================================
--- goodies/trunk/xfburn/debian/patches/xfburn-ui.patch (rev 0)
+++ goodies/trunk/xfburn/debian/patches/xfburn-ui.patch 2011-10-26 20:42:22 UTC (rev 6173)
@@ -0,0 +1,911 @@
+Description: port to libxfce4ui
+Origin: other, https://bugzilla.xfce.org/attachment.cgi?id=3529
+Bug: https://bugzilla.xfce.org/show_bug.cgi?id=7355
+
+diff -ur xfburn-0.4.3/configure.in xfburn-0.4.3-4ui/configure.in
+--- xfburn-0.4.3/configure.in 2011-02-26 20:25:11.173013553 +0100
++++ xfburn-0.4.3-4ui/configure.in 2011-02-26 19:16:30.409029549 +0100
+@@ -38,7 +38,7 @@
+ XDT_CHECK_PACKAGE([LIBISOFS], [libisofs-1], [0.6.2])
+ XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.0])
+ XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.10.0])
+-XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0])
++XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.8.0])
+ XDT_CHECK_PACKAGE([EXO], [exo-0.3], [0.3.4], [], [XDT_CHECK_PACKAGE([EXO], [exo-1], [0.3.100])])
+ XDT_CHECK_PACKAGE([LIBGIO], [gio-2.0], [2.22.0])
+ XDT_CHECK_PACKAGE([LIBGIOUNIX], [gio-unix-2.0], [2.16.0])
+diff -ur xfburn-0.4.3/xfburn/Makefile.am xfburn-0.4.3-4ui/xfburn/Makefile.am
+--- xfburn-0.4.3/xfburn/Makefile.am 2011-02-26 20:25:11.174013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/Makefile.am 2011-02-26 19:17:52.972029553 +0100
+@@ -95,7 +95,7 @@
+ $(GTHREAD_CFLAGS) \
+ $(LIBBURN_CFLAGS) \
+ $(LIBISOFS_CFLAGS) \
+- $(LIBXFCEGUI4_CFLAGS) \
++ $(LIBXFCE4UI_CFLAGS) \
+ $(EXO_CFLAGS) \
+ $(GIO_CFLAGS) \
+ $(GIO_UNIX_CFLAGS) \
+@@ -106,7 +106,7 @@
+ $(GTHREAD_LIBS) \
+ $(LIBBURN_LIBS) \
+ $(LIBISOFS_LIBS) \
+- $(LIBXFCEGUI4_LIBS) \
++ $(LIBXFCE4UI_LIBS) \
+ $(EXO_LIBS) \
+ $(GIO_LIBS) \
+ $(GIO_UNIX_LIBS) \
+diff -ur xfburn-0.4.3/xfburn/xfburn-audio-composition.c xfburn-0.4.3-4ui/xfburn/xfburn-audio-composition.c
+--- xfburn-0.4.3/xfburn/xfburn-audio-composition.c 2011-02-26 20:25:11.175013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-audio-composition.c 2011-02-26 20:12:31.066324063 +0100
+@@ -32,7 +32,7 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <gio/gio.h>
+
+@@ -577,7 +577,7 @@
+ dialog = xfburn_burn_audio_cd_composition_dialog_new (src);
+ break;
+ case DVD_DISC:
+- xfce_err (_("Cannot burn audio onto a DVD."));
++ xfce_dialog_show_error (NULL, NULL, _("Cannot burn audio onto a DVD."));
+ return;
+ break;
+ }
+@@ -1021,7 +1021,7 @@
+ {
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
+
+- xfce_info (xfburn_transcoder_get_description (priv->trans));
++ xfce_dialog_show_info(NULL, NULL, "%s", xfburn_transcoder_get_description (priv->trans));
+ }
+
+ static void
+@@ -1089,14 +1089,14 @@
+ g_assert (error != NULL);
+
+ if (error->domain != XFBURN_ERROR) {
+- xfce_warn (error->message);
++ xfce_dialog_show_warning(NULL, NULL, "%s", error->message);
+ return;
+ }
+
+ if (g_hash_table_lookup (priv->warned_about, GINT_TO_POINTER (error->code)) == NULL) {
+ g_hash_table_insert (priv->warned_about, GINT_TO_POINTER (error->code), did_warn);
+
+- xfce_warn (error->message);
++ xfce_dialog_show_warning(NULL, NULL, "%s", error->message);
+ }
+ }
+
+@@ -1141,7 +1141,7 @@
+
+ gdk_threads_enter ();
+ if (file_exists_on_same_level (model, tree_path, FALSE, name)) {
+- xfce_err (_("A file with the same name is already present in the composition."));
++ xfce_dialog_show_error (NULL, NULL, _("A file with the same name is already present in the composition."));
+
+ gtk_tree_path_free (tree_path);
+ gdk_threads_leave ();
+@@ -1225,7 +1225,7 @@
+ if (g_hash_table_lookup (priv->warned_about, GINT_TO_POINTER (err_code)) == NULL) {
+ g_hash_table_insert (priv->warned_about, GINT_TO_POINTER (err_code), did_warn);
+ gdk_threads_enter ();
+- xfce_err (_("You can only have a maximum of 99 tracks."));
++ xfce_dialog_show_error (NULL, NULL, _("You can only have a maximum of 99 tracks."));
+ gdk_threads_leave ();
+ }
+
+@@ -1475,7 +1475,7 @@
+
+ /*
+ if (file_exists_on_same_level (model, path_level, FALSE, name)) {
+- xfce_warn (_("A file named \"%s\" already exists in this directory, the file hasn't been added."), name);
++ xfce_dialog_warning(NULL, NULL, _("A file named \"%s\" already exists in this directory, the file hasn't been added."), name);
+ goto cleanup;
+ }
+ */
+diff -ur xfburn-0.4.3/xfburn/xfburn-audio-disc-usage.c xfburn-0.4.3-4ui/xfburn/xfburn-audio-disc-usage.c
+--- xfburn-0.4.3/xfburn/xfburn-audio-disc-usage.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-audio-disc-usage.c 2011-02-26 16:21:03.534320584 +0100
+@@ -22,7 +22,6 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
+
+ #include "xfburn-disc-usage.h"
+ #include "xfburn-audio-disc-usage.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-blank-dialog.c xfburn-0.4.3-4ui/xfburn/xfburn-blank-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-blank-dialog.c 2011-02-26 20:25:11.176013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-blank-dialog.c 2011-02-26 20:13:58.518013555 +0100
+@@ -20,7 +20,7 @@
+ #include <config.h>
+ #endif /* !HAVE_CONFIG_H */
+
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libburn.h>
+
+@@ -206,7 +206,7 @@
+ g_signal_connect (G_OBJECT (priv->device_box), "volume-changed", G_CALLBACK (cb_volume_changed), obj);
+ gtk_widget_show (priv->device_box);
+
+- frame = xfce_create_framebox_with_content (_("Burning device"), priv->device_box);
++ frame = xfce_gtk_frame_box_new_with_content (_("Burning device"), priv->device_box);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -219,7 +219,7 @@
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->combo_type), cell, "text", BLANK_COMBO_NAME_COLUMN, NULL);
+ gtk_widget_show (priv->combo_type);
+
+- frame = xfce_create_framebox_with_content (_("Blank mode"), priv->combo_type);
++ frame = xfce_gtk_frame_box_new_with_content (_("Blank mode"), priv->combo_type);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -227,7 +227,7 @@
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+- frame = xfce_create_framebox_with_content (_("Options"), vbox);
++ frame = xfce_gtk_frame_box_new_with_content (_("Options"), vbox);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -241,7 +241,7 @@
+ gtk_widget_show (button);
+ gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_CANCEL);
+
+- button = xfce_create_mixed_button ("xfburn-blank-cdrw", _("_Blank"));
++ button = xfce_gtk_button_new_mixed ("xfburn-blank-cdrw", _("_Blank"));
+ gtk_widget_show (button);
+ gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_OK);
+ GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
+--- xfburn-0.4.3/xfburn/xfburn-blank-dialog.h~ 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3/xfburn/xfburn-blank-dialog.h 2011-02-26 21:17:54.580716604 +0100
+@@ -26,6 +26,7 @@
+ #include "xfburn-global.h"
+
+ #include <gtk/gtk.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ G_BEGIN_DECLS
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-audio-cd-composition-dialog.c xfburn-0.4.3-4ui/xfburn/xfburn-burn-audio-cd-composition-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-burn-audio-cd-composition-dialog.c 2009-10-30 02:10:13.000000000 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-audio-cd-composition-dialog.c 2011-02-26 20:14:58.426013553 +0100
+@@ -156,7 +156,7 @@
+ g_signal_connect (G_OBJECT (priv->device_box), "volume-changed", G_CALLBACK (cb_volume_changed), obj);
+ gtk_widget_show (priv->device_box);
+
+- priv->frame_device = xfce_create_framebox_with_content (_("Burning device"), priv->device_box);
++ priv->frame_device = xfce_gtk_frame_box_new_with_content (_("Burning device"), priv->device_box);
+ gtk_widget_show (priv->frame_device);
+ gtk_box_pack_start (box, priv->frame_device, FALSE, FALSE, BORDER);
+
+@@ -168,7 +168,7 @@
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+- frame = xfce_create_framebox_with_content (_("Composition name"), vbox);
++ frame = xfce_gtk_frame_box_new_with_content (_("Composition name"), vbox);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -190,7 +190,7 @@
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+- frame = xfce_create_framebox_with_content (_("Options"), vbox);
++ frame = xfce_gtk_frame_box_new_with_content (_("Options"), vbox);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -218,7 +218,7 @@
+ gtk_widget_show (button);
+ gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_CANCEL);
+
+- priv->button_proceed = button = xfce_create_mixed_button ("xfburn-burn-cd", _("_Burn Composition"));
++ priv->button_proceed = button = xfce_gtk_button_new_mixed ("xfburn-burn-cd", _("_Burn Composition"));
+
+ gtk_widget_show (button);
+ gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_OK);
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-audio-cd-composition-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-burn-audio-cd-composition-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-burn-audio-cd-composition-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-audio-cd-composition-dialog.h 2011-02-26 16:21:06.852320585 +0100
+@@ -24,7 +24,7 @@
+ #endif /* !HAVE_CONFIG_H */
+
+ #include <gtk/gtk.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libisofs.h>
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-data-cd-composition-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-cd-composition-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-burn-data-cd-composition-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-cd-composition-dialog.h 2011-02-26 16:21:06.854320585 +0100
+@@ -24,7 +24,7 @@
+ #endif /* !HAVE_CONFIG_H */
+
+ #include <gtk/gtk.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libisofs.h>
+ #include "xfburn-burn-data-composition-base-dialog.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-data-composition-base-dialog.c xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-composition-base-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-burn-data-composition-base-dialog.c 2009-10-30 02:11:13.000000000 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-composition-base-dialog.c 2011-02-26 20:14:13.313013558 +0100
+@@ -192,7 +192,7 @@
+
+ g_signal_connect (G_OBJECT (priv->device_box), "volume-changed", G_CALLBACK (cb_volume_changed), obj);
+
+- priv->frame_device = xfce_create_framebox_with_content (_("Burning device"), priv->device_box);
++ priv->frame_device = xfce_gtk_frame_box_new_with_content (_("Burning device"), priv->device_box);
+ gtk_widget_show (priv->frame_device);
+ gtk_box_pack_start (box, priv->frame_device, FALSE, FALSE, BORDER);
+
+@@ -203,7 +203,7 @@
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+- frame = xfce_create_framebox_with_content (_("Composition name"), vbox);
++ frame = xfce_gtk_frame_box_new_with_content (_("Composition name"), vbox);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -224,7 +224,7 @@
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+- frame = xfce_create_framebox_with_content (_("Options"), vbox);
++ frame = xfce_gtk_frame_box_new_with_content (_("Options"), vbox);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -280,7 +280,7 @@
+ gtk_widget_show (button);
+ gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_CANCEL);
+
+- priv->button_proceed = button = xfce_create_mixed_button ("xfburn-burn-cd", _("_Burn Composition"));
++ priv->button_proceed = button = xfce_gtk_button_new_mixed ("xfburn-burn-cd", _("_Burn Composition"));
+ /*
+ * Disabled: change button_proceed functionality
+ button = create_proceed_button (obj, "xfburn-burn-cd", "");
+@@ -650,7 +650,7 @@
+
+ if (iso_image_create_burn_source (priv->image, write_opts, &src) < 0) {
+ /* could not create source */
+- xfce_err (_("Could not create ISO source structure."));
++ xfce_dialog_show_error (NULL, NULL, _("Could not create ISO source structure."));
+ return;
+ }
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-data-composition-base-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-composition-base-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-burn-data-composition-base-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-composition-base-dialog.h 2011-02-26 16:21:06.856320585 +0100
+@@ -24,7 +24,7 @@
+ #endif /* !HAVE_CONFIG_H */
+
+ #include <gtk/gtk.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libisofs.h>
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-data-dvd-composition-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-dvd-composition-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-burn-data-dvd-composition-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-data-dvd-composition-dialog.h 2011-02-26 16:21:06.857320585 +0100
+@@ -24,7 +24,7 @@
+ #endif /* !HAVE_CONFIG_H */
+
+ #include <gtk/gtk.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libisofs.h>
+ #include "xfburn-burn-data-composition-base-dialog.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-image-dialog.c xfburn-0.4.3-4ui/xfburn/xfburn-burn-image-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-burn-image-dialog.c 2009-10-30 03:47:20.000000000 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-image-dialog.c 2011-02-26 20:14:24.039013553 +0100
+@@ -173,7 +173,7 @@
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (priv->chooser_image), filter);
+ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (priv->chooser_image), filter);
+
+- frame = xfce_create_framebox_with_content (_("Image to burn"), priv->chooser_image);
++ frame = xfce_gtk_frame_box_new_with_content (_("Image to burn"), priv->chooser_image);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -188,7 +188,7 @@
+ priv->device_box = xfburn_device_box_new (SHOW_CD_WRITERS | SHOW_CDRW_WRITERS | SHOW_DVD_WRITERS | SHOW_MODE_SELECTION | SHOW_SPEED_SELECTION);
+ gtk_widget_show (priv->device_box);
+
+- frame = xfce_create_framebox_with_content (_("Burning device"), priv->device_box);
++ frame = xfce_gtk_frame_box_new_with_content (_("Burning device"), priv->device_box);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -196,7 +196,7 @@
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+- frame = xfce_create_framebox_with_content (_("Options"), vbox);
++ frame = xfce_gtk_frame_box_new_with_content (_("Options"), vbox);
+ gtk_widget_show (frame);
+ gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
+
+@@ -219,7 +219,7 @@
+ gtk_widget_show (button);
+ gtk_dialog_add_action_widget (GTK_DIALOG (obj), button, GTK_RESPONSE_CANCEL);
+
+- priv->burn_button = xfce_create_mixed_button ("xfburn-burn-cd", _("_Burn image"));
++ priv->burn_button = xfce_gtk_button_new_mixed ("xfburn-burn-cd", _("_Burn image"));
+ gtk_widget_show (priv->burn_button);
+ g_signal_connect (G_OBJECT (priv->burn_button), "clicked", G_CALLBACK (cb_clicked_ok), obj);
+ gtk_container_add (GTK_CONTAINER( GTK_DIALOG(obj)->action_area), priv->burn_button);
+@@ -400,7 +400,7 @@
+ void
+ burn_image_dialog_error (XfburnBurnImageDialog * dialog, const gchar * msg_error)
+ {
+- xfce_err (msg_error);
++ xfce_dialog_show_error (NULL, NULL, "%s", msg_error);
+ }
+
+ static void
+diff -ur xfburn-0.4.3/xfburn/xfburn-burn-image-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-burn-image-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-burn-image-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-burn-image-dialog.h 2011-02-26 16:21:06.859320585 +0100
+@@ -25,7 +25,7 @@
+
+ #include <gtk/gtk.h>
+
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include "xfburn-global.h"
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-copy-cd-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-copy-cd-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-copy-cd-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-copy-cd-dialog.h 2011-02-26 16:21:06.866320585 +0100
+@@ -25,7 +25,7 @@
+
+ #include <gtk/gtk.h>
+
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ G_BEGIN_DECLS
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-copy-dvd-dialog.h xfburn-0.4.3-4ui/xfburn/xfburn-copy-dvd-dialog.h
+--- xfburn-0.4.3/xfburn/xfburn-copy-dvd-dialog.h 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-copy-dvd-dialog.h 2011-02-26 16:21:06.869320585 +0100
+@@ -25,7 +25,7 @@
+
+ #include <gtk/gtk.h>
+
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ G_BEGIN_DECLS
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-data-composition.c xfburn-0.4.3-4ui/xfburn/xfburn-data-composition.c
+--- xfburn-0.4.3/xfburn/xfburn-data-composition.c 2011-02-26 20:25:11.177013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-data-composition.c 2011-02-26 20:11:15.445153553 +0100
+@@ -35,7 +35,7 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <gio/gio.h>
+
+@@ -671,7 +671,7 @@
+ GtkTreePath *real_path;
+
+ if (strlen (newtext) == 0) {
+- xfce_err (_("You must give a name to the file."));
++ xfce_dialog_show_error (NULL, NULL, _("You must give a name to the file."));
+ return;
+ }
+
+@@ -680,7 +680,7 @@
+
+ if (gtk_tree_model_get_iter (model, &iter, real_path)) {
+ if (file_exists_on_same_level (model, real_path, TRUE, newtext)) {
+- xfce_err (_("A file with the same name is already present in the composition."));
++ xfce_dialog_show_error (NULL, NULL, _("A file with the same name is already present in the composition."));
+ }
+ else {
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, DATA_COMPOSITION_COLUMN_CONTENT, newtext, -1);
+@@ -1116,7 +1116,7 @@
+
+ gdk_threads_enter ();
+ if (file_exists_on_same_level (model, tree_path, FALSE, name)) {
+- xfce_err (_("A file with the same name is already present in the composition."));
++ xfce_dialog_show_error (NULL, NULL, _("A file with the same name is already present in the composition."));
+
+ gtk_tree_path_free (tree_path);
+ gdk_threads_leave ();
+@@ -1195,7 +1195,7 @@
+
+ if (s.st_size > MAXIMUM_ISO_FILE_SIZE) {
+ gdk_threads_enter ();
+- xfce_err (_("%s cannot be added to the composition, because it exceeds the maximum allowed file size for iso9660."), path);
++ xfce_dialog_show_error (NULL, NULL, _("%s cannot be added to the composition, because it exceeds the maximum allowed file size for iso9660."), path);
+ gdk_threads_leave ();
+
+ return FALSE;
+@@ -1448,7 +1448,7 @@
+ }
+
+ if (file_exists_on_same_level (model, path_level, FALSE, name)) {
+- xfce_warn (_("A file named \"%s\" already exists in this directory, the file hasn't been added."), name);
++ xfce_dialog_show_warning(NULL, NULL, _("A file named \"%s\" already exists in this directory, the file hasn't been added."), name);
+ goto cleanup;
+ }
+
+@@ -1861,7 +1861,7 @@
+
+ if (r == 0) {
+ /* The first string is the renamed name, the second one the original name */
+- xfce_warn (_("Duplicate filename '%s' for '%s'"), name, src);
++ xfce_dialog_show_warning(NULL, NULL, _("Duplicate filename '%s' for '%s'"), name, src);
+
+ g_free (basename);
+ g_free (name);
+diff -ur xfburn-0.4.3/xfburn/xfburn-data-disc-usage.c xfburn-0.4.3-4ui/xfburn/xfburn-data-disc-usage.c
+--- xfburn-0.4.3/xfburn/xfburn-data-disc-usage.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-data-disc-usage.c 2011-02-26 16:21:03.628320584 +0100
+@@ -22,7 +22,6 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
+
+ #include "xfburn-disc-usage.h"
+ #include "xfburn-data-disc-usage.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-device-box.c xfburn-0.4.3-4ui/xfburn/xfburn-device-box.c
+--- xfburn-0.4.3/xfburn/xfburn-device-box.c 2011-02-26 20:25:11.178013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-device-box.c 2011-02-26 16:21:03.642320584 +0100
+@@ -23,7 +23,6 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
+
+ #include "xfburn-device-list.h"
+ #include "xfburn-device-box.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-directory-browser.c xfburn-0.4.3-4ui/xfburn/xfburn-directory-browser.c
+--- xfburn-0.4.3/xfburn/xfburn-directory-browser.c 2011-02-26 20:25:11.182013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-directory-browser.c 2011-02-26 16:21:03.667320584 +0100
+@@ -26,7 +26,6 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
+
+ #include <gio/gio.h>
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-disc-usage.c xfburn-0.4.3-4ui/xfburn/xfburn-disc-usage.c
+--- xfburn-0.4.3/xfburn/xfburn-disc-usage.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-disc-usage.c 2011-02-26 20:14:37.314013551 +0100
+@@ -30,7 +30,7 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include "xfburn-disc-usage.h"
+ #include "xfburn-global.h"
+@@ -160,7 +160,7 @@
+ gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->combo, FALSE, FALSE, BORDER);
+ gtk_widget_show (disc_usage->combo);
+
+- disc_usage->button = xfce_create_mixed_button (XFBURN_STOCK_BURN_CD, _("Proceed to Burn"));
++ disc_usage->button = xfce_gtk_button_new_mixed (XFBURN_STOCK_BURN_CD, _("Proceed to Burn"));
+ gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->button, FALSE, FALSE, BORDER);
+ gtk_widget_set_sensitive (disc_usage->button, FALSE);
+ gtk_widget_show (disc_usage->button);
+@@ -200,7 +200,7 @@
+ if (du->size <= class->labels[gtk_combo_box_get_active (GTK_COMBO_BOX (du->combo))].size) {
+ g_signal_emit (G_OBJECT (du), signals[BEGIN_BURN], 0);
+ } else {
+- xfce_err (_("You are trying to burn more onto the disc than it can hold."));
++ xfce_dialog_show_error (NULL, NULL, _("You are trying to burn more onto the disc than it can hold."));
+ }
+ }
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-file-browser.c xfburn-0.4.3-4ui/xfburn/xfburn-file-browser.c
+--- xfburn-0.4.3/xfburn/xfburn-file-browser.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-file-browser.c 2011-02-26 16:21:03.678320584 +0100
+@@ -26,7 +26,6 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
+
+ #include "xfburn-file-browser.h"
+ #include "xfburn-fs-browser.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-fs-browser.c xfburn-0.4.3-4ui/xfburn/xfburn-fs-browser.c
+--- xfburn-0.4.3/xfburn/xfburn-fs-browser.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-fs-browser.c 2011-02-26 16:21:03.684320584 +0100
+@@ -24,7 +24,6 @@
+ #include <string.h>
+ #endif
+
+-#include <libxfcegui4/libxfcegui4.h>
+ #include <libxfce4util/libxfce4util.h>
+
+ #include "xfburn-fs-browser.h"
+diff -ur xfburn-0.4.3/xfburn/xfburn-main.c xfburn-0.4.3-4ui/xfburn/xfburn-main.c
+--- xfburn-0.4.3/xfburn/xfburn-main.c 2011-02-26 20:25:11.186013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-main.c 2011-02-26 20:10:39.291239575 +0100
+@@ -29,7 +29,7 @@
+ #include <gtk/gtk.h>
+
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #ifdef HAVE_GST
+ #include <gst/gst.h>
+@@ -217,7 +217,7 @@
+
+ if (!burn_initialize ()) {
+ g_critical ("Unable to initialize libburn");
+- xfce_err (_("Unable to initialize the burning backend."));
++ xfce_dialog_show_error (NULL, NULL, _("Unable to initialize the burning backend."));
+ gdk_threads_leave ();
+ return EXIT_FAILURE;
+ }
+@@ -274,7 +274,7 @@
+ #ifdef HAVE_GUDEV
+ error_msg = xfburn_udev_manager_create_global ();
+ if (error_msg) {
+- xfce_err (error_msg);
++ xfce_dialog_show_error (NULL, NULL, "%s", error_msg);
+ gdk_threads_leave ();
+ burn_finish ();
+ return EXIT_FAILURE;
+@@ -328,7 +328,7 @@
+ }
+
+ if (!xfburn_transcoder_is_initialized (transcoder, &error)) {
+- xfce_warn (_("Failed to initialize %s transcoder: %s\n\t(falling back to basic implementation)"), xfburn_transcoder_get_name (transcoder), error->message);
++ xfce_dialog_show_warning(NULL, NULL, _("Failed to initialize %s transcoder: %s\n\t(falling back to basic implementation)"), xfburn_transcoder_get_name (transcoder), error->message);
+ g_error_free (error);
+ g_object_unref (transcoder);
+ transcoder = XFBURN_TRANSCODER (xfburn_transcoder_basic_new ());
+@@ -361,7 +361,7 @@
+ if (g_file_test (image_fullname, G_FILE_TEST_EXISTS))
+ xfburn_burn_image_dialog_set_filechooser_name (dialog, image_fullname);
+ else
+- xfce_err ( g_strdup_printf ( _("Image file '%s' does not exist."), image_fullname));
++ xfce_dialog_show_error (NULL, NULL, _("Image file '%s' does not exist."), image_fullname);
+ }
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+diff -ur xfburn-0.4.3/xfburn/xfburn-main-window.c xfburn-0.4.3-4ui/xfburn/xfburn-main-window.c
+--- xfburn-0.4.3/xfburn/xfburn-main-window.c 2009-12-04 08:35:12.000000000 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-main-window.c 2011-02-26 20:22:57.325013554 +0100
+@@ -22,7 +22,7 @@
+
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <exo/exo.h>
+
+@@ -479,79 +479,69 @@
+ static void
+ action_about (GtkAction * action, XfburnMainWindow * window)
+ {
+- XfceAboutInfo *info;
+- GtkWidget *dialog;
+ gint x, y;
+- GdkPixbuf *icon;
+- guint n;
+-
+- static const struct
+- {
+- gchar *name, *email, *language;
+- } translators[] = {
+- {"Mohamed Magdy", "mohamed.m.k at gmail.com", "ar",},
+- {"Pau Rul lan Ferragut", "paurullan at bulma.net", "ca",},
+- {"Michal Várady", "miko.vaji at gmail.com", "cs",},
+- {"Enrico Tröger", "enrico.troeger at uvena.de", "de",},
+- {"Fabian Nowak", "timstery at arcor.de", "de",},
+- {"Nico Schümann", "nico at prog.nico22.de", "de",},
+- {"Stavros Giannouris", "stavrosg2002 at freemail.gr", "el",},
+- {"Jeff Bailes", "thepizzaking at gmail.com", "en_GB",},
+- {"Diego Rodriguez", "dieymir at yahoo.es", "es",},
+- {"Kristjan Siimson", "kristjan.siimson at gmail.com", "et",},
+- {"Piarres Beobide", "pi at beobide.net", "eu",},
+- {"Jari Rahkonen", "jari.rahkonen at pp1.inet.fi", "fi",},
+- {"Etienne Collet", "xanaxlnx at gmail.com", "fr",},
+- {"Maximilian Schleiss", "maximilian at xfce.org", "fr",},
+- {"Attila Szervác", "sas at 321.hu", "hu",},
+- {"Daichi Kawahata", "daichi at xfce.org", "ja",},
+- {"ByungHyun Choi", "byunghyun.choi at debianusers.org", "kr",},
+- {"Mantas", "mantaz at users.sourceforge.net", "lt",},
+- {"Rihards Prieditis", "RPrieditis at inbox.lv", "lv",},
+- {"Terje Uriansrud", "ter at operamail.com", "nb_NO",},
+- {"Stephan Arts", "psybsd at gmail.com", "nl",},
+- {"Szymon Kałasz", "szymon_maestro at gazeta.pl", "pl",},
+- {"Fábio Nogueira", "deb-user-ba at ubuntu.com", "pt_BR",},
+- {"Og Maciel", "omaciel at xfce.org", "pt_BR",},
+- {"Nuno Miguel", "nunis at netcabo.pt", "pt_PT",},
+- {"Sergey Fedoseev", "fedoseev.sergey at gmail.com", "ru",},
+- {"Besnik Bleta", "besnik at programeshqip.org", "sq",},
+- {"Maxim V. Dziumanenko", "mvd at mylinux.com.ua", "uk",},
+- {"Dmitry Nikitin", "", "uk",},
+- {"ﻢﺤﻣﺩ ﻊﻠﻳ ﺎﻠﻤﻜﻳ", "makki.ma at gmail.com", "ur",},
+- {"正龙 赵", "longer.zhao at gmail.com", "zh_CN",},
+- {"Cosmo Chene", "cosmolax at gmail.com", "zh_TW",},
+- };
++ GdkPixbuf *icon = NULL;
++ const gchar *auth[] = { "David Mohr david at mcbf.net Author/Maintainer",
++ "Mario Đanić mario at libburnia-project.org Author/Maintainer",
++ "Jean-François Wauthy pollux at xfce.org Retired author/maintainer",
++ NULL };
++ const gchar *translators =
++ "Mohamed Magdy mohamed.m.k at gmail.com ar\n"
++ "Pau Rul lan Ferragut paurullan at bulma.net ca\n"
++ "Michal Várady miko.vaji at gmail.com cs\n"
++ "Enrico Tröger enrico.troeger at uvena.de de\n"
++ "Fabian Nowak timstery at arcor.de de\n"
++ "Nico Schümann nico at prog.nico22.de de\n"
++ "Stavros Giannouris stavrosg2002 at freemail.gr el\n"
++ "Jeff Bailes thepizzaking at gmail.com en_GB\n"
++ "Diego Rodriguez dieymir at yahoo.es es\n"
++ "Kristjan Siimson kristjan.siimson at gmail.com et\n"
++ "Piarres Beobide pi at beobide.net eu\n"
++ "Jari Rahkonen jari.rahkonen at pp1.inet.fi fi\n"
++ "Etienne Collet xanaxlnx at gmail.com fr\n"
++ "Maximilian Schleiss maximilian at xfce.org fr\n"
++ "Attila Szervác sas at 321.hu hu\n"
++ "Daichi Kawahata daichi at xfce.org ja\n"
++ "ByungHyun Choi byunghyun.choi at debianusers.org kr\n"
++ "Mantas mantaz at users.sourceforge.net lt\n"
++ "Rihards Prieditis RPrieditis at inbox.lv lv\n"
++ "Terje Uriansrud ter at operamail.com nb_NO\n"
++ "Stephan Arts psybsd at gmail.com nl\n"
++ "Szymon Kałasz szymon_maestro at gazeta.pl pl\n"
++ "Fábio Nogueira deb-user-ba at ubuntu.com pt_BR\n"
++ "Og Maciel omaciel at xfce.org pt_BR\n"
++ "Nuno Miguel nunis at netcabo.pt pt_PT\n"
++ "Sergey Fedoseev fedoseev.sergey at gmail.com ru\n"
++ "Besnik Bleta besnik at programeshqip.org sq\n"
++ "Maxim V. Dziumanenko mvd at mylinux.com.ua uk\n"
++ "Dmitry Nikitin uk\n"
++ "ﻢﺤﻣﺩ ﻊﻠﻳ ﺎﻠﻤﻜﻳ makki.ma at gmail.com ur\n"
++ "正龙 赵 longer.zhao at gmail.com zh_CN\n"
++ "Cosmo Chene cosmolax at gmail.com zh_TW\n";
+
+ gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &x, &y);
+- icon = xfce_themed_icon_load ("media-optical", x);
++ icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), "media-optical", x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL);
+ if (!icon)
+- icon = xfce_themed_icon_load ("media-cdrom", x);
++ icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), "media-cdrom", x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL);
+ if (!icon)
+- icon = xfce_themed_icon_load (GTK_STOCK_CDROM, x);
+-
+- info = xfce_about_info_new ("Xfburn", VERSION, _("Another cd burning GUI"),
+- XFCE_COPYRIGHT_TEXT ("2005-2008", "David Mohr, Mario Đanić, Jean-François Wauthy"), XFCE_LICENSE_GPL);
+- xfce_about_info_set_homepage (info, "http://www.xfce.org/projects/xfburn");
+- xfce_about_info_add_credit (info, "David Mohr", "david at mcbf.net", _("Author/Maintainer"));
+- xfce_about_info_add_credit (info, "Mario Đanić", "mario at libburnia-project.org", _("Author/Maintainer"));
+- xfce_about_info_add_credit (info, "Jean-François Wauthy", "pollux at xfce.org", _("Retired author/maintainer"));
+-
+-
+- for (n = 0; n < G_N_ELEMENTS (translators); ++n) {
+- gchar *s;
++ icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), GTK_STOCK_CDROM, x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL);
+
+- s = g_strdup_printf (_("Translator (%s)"), translators[n].language);
+- xfce_about_info_add_credit (info, translators[n].name, translators[n].email, s);
+- g_free (s);
+- }
+-
+- dialog = xfce_about_dialog_new_with_values (GTK_WINDOW (window), info, icon);
+- gtk_widget_set_size_request (GTK_WIDGET (dialog), 400, 300);
+- gtk_dialog_run (GTK_DIALOG (dialog));
+- gtk_widget_destroy (dialog);
++#if !GTK_CHECK_VERSION (2, 18, 0)
++ gtk_about_dialog_set_email_hook (exo_gtk_url_about_dialog_hook, NULL, NULL);
++ gtk_about_dialog_set_url_hook (exo_gtk_url_about_dialog_hook, NULL, NULL);
++#endif
++ gtk_show_about_dialog(GTK_WINDOW (window),
++ "logo", icon,
++ "program-name", "Xfburn",
++ "license", xfce_get_license_text (XFCE_LICENSE_TEXT_GPL),
++ "version", VERSION,
++ "comments", _("Another cd burning GUI"),
++ "website", "http://www.xfce.org/projects/xfburn",
++ "copyright", "2005-2008 David Mohr, Mario Đanić, Jean-François Wauthy",
++ "authors", auth,
++ "translator-credits", translators,
++ NULL);
+
+- xfce_about_info_free (info);
+ if (G_LIKELY (icon != NULL))
+ g_object_unref (G_OBJECT (icon));
+ }
+diff -ur xfburn-0.4.3/xfburn/xfburn-perform-burn.h xfburn-0.4.3-4ui/xfburn/xfburn-perform-burn.h
+--- xfburn-0.4.3/xfburn/xfburn-perform-burn.h 2009-10-30 02:07:24.000000000 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-perform-burn.h 2011-02-26 16:21:06.901320585 +0100
+@@ -25,7 +25,7 @@
+ #endif
+
+ #include <gtk/gtk.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libburn.h>
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-preferences-dialog.c xfburn-0.4.3-4ui/xfburn/xfburn-preferences-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-preferences-dialog.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-preferences-dialog.c 2011-02-26 20:18:38.177013556 +0100
+@@ -20,7 +20,7 @@
+ #include <config.h>
+ #endif /* !HAVE_CONFIG_H */
+
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+ #include <exo/exo.h>
+
+ #include "xfburn-preferences-dialog.h"
+@@ -185,7 +185,7 @@
+ vbox2 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox2);
+
+- frame = xfce_create_framebox_with_content (_("Temporary directory"), vbox2);
++ frame = xfce_gtk_frame_box_new_with_content (_("Temporary directory"), vbox2);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, BORDER);
+ gtk_widget_show (frame);
+
+@@ -200,7 +200,7 @@
+ vbox2 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox2);
+
+- frame = xfce_create_framebox_with_content (_("File browser"), vbox2);
++ frame = xfce_gtk_frame_box_new_with_content (_("File browser"), vbox2);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, BORDER);
+ gtk_widget_show (frame);
+
+@@ -240,7 +240,7 @@
+ vbox2 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox2);
+
+- frame = xfce_create_framebox_with_content (_("Detected devices"), vbox2);
++ frame = xfce_gtk_frame_box_new_with_content (_("Detected devices"), vbox2);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, BORDER);
+ gtk_widget_show (frame);
+
+@@ -292,17 +292,17 @@
+ gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, BORDER);
+ gtk_widget_show (hbox);
+
+- priv->button_scan = xfce_create_mixed_button (GTK_STOCK_CDROM, _("Sc_an for devices"));
++ priv->button_scan = xfce_gtk_button_new_mixed (GTK_STOCK_CDROM, _("Sc_an for devices"));
+ gtk_box_pack_end (GTK_BOX (hbox), priv->button_scan, FALSE, FALSE, BORDER);
+ g_signal_connect (G_OBJECT (priv->button_scan), "clicked", G_CALLBACK (scan_button_clicked_cb), obj);
+ gtk_widget_show (priv->button_scan);
+
+ gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &x, &y);
+- icon = xfce_themed_icon_load ("media-optical", x);
++ icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), "media-optical", x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL);
+ if (!icon)
+- icon = xfce_themed_icon_load ("media-cdrom", x);
++ icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), "media-cdrom", x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL);
+ if (!icon)
+- icon = xfce_themed_icon_load (GTK_STOCK_CDROM, x);
++ icon = gtk_icon_theme_load_icon ( gtk_icon_theme_get_default(), GTK_STOCK_CDROM, x, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL);
+
+
+ gtk_list_store_append (icon_store, &iter);
+@@ -326,7 +326,7 @@
+ vbox3 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox3);
+
+- frame = xfce_create_framebox_with_content (_("FIFO buffer size (in kb)"), vbox3);
++ frame = xfce_gtk_frame_box_new_with_content (_("FIFO buffer size (in kb)"), vbox3);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, BORDER);
+ gtk_widget_show (frame);
+
+@@ -460,7 +460,7 @@
+ static void
+ cb_show_hidden_clicked (GtkButton * Button, gpointer user_data)
+ {
+- xfce_warn (_("Changing this setting only takes full effect after a program restart."));
++ xfce_dialog_show_warning(NULL, NULL, _("Changing this setting only takes full effect after a program restart."));
+ }
+
+ /* public */
+diff -ur xfburn-0.4.3/xfburn/xfburn-progress-dialog.c xfburn-0.4.3-4ui/xfburn/xfburn-progress-dialog.c
+--- xfburn-0.4.3/xfburn/xfburn-progress-dialog.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-progress-dialog.c 2011-02-26 20:10:07.506140054 +0100
+@@ -30,7 +30,7 @@
+
+ #include <gtk/gtk.h>
+
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include "xfburn-progress-dialog.h"
+ #include "xfburn-global.h"
+@@ -603,7 +603,7 @@
+ xfburn_progress_dialog_set_status_with_text (dialog, XFBURN_PROGRESS_DIALOG_STATUS_FAILED, _("Failure"));
+
+ gdk_threads_enter ();
+- xfce_err (msg_error);
++ xfce_dialog_show_error (NULL, NULL, "%s", msg_error);
+ gdk_threads_leave ();
+ }
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-transcoder-basic.c xfburn-0.4.3-4ui/xfburn/xfburn-transcoder-basic.c
+--- xfburn-0.4.3/xfburn/xfburn-transcoder-basic.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-transcoder-basic.c 2011-02-26 20:07:07.312282054 +0100
+@@ -33,7 +33,7 @@
+ #include <errno.h>
+
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include <libburn.h>
+
+@@ -235,7 +235,7 @@
+ fd = open (path, 0);
+
+ if (fd == -1) {
+- xfce_warn (_("Could not open %s."), path);
++ xfce_dialog_show_warning(NULL, NULL, _("Could not open %s."), path);
+ return FALSE;
+ }
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-transcoder-gst.c xfburn-0.4.3-4ui/xfburn/xfburn-transcoder-gst.c
+--- xfburn-0.4.3/xfburn/xfburn-transcoder-gst.c 2009-10-24 23:18:10.000000000 +0200
++++ xfburn-0.4.3-4ui/xfburn/xfburn-transcoder-gst.c 2011-02-26 16:21:03.773320584 +0100
+@@ -36,7 +36,6 @@
+ #include <errno.h>
+
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
+
+ #include <libburn.h>
+
+diff -ur xfburn-0.4.3/xfburn/xfburn-udev-manager.c xfburn-0.4.3-4ui/xfburn/xfburn-udev-manager.c
+--- xfburn-0.4.3/xfburn/xfburn-udev-manager.c 2011-02-26 20:25:11.187013553 +0100
++++ xfburn-0.4.3-4ui/xfburn/xfburn-udev-manager.c 2011-02-26 19:59:29.621029555 +0100
+@@ -33,7 +33,7 @@
+ #include <errno.h>
+
+ #include <libxfce4util/libxfce4util.h>
+-#include <libxfcegui4/libxfcegui4.h>
++#include <libxfce4ui/libxfce4ui.h>
+
+ #include "xfburn-global.h"
+ #include "xfburn-progress-dialog.h"
+@@ -514,7 +514,7 @@
+ if (unmounted)
+ g_message ("Unmounted '%s'", mp);
+ else {
+- xfce_err ("Failed to unmount '%s'. Drive cannot be used for burning.", mp);
++ xfce_dialog_show_error (NULL, NULL, "Failed to unmount '%s'. Drive cannot be used for burning.", mp);
+ DBG ("Failed to unmount '%s'", mp);
+ }
+
Modified: goodies/trunk/xfburn/debian/rules
===================================================================
--- goodies/trunk/xfburn/debian/rules 2011-10-26 06:56:16 UTC (rev 6172)
+++ goodies/trunk/xfburn/debian/rules 2011-10-26 20:42:22 UTC (rev 6173)
@@ -8,8 +8,17 @@
export CFLAGS LDFLAGS
+%:
+ dh $@
+
+override_dh_auto_test:
+
override_dh_auto_configure:
- dh_auto_configure -- --disable-hal
+ NOCONFIGURE=1 xdt-autogen
+ dh_auto_configure
-%:
- dh $@
+override_dh_auto_clean:
+ dh_auto_clean
+ rm -f $$(find -name 'Makefile.in*')
+ rm -f INSTALL aclocal.m4 config.guess config.sub configure
+ rm -f depcomp install-sh ltmain.sh missing mkinstalldirs
More information about the Pkg-xfce-commits
mailing list