Date: Sunday, October 23, 2011 @ 05:32:09 Author: andyrtr Revision: 141076
upgpkg: xfburn 0.4.3-5 fix a segfault; FS#26121 Added: xfburn/trunk/fix_empty_dir_segfault.diff Modified: xfburn/trunk/PKGBUILD -----------------------------+ PKGBUILD | 12 +++++++--- fix_empty_dir_segfault.diff | 48 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2011-10-23 09:11:50 UTC (rev 141075) +++ PKGBUILD 2011-10-23 09:32:09 UTC (rev 141076) @@ -4,7 +4,7 @@ pkgname=xfburn pkgver=0.4.3 -pkgrel=4 +pkgrel=5 arch=('i686' 'x86_64') pkgdesc="a simple CD/DVD burning tool based on libburnia libraries" url="http://goodies.xfce.org/projects/applications/xfburn" @@ -14,11 +14,17 @@ depends=('libburn>=1.0.6.pl00' 'libisofs>=1.0.6' 'libxfcegui4>=4.8.1' 'exo>=0.6.0' 'gstreamer0.10-base>=0.10.26' 'hicolor-icon-theme' 'desktop-file-utils' 'librsvg') makedepends=('intltool') -source=(http://www.xfce.org/archive/src/apps/xfburn/0.4/$pkgname-$pkgver.tar.bz2) -md5sums=('147cdc2d909e751125be16103b8dc81f') +source=(http://www.xfce.org/archive/src/apps/xfburn/0.4/$pkgname-$pkgver.tar.bz2 + fix_empty_dir_segfault.diff) +md5sums=('147cdc2d909e751125be16103b8dc81f' + '82a85be2442c42ab93de95e21c6c11b0') build() { cd ${srcdir}/$pkgname-$pkgver + + # fix https://bugs.archlinux.org/task/26121 + patch -Np0 -i ${srcdir}/fix_empty_dir_segfault.diff + ./configure --prefix=/usr \ --enable-gstreamer \ --enable-dbus \ Added: fix_empty_dir_segfault.diff =================================================================== --- fix_empty_dir_segfault.diff (rev 0) +++ fix_empty_dir_segfault.diff 2011-10-23 09:32:09 UTC (rev 141076) @@ -0,0 +1,48 @@ +--- xfburn/xfburn-data-composition.c 2011-02-17 16:37:03.000000000 +0100 ++++ xfburn/xfburn-data-composition_patched.c 2011-02-17 16:40:40.000000000 +0100 +@@ -1874,26 +1874,29 @@ + g_error ("Failed adding %s as a node to the image: code %X!", src, r); + } + +- basename = g_path_get_basename (src); ++ /* Check names only for items not manually created (#613563) */ ++ if (type != DATA_COMPOSITION_TYPE_DIRECTORY || src != NULL) { ++ basename = g_path_get_basename (src); ++ ++ /* check if the file has been renamed */ ++ if (strcmp (basename, name) != 0) { ++ /* rename the iso_node */ ++ r = iso_node_set_name (node, name); ++ ++ 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); ++ ++ g_free (basename); ++ g_free (name); ++ g_free (src); + +- /* check if the file has been renamed */ +- if (strcmp (basename, name) != 0) { +- /* rename the iso_node */ +- r = iso_node_set_name (node, name); +- +- 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); +- +- g_free (basename); +- g_free (name); +- g_free (src); +- +- continue; ++ continue; ++ } + } ++ g_free (basename); + } + +- g_free (basename); + g_free (name); + g_free (src); +