diff -Nru thoggen-0.7.0/ChangeLog thoggen-0.7.1/ChangeLog --- thoggen-0.7.0/ChangeLog 2008-02-13 14:53:44.000000000 +0100 +++ thoggen-0.7.1/ChangeLog 2008-06-12 21:38:38.000000000 +0200 @@ -1,3 +1,55 @@ +2008-06-12 Tim-Philipp Müller + + * NEWS: + * configure.ac: + Prepare for 0.7.1 bug-fix release. + + * src/th-app-window.c: (appwin_action_about_cb): + Update copyright years. + +2008-05-14 Tim-Philipp Müller + + * NEWS: + Update + +2008-05-14 Tim-Philipp Müller + + * src/gst-plugins/th-parsetter.c: (th_par_setter_transform_caps): + Fix allowed range for the pixel-aspect-ratio from 1/1-MAX to + 1/MAX-MAX, otherwise we get not-negotiated errors if the aspect + ratio is smaller 1, which apparently happens for North American + 4:3 material (which has a smaller height). This caused Thoggen + to hang silently without error when starting to rip. + +2008-04-28 Tim-Philipp Müller + + * src/th-job.c: (th_job_save_config): + Must escape strings before serialising them to XML to make sure + characters like '&' etc. are saved and loaded again properly. + Fixes bug #1949078. + +2008-02-14 Tim-Philipp Müller + + * configure.ac: + * src/th-utils.c: (utils_find_mount_point): + Don't check if /etc/mnttab or /etc/mtab exist, better check + for the structures we're using in th-utils. + +2008-02-14 Tim-Philipp Müller + + * src/th-job.c: (job_get_snapshot_from_current_buf): + Add cast to fix (slightly retarded) compiler warning. + +2008-02-14 Tim-Philipp Müller + + * configure.ac: + Back to trunk. Check if localtime_r is available. + + * src/th-job-progress-dialog.c: (job_progress_calc_time_left): + Use localtime_r if available, just in case (might fix spurious + crashes when we call strftime() here, if we're lucky; see + LP bug #93975). + =============== Released 0.7.0 ====================== 2008-02-13 Tim-Philipp Müller diff -Nru thoggen-0.7.0/config.h.in thoggen-0.7.1/config.h.in --- thoggen-0.7.0/config.h.in 2008-02-12 21:35:41.000000000 +0100 +++ thoggen-0.7.1/config.h.in 2008-06-12 21:31:44.000000000 +0200 @@ -51,6 +51,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H +/* Define to 1 if you have the `localtime_r' function. */ +#undef HAVE_LOCALTIME_R + /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H diff -Nru thoggen-0.7.0/configure thoggen-0.7.1/configure --- thoggen-0.7.0/configure 2008-02-12 21:35:19.000000000 +0100 +++ thoggen-0.7.1/configure 2008-06-12 21:31:20.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for thoggen 0.7.0. +# Generated by GNU Autoconf 2.61 for thoggen 0.7.1. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @@ -726,8 +726,8 @@ # Identity of this package. PACKAGE_NAME='thoggen' PACKAGE_TARNAME='thoggen' -PACKAGE_VERSION='0.7.0' -PACKAGE_STRING='thoggen 0.7.0' +PACKAGE_VERSION='0.7.1' +PACKAGE_STRING='thoggen 0.7.1' PACKAGE_BUGREPORT='' ac_unique_file="src/th-job.c" @@ -1465,7 +1465,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures thoggen 0.7.0 to adapt to many kinds of systems. +\`configure' configures thoggen 0.7.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1535,7 +1535,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of thoggen 0.7.0:";; + short | recursive ) echo "Configuration of thoggen 0.7.1:";; esac cat <<\_ACEOF @@ -1657,7 +1657,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -thoggen configure 0.7.0 +thoggen configure 0.7.1 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1671,7 +1671,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by thoggen $as_me 0.7.0, which was +It was created by thoggen $as_me 0.7.1, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2345,7 +2345,7 @@ # Define the identity of the package. PACKAGE='thoggen' - VERSION='0.7.0' + VERSION='0.7.1' cat >>confdefs.h <<_ACEOF @@ -2520,7 +2520,7 @@ cat >>confdefs.h <<\_ACEOF -#define RELEASENAME "Long Time No See" +#define RELEASENAME "All Quiet on the Northern Front" _ACEOF @@ -24531,6 +24531,101 @@ + +for ac_func in localtime_r +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + # Extract the first word of "glib-genmarshal", so it can be a program name with args. set dummy glib-genmarshal; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -24914,21 +25009,122 @@ done -if test -f "/etc/mtab" -then +{ echo "$as_me:$LINENO: checking for struct mntent" >&5 +echo $ECHO_N "checking for struct mntent... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include #include +int +main () +{ + + struct mntent me; + memset (&me, 0, sizeof (struct mntent)); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_MTAB 1 _ACEOF -elif test -f "/etc/mnttab"; then + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +{ echo "$as_me:$LINENO: checking for struct mnttab" >&5 +echo $ECHO_N "checking for struct mnttab... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include #include +int +main () +{ + + struct mnttab mt; + memset (&mt, 0, sizeof (struct mnttab)); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_MNTTAB 1 _ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="-Wall $CFLAGS" @@ -28139,7 +28335,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by thoggen $as_me 0.7.0, which was +This file was extended by thoggen $as_me 0.7.1, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28192,7 +28388,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -thoggen config.status 0.7.0 +thoggen config.status 0.7.1 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -Nru thoggen-0.7.0/configure.ac thoggen-0.7.1/configure.ac --- thoggen-0.7.0/configure.ac 2008-02-09 14:53:22.000000000 +0100 +++ thoggen-0.7.1/configure.ac 2008-06-12 21:31:08.000000000 +0200 @@ -1,6 +1,6 @@ AC_PREREQ(2.59) -AC_INIT(thoggen, 0.7.0) +AC_INIT(thoggen, 0.7.1) AC_CONFIG_SRCDIR(src/th-job.c) AM_CONFIG_HEADER(config.h) @@ -10,7 +10,7 @@ dnl ============================================== -AC_DEFINE([RELEASENAME],["Long Time No See"],[The Release Name]) +AC_DEFINE([RELEASENAME],["All Quiet on the Northern Front"],[The Release Name]) AC_PROG_CC AC_PROG_INSTALL @@ -642,6 +642,8 @@ dnl Check for miscellaneous other stuff dnl ========================================= +AC_CHECK_FUNCS(localtime_r) + AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) if test "x$GLIB_GENMARSHAL" == "x"; then @@ -650,17 +652,32 @@ AC_SUBST([GLIB_GENMARSHAL]) -dnl stuff for free disk space checking / moint point resolution +dnl stuff for free disk space checking / mount point resolution AC_CHECK_HEADERS([mntent.h sys/statfs.h sys/vfs.h sys/statvfs.h sys/mnttab.h libintl.h]) AC_CHECK_FUNCS(statfs) AC_CHECK_FUNCS(statvfs) -if test -f "/etc/mtab" -then - AC_DEFINE([HAVE_MTAB], 1, [Defined if we have /etc/mtab]) -elif test -f "/etc/mnttab"; then - AC_DEFINE([HAVE_MNTTAB], 1, [Defined if we have /etc/mnttab]) -fi +AC_MSG_CHECKING([for struct mntent]) +AC_TRY_COMPILE([#include #include ], [ + struct mntent me; + memset (&me, 0, sizeof (struct mntent)); + ], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_MTAB], 1, [Defined if we have /etc/mtab]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING([for struct mnttab]) +AC_TRY_COMPILE([#include #include ], [ + struct mnttab mt; + memset (&mt, 0, sizeof (struct mnttab)); + ], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_MNTTAB], 1, [Defined if we have /etc/mnttab]) + ], [ + AC_MSG_RESULT([no]) + ]) CFLAGS="-Wall $CFLAGS" diff -Nru thoggen-0.7.0/debian/changelog thoggen-0.7.1/debian/changelog --- thoggen-0.7.0/debian/changelog 2008-06-17 11:43:16.000000000 +0200 +++ thoggen-0.7.1/debian/changelog 2008-06-17 11:43:17.000000000 +0200 @@ -1,3 +1,17 @@ +thoggen (0.7.1-0ubuntu1) hardy-proposed; urgency=low + + * New upstream bugfix release, "All Quiet on the Northern Front": + + Fix problem with Region 1 (North America) + DVD titles in non-widescreen 4:3 format + (Thoggen would just hang when starting + the rip and do nothing) (LP: #239317). + + Fix problem with metadata/tags containing + characters that need to be escaped, such + as '&'. + + Misc. compiler warning/portability fixes. + + -- Sebastian Dröge Fri, 13 Jun 2008 12:09:15 +0200 + thoggen (0.7.0-1) unstable; urgency=low * New upstream release, "Long Time No See": diff -Nru thoggen-0.7.0/NEWS thoggen-0.7.1/NEWS --- thoggen-0.7.0/NEWS 2008-02-13 14:52:34.000000000 +0100 +++ thoggen-0.7.1/NEWS 2008-06-12 21:27:01.000000000 +0200 @@ -3,6 +3,21 @@ =================== -------------------------------------------- + v0.7.1 - All Quiet on the Northern Front +-------------------------------------------- + + * Fix problem with Region 1 (North America) + DVD titles in non-widescreen 4:3 format + (Thoggen would just hang when starting + the rip and do nothing). + + * Fix problem with metadata/tags containing + characters that need to be escaped, such + as '&' + + * Misc. compiler warning/portability fixes. + +-------------------------------------------- v0.7.0 - Long Time No See -------------------------------------------- diff -Nru thoggen-0.7.0/src/gst-plugins/th-parsetter.c thoggen-0.7.1/src/gst-plugins/th-parsetter.c --- thoggen-0.7.0/src/gst-plugins/th-parsetter.c 2007-12-26 17:31:08.000000000 +0100 +++ thoggen-0.7.1/src/gst-plugins/th-parsetter.c 2008-06-12 21:25:03.000000000 +0200 @@ -182,7 +182,7 @@ GValue par_range = { 0, }; g_value_init (&par_range, GST_TYPE_FRACTION_RANGE); - gst_value_set_fraction_range_full (&par_range, 1, 1, G_MAXINT, 1); + gst_value_set_fraction_range_full (&par_range, 1, G_MAXINT, G_MAXINT, 1); gst_structure_set_value (s, "pixel-aspect-ratio", &par_range); g_value_unset (&par_range); } diff -Nru thoggen-0.7.0/src/th-app-window.c thoggen-0.7.1/src/th-app-window.c --- thoggen-0.7.0/src/th-app-window.c 2008-01-31 00:39:55.000000000 +0100 +++ thoggen-0.7.1/src/th-app-window.c 2008-06-12 21:32:24.000000000 +0200 @@ -2,7 +2,7 @@ th-app-window.c --------------- begin : Wed Feb 16 2005 - copyright : (C) 200t by Tim-Philipp Müller + copyright : (C) 2005 by Tim-Philipp Müller email : t.i.m@orange.net ***************************************************************************/ @@ -950,7 +950,7 @@ gtk_about_dialog_set_name (dlg, PACKAGE); gtk_about_dialog_set_version (dlg, VERSION); gtk_about_dialog_set_authors (dlg, authors); - gtk_about_dialog_set_copyright (dlg, "Copyright \302\251 2004-2005 Tim-Philipp M\303\274ller "); + gtk_about_dialog_set_copyright (dlg, "Copyright \302\251 2004-2008 Tim-Philipp M\303\274ller "); gtk_about_dialog_set_website (dlg, "http://thoggen.net"); gtk_about_dialog_set_translator_credits (dlg, _("translator-credits")); diff -Nru thoggen-0.7.0/src/th-job.c thoggen-0.7.1/src/th-job.c --- thoggen-0.7.0/src/th-job.c 2008-02-13 14:34:38.000000000 +0100 +++ thoggen-0.7.1/src/th-job.c 2008-06-12 21:25:03.000000000 +0200 @@ -1000,7 +1000,11 @@ if (valstr) { - g_string_append_printf (xml, " <%s>%s\n", props[n], valstr, props[n]); + gchar *val_escaped; + + val_escaped = g_markup_escape_text (valstr, -1); + g_string_append_printf (xml, " <%s>%s\n", props[n], val_escaped, props[n]); + g_free (val_escaped); g_free (valstr); valstr = NULL; } @@ -2193,7 +2197,7 @@ * chance to ref it (is this necessary?) */ do { - curbuf = g_atomic_pointer_get (job_current_buf_addr); + curbuf = g_atomic_pointer_get ((gpointer *) job_current_buf_addr); } while (!g_atomic_pointer_compare_and_exchange ((gpointer *) job_current_buf_addr, curbuf, NULL)); diff -Nru thoggen-0.7.0/src/th-job-progress-dialog.c thoggen-0.7.1/src/th-job-progress-dialog.c --- thoggen-0.7.0/src/th-job-progress-dialog.c 2008-02-01 02:55:29.000000000 +0100 +++ thoggen-0.7.1/src/th-job-progress-dialog.c 2008-03-12 16:17:19.000000000 +0100 @@ -15,6 +15,10 @@ * * ***************************************************************************/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "th-job-progress-dialog.h" #include "th-job.h" #include "th-power-manager-agent.h" @@ -627,7 +631,19 @@ /* note: secs_left might be negative, as length is not exact */ cstr = job_get_human_time_interval_str ((gint) secs_left); eta = time (NULL) + (time_t) MAX (15.0, secs_left); - strftime (timestr, sizeof (timestr), "%R", localtime (&eta)); + +#ifdef HAVE_LOCALTIME_R + { + struct tm tm; + + strftime (timestr, sizeof (timestr), "%R", localtime_r (&eta, &tm)); + } +#else + { + strftime (timestr, sizeof (timestr), "%R", localtime (&eta)); + } +#endif + th_label_set_text (jpd->priv->timeleft_label, "%s [%sh]", cstr, timestr); } diff -Nru thoggen-0.7.0/src/th-utils.c thoggen-0.7.1/src/th-utils.c --- thoggen-0.7.0/src/th-utils.c 2008-01-31 00:39:55.000000000 +0100 +++ thoggen-0.7.1/src/th-utils.c 2008-03-12 16:17:19.000000000 +0100 @@ -594,6 +594,11 @@ static gchar * utils_find_mount_point (const gchar *fn) { +#if defined(HAVE_MNTTAB) || defined(HAVE_MTAB) + FILE *mount_table; +#else +# warning have neither mtab not mnttab - utils_find_mount_point() will be unimplemented +#endif #ifdef HAVE_MTAB struct mntent *mount_entry = NULL; #elif defined(HAVE_MNTTAB) @@ -601,8 +606,6 @@ #endif struct stat s; dev_t mount_device; - FILE *mount_table; - g_return_val_if_fail (fn != NULL, NULL); if (stat (fn, &s) != 0)